UML、RUP,學了很久好像還是什麼都稀裡糊塗的。然後開始找原因:覺得沒有牛人帶?沒有接受過系統的培訓?公司不給條件應用,比如時間上不允許?國內這方面呼聲高而真正搞的公司少?……
有次參加微軟vs2005的交流會,會下跟微軟那位仁兄閑聊關於vs2005中關於開發過程和建模思想的支援,他說“你這個問題其實蠻深刻的,這是產品線的問題”。接著他說:以私人身份說,微軟是排斥(或者說是:不提倡、不支援、不看好)UML的,因為微軟提倡的是快速開發,而UML那種思想周期太長,而且微軟也沒有很懂UML的大師級的人。【那位仁兄的大意如此,請不要斷章取義、隨意發揮】
當時蠻有種醍醐灌頂的感覺。於是就理所當然的想,UML或許並不是必須的,你看人微軟,就是沒用UML,誰敢說他做的不好?又接著想,UML沒有象想象的那樣普及和應用是有其自身問題的,因為它包含了太多的容易混淆的、晦澀的概念、思想,除非搞研究否則真沒有必要搞清楚。我就看到過很多爭吵系統用例和業務用例的文章、爭吵用例寫法的文章(這一問題爭論最多)、是組合(Composition)還是彙總(Aggregation)文章,等等。你說要等那麼多人搞明白了這些再去做軟體要等到什麼時候?所以一下子對於UML的態度蠻消極,覺得UML有點理想化,不夠實用。
再接著,聽了UMLChina潘加宇老師的公開課,跟他說微軟這個態度,他馬上說:誰說的?他們今年年初還請我給他們講課了。他說:我們講述的是這種思想,這種考慮問題的方式。不管用什麼來做軟體,他都得考慮對象之間的互動,考慮對象的狀態嘛。UML或許以後會被其他方法吞併或沒了,但是這種思想得有。因為軟體越來越大,越來越複雜,人腦已經應付不了,必須藉助這些方法來分析問題。
如此反覆,對這個問題認識更加客觀:UML只是一種人們在追求解決軟體建模問題途中的一個階段而已,不要去爭論它究竟是否是最好的。如果只是想解決現實問題的應用者,拿來用就可以,從某種程度上說,它是目前最好的,但不代表它是完美的,它還需要繼續完善甚至革新!