UML(Unified Modeling Language)是一種統(tǒng)一建模語言刽宪,為面向?qū)ο箝_發(fā)系統(tǒng)的產(chǎn)品進行說明、可視化碘勉、和編制文檔的一種標(biāo)準(zhǔn)語言虫蝶。UML支持面向?qū)ο蟮募夹g(shù),能夠準(zhǔn)確的方便地表達面向?qū)ο竦母拍蠲瓶w現(xiàn)面向?qū)ο蟮姆治龊驮O(shè)計風(fēng)格弯洗。UML不僅可用于軟件設(shè)計,也可以用于軟件需求分析逢勾。
UML的模型主要有三部分構(gòu)成
事物(Things):UML模型中最基本的構(gòu)成元素牡整,是具有代表性的成分的抽象。
關(guān)系(Relationships):關(guān)系把事物緊密聯(lián)系在一起溺拱。
圖(Diagrams ):圖是事物和關(guān)系的可視化表示逃贝。
UML圖分為結(jié)構(gòu)型和行為型兩種
結(jié)構(gòu)型的圖描述的是某種結(jié)構(gòu),這種結(jié)構(gòu)在某段時間內(nèi)應(yīng)該是穩(wěn)定的迫摔,靜態(tài)的;而結(jié)構(gòu)型的圖描述的是某種行為沐扳,是動態(tài)的。
結(jié)構(gòu)型的圖(Structure Diagram)
類圖(Class Diagram)
對象圖(Object Diagram)
構(gòu)件圖(Component Diagram)
部署圖(Deployment Diagram)
包圖(Package Diagram)
行為型的圖(Behavior Diagram)
活動圖(Activity Diagram)
狀態(tài)機圖(State Machine Diagram)
順序圖(Sequence Diagram)
通信圖(Communication Diagram)
用例圖(Use Case Diagram)
時序圖(Timing Diagram)
類圖描述一組對象攒菠、接口迫皱、協(xié)作等事物之間的關(guān)系歉闰。類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)辖众,不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系和敬,如關(guān)聯(lián)凹炸、依賴、聚合等昼弟,也包括類的屬性和操作啤它。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個生命周期都是有效的舱痘。類圖是業(yè)務(wù)概念模型分析的有利武器变骡,也是面向?qū)ο蠓治瞿芰Φ膹娪辛τ?xùn)練工具。
對象圖是類圖的實例芭逝,幾乎使用與類圖完全相同的標(biāo)識塌碌。一個對象圖是類圖的一個實例。由于對象存在生命周期旬盯,因此對象圖只能在系統(tǒng)某一時間段存在台妆。對象圖往往只在需要描述復(fù)雜算法時才會使用翎猛。
構(gòu)件圖也叫組件圖,一輛汽車由輪子接剩、發(fā)動機等物理部件組成切厘,一個軟件往往也是由很多“物理部件”(如:控件、重用構(gòu)件等)組成的懊缺,構(gòu)件圖就是用來描述軟件內(nèi)部物理組成的一種圖疫稿。構(gòu)件圖有時不會單獨使用,還會和部署圖一起結(jié)合使用鹃两。
部署圖是用來描述系統(tǒng)如何部署而克、本系統(tǒng)與其他系統(tǒng)是怎樣的關(guān)系的一種圖。大部分客戶都會具備一定的IT基礎(chǔ)環(huán)境(如具備局域網(wǎng)怔毛、一些服務(wù)器员萍、某些軟件平臺等),軟件系統(tǒng)需要基于當(dāng)前的IT基礎(chǔ)環(huán)境來規(guī)劃拣度,這時我們可以使用部署圖來做這個規(guī)劃碎绎。
構(gòu)件圖、部署圖是分析IT基礎(chǔ)架構(gòu)抗果、軟件架構(gòu)等方面需求的有利分析工具筋帖,但需要你具備IT基礎(chǔ)架構(gòu)、軟件設(shè)計方面的知識和經(jīng)驗冤馏。
包圖的主要用途是“打包”類圖日麸。用類圖描述業(yè)務(wù)概念時,很多時候會因為業(yè)務(wù)類太多逮光,而導(dǎo)致類圖非常龐大代箭,不利于閱讀,這時可以將某些類放入“包”中涕刚,通過包圖來組織業(yè)務(wù)概念圖嗡综。
活動圖、狀態(tài)機圖杜漠、順序圖是分析業(yè)務(wù)流程的強力武器极景。
活動圖中的一個圓邊框框表示一個活動,多個活動之間的帶箭頭線條表示活動的先后順序驾茴,該圖只是表達了一個順序流程盼樟,活動圖還可以表達分支結(jié)構(gòu)⌒庵粒活動圖的表達思路與流程圖很類似晨缴,很容易掌握,而且大部分情況下都可以使用活動圖來分析業(yè)務(wù)流程裹赴。
狀態(tài)機圖從某個物品的狀態(tài)是如何變化的角度來展示流程喜庞。某流程如果是圍繞某個物品進行诀浪,該物品在流程中轉(zhuǎn)換多種狀態(tài),那么使用狀態(tài)機圖來分析是首選延都。
序列圖(順序圖)是用來顯示你的參與者如何以一系列順序的步驟與系統(tǒng)的對象交互的模型雷猪。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上晰房,即強調(diào)消息是如何在對象之間被發(fā)送和接收的求摇。用順序圖來分析的好處是能清晰表達整個過程所參與的角色,角色與角色之間的關(guān)系殊者,各角色是如何被卷入這個過程當(dāng)中的与境。
通信圖可以看作是順序圖的另外一種表達形式。角色之間有直線聯(lián)系表示他們之間有關(guān)系;帶序號的文字和箭頭猖吴,表示角色之間傳遞的信息摔刁。順序圖更強調(diào)先后順序,通信圖更強調(diào)相互之間的關(guān)系海蔽。而從我的工作經(jīng)驗看共屈,順序圖更加實用一點。
用例圖描述一組用例党窜、參與者以及它們之間的關(guān)系拗引,其展示的是該系統(tǒng)在它的外面環(huán)境中所提供的外部可見服務(wù)。從用戶角度描述系統(tǒng)功能幌衣,并指出各功能的操作者矾削。表達的是什么角色通過軟件系統(tǒng)能做什么事情,我們可以使用用例圖系統(tǒng)地表達軟件系統(tǒng)的絕大部分需求豁护。
時序圖也叫時間圖哼凯,時序圖是表示某東西的狀態(tài)隨時間變化而變化的一種圖。我在實際工作中很少有機會能用到這種圖择镇。