UML各種圖形的重要性排行
本文和大家重點(diǎn)討論一下UML各種圖形的重要性排行,其中必需的主要有用例圖和類圖。用例圖重要是因為它是面向?qū)ο蠓治鲈O(shè)計的基礎(chǔ),類圖重要是因為它是我們用來做分析和設(shè)計最主要的工具。
主題:UML各種圖形的重要性排行
UML中包括有很多種圖形。我最初學(xué)習(xí)UML是通過三友的《UML用戶指南》,這本書是一本很詳盡的著作(另外一本更詳盡的著作是三友的《UML參考手冊》),是UML領(lǐng)域最重要的著作之一,然而卻不利于初學(xué)者掌握重點(diǎn)。因為時間有限,我沒有能夠讀完用戶指南的全書。對于一個形式主義者,很容易陷入大量UML的細(xì)節(jié)之中,使用昂貴的建模工具(ROSE、Together、PowerDesigner、Visio、etc.)不厭其煩地繪制出各種漂亮的圖形,陷入一種分析癱瘓的狀態(tài),花費(fèi)大量時間力圖得到完美的模型,卻沒有生產(chǎn)出多少可以運(yùn)行的代碼。
用戶指南中存在的問題正是《UML精粹》(UMLDistilled)這本書存在的價值。我讀這本書時感覺非常順暢(雖然翻譯的低劣降低了我的閱讀速度,但是好在這本書本身寫得非常深入淺出,所以對于我的影響并不是很大),任何一個對于UML略有掌握的人讀完這本書都不會超過一周時間。搞敏捷開發(fā)方法的人(KentBeck、MartinFowler、etc.)寫的方法論一類的著作都言簡意賅,MartinFowler這本僅有100多頁的UML入門書籍也不例外。
然而不要把這本書僅僅當(dāng)作一本入門書籍,實(shí)際上這本書的內(nèi)涵要遠(yuǎn)遠(yuǎn)超出一本入門書籍。最重要的是這本書將UML中各種圖形的重要性做了劃分,使得我們不必花費(fèi)數(shù)月時間去熟悉UML的所有細(xì)節(jié),而是只需要看過其中兩三章的內(nèi)容就足以從UML中獲得巨大的價值。我一向認(rèn)為那種企圖讓我一夜暴富趕超BillGates的書籍是最沒有用的書,同樣那種企圖無所不包卻沒有重點(diǎn)的方法論書籍也是最沒有用的書。
UML各種圖形重要性的排行為:
用例圖(UseCase)
類圖(Class)
順序圖(Sequence)
協(xié)作圖(Collaboration)
包圖(Package)
狀態(tài)圖(State)
活動圖(Activity)
物理圖(Physical)
其中必需的只有用例圖和類圖。用例圖重要是因為它是面向?qū)ο蠓治鲈O(shè)計的基礎(chǔ),用例驅(qū)動是RUP、XP等各種現(xiàn)代開發(fā)方法的主要特征(我區(qū)分現(xiàn)代和古代的主要依據(jù)是看它是否以迭代模型作為其基礎(chǔ),而不是基于瀑布模型,是擁抱變化而不是拒絕變化)。類圖重要是因為它是我們用來做分析和設(shè)計最主要的工具。
UML各種圖形中內(nèi)涵最豐富的是類圖,然而豐富的內(nèi)涵也使得對于類圖的正確使用遇到了一些困難。Martin特意將類圖的概念分成了兩部分:基礎(chǔ)部分和高級部分。基礎(chǔ)部分是非常簡單的,很多時候基礎(chǔ)部分已經(jīng)夠用了,僅僅在必需的時候才需要用到高級部分。
這本UML的著作大約在Martin寫完《分析模式》和《重構(gòu)》之后完成(2000年第二版),體現(xiàn)了Martin在面向?qū)ο蠼nI(lǐng)域的深厚功力。
UML的價值在于實(shí)現(xiàn)開發(fā)團(tuán)隊中無歧義的溝通(自然語言本身無法達(dá)到無歧義,因此需要UML這樣的形式化語言的幫助),而不是得到一個完美的圖形。這個目的(更好的溝通)是我們永遠(yuǎn)要記住的,UML可以很好地服務(wù)于這個目的。一旦我們發(fā)現(xiàn)已經(jīng)達(dá)到了這種溝通效果,我們就要毫不遲疑地轉(zhuǎn)向代碼實(shí)現(xiàn)。
【編輯推薦】
- UML各種圖形的建立步驟專家指導(dǎo)
- 全面認(rèn)識九種基本的UML模型圖
- 繪制UML圖時應(yīng)避免的六大問題
- 教你繪制整潔的UML圖
- 面向?qū)ο笾邪男︰ML圖及每件圖的作用