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























