UML建模综述
?
?
一、概念
UML-Unified Model Language?統(tǒng)一建模語(yǔ)言,又稱標(biāo)準(zhǔn)建模語(yǔ)言。是用來(lái)對(duì)軟件密集系統(tǒng)進(jìn)行可視化建模的一種語(yǔ)言。作為一個(gè)支持模型化和軟件系統(tǒng)開(kāi)發(fā)的圖形化語(yǔ)言,UML為軟件開(kāi)發(fā)的所有階段提供模型化和可視化支持,包括由需求分析到規(guī)格,到構(gòu)造和配置。
UML規(guī)范用來(lái)描述建模的概念有:類(對(duì)象的)、對(duì)象、關(guān)聯(lián)、職責(zé)、行為、接口、用例、包、順序、協(xié)作,以及狀態(tài)。
?
二、分類
在UML系統(tǒng)開(kāi)發(fā)中有三個(gè)主要的模型:?
功能模型: 從用戶的角度展示系統(tǒng)的功能,包括用例圖。?
對(duì)象模型: 采用對(duì)象,屬性,操作,關(guān)聯(lián)等概念展示系統(tǒng)的結(jié)構(gòu)和基礎(chǔ),包括類圖、對(duì)象圖、包圖。?
動(dòng)態(tài)模型: 展現(xiàn)系統(tǒng)的內(nèi)部行為。 包括序列圖,活動(dòng)圖,狀態(tài)圖。
?
UML定義了5類,10種模型圖
五種類圖定義:
用例圖:從用戶角度描述系統(tǒng)功能,并指各功能的操作者。
靜態(tài)圖:包括類圖,包圖,對(duì)象圖。
類圖:描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)
包圖:是包和類組成的,表示包與包之間的關(guān)系,包圖描述系統(tǒng)的分層結(jié)構(gòu)
對(duì)象圖:是類圖的實(shí)例
行為圖:描述系統(tǒng)動(dòng)態(tài)模型和對(duì)象組成的交換關(guān)系。包括狀態(tài)圖和活動(dòng)圖
活動(dòng)圖:描述了業(yè)務(wù)實(shí)現(xiàn)用例的工作流程
狀態(tài)圖:是描述狀態(tài)到狀態(tài)控制流,常用于動(dòng)態(tài)特性建模
交互圖:描述對(duì)象之間的交互關(guān)系
順序圖:對(duì)象之間的動(dòng)態(tài)合作關(guān)系,強(qiáng)調(diào)對(duì)象發(fā)送消息的順序,同時(shí)顯示對(duì)象之間的交互
合作圖:描述對(duì)象之間的協(xié)助關(guān)系
實(shí)現(xiàn)圖:描述系統(tǒng)的實(shí)際體系結(jié)構(gòu)安排
配置圖:定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)
?
十種圖定義:
UML包括用例圖、類圖、構(gòu)件圖、部署圖、順序圖、協(xié)作圖、狀態(tài)圖、活動(dòng)圖
(1)類圖(Class Diagram)。展現(xiàn)了一組對(duì)象、接口、協(xié)作和它們之間的關(guān)系。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命周期都是有效的,是面向?qū)ο笙到y(tǒng)的建模中最常見(jiàn)的圖。
(2)對(duì)象圖(Object Diagram)。展現(xiàn)了一組對(duì)象以及它們之間的關(guān)系。對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)示。
(3)用例圖(UseCase Diagram)。展現(xiàn)了一組用例、參與者(actor)以及它們之間的關(guān)系。用例圖從用戶角度描述系統(tǒng)的靜態(tài)使用情況,用于建立需求模型。
(4)交互圖。用于描述對(duì)象間的交互關(guān)系,由一組對(duì)象和它們之間的關(guān)系組成,包含它們之間可能傳遞的消息。交互圖又分為序列圖和協(xié)作圖,其中序列圖描述了以時(shí)間順序組織的對(duì)象之間的交互活動(dòng);協(xié)作圖強(qiáng)調(diào)收發(fā)消息的對(duì)象的結(jié)構(gòu)組織。
(5)狀態(tài)圖(State Diagram)。由狀態(tài)、轉(zhuǎn)換、事件和活動(dòng)組成,描述類的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)的轉(zhuǎn)移條件。通常狀態(tài)圖是對(duì)類圖的補(bǔ)充,僅需為那些有多個(gè)狀態(tài)的、行為隨外界環(huán)境而改變的類畫(huà)狀態(tài)圖。
(6)活動(dòng)圖(Active Diagram)。一種特殊的狀態(tài)圖,展現(xiàn)了系統(tǒng)內(nèi)一個(gè)活動(dòng)到另一個(gè)活動(dòng)的流程。活動(dòng)圖有利于識(shí)別并行活動(dòng)。
(7)組件圖(Component Diagram)。展現(xiàn)了一組組件的物理結(jié)構(gòu)和組件之間的依賴關(guān)系。部件圖有助于分析和理解組件之間的相互影響程度。
(8)部署圖(Deployment Diagram)。展現(xiàn)了運(yùn)行處理節(jié)點(diǎn)以及其中的組件的配置。部署圖給出了系統(tǒng)的體系結(jié)構(gòu)和靜態(tài)實(shí)施視圖。它與組件圖相關(guān),通常一個(gè)節(jié)點(diǎn)包含一個(gè)或多個(gè)構(gòu)建。
(9)包圖((Package Diagram))。包圖描述系統(tǒng)的分層結(jié)構(gòu)。在UML1.1版本中,包圖不再看作一種獨(dú)立的模型圖。
?
三、十種模型圖具體描述
1.類圖(概念類圖Class Diagram/Conceptual Class Diagram / Domian Model)
類圖是描述系統(tǒng)中的類,以及各個(gè)類之間的關(guān)系的靜態(tài)視圖。能夠讓我們?cè)谡_編寫(xiě)代碼以前對(duì)系統(tǒng)有一個(gè)全面的認(rèn)識(shí)。類圖是一種模型類型,確切的說(shuō),是一種靜態(tài)模型類型。類圖表示類、接口和它們之間的協(xié)作關(guān)系。
2.活動(dòng)圖(Activity Diagram)
描述用例要求所要進(jìn)行的活動(dòng),以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)。能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共同滿足前面使用用例圖建模的商務(wù)需求。
3.狀態(tài)圖(狀態(tài)機(jī)圖State Diagram/State Machine Diagram)
描述類的對(duì)象所有可能的狀態(tài),以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件。可以捕獲對(duì)象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個(gè)對(duì)象可以擁有的狀態(tài),并且事件(如消息的接收、時(shí)間的流逝、錯(cuò)誤、條件變?yōu)檎娴?會(huì)怎么隨著時(shí)間的推移來(lái)影響這些狀態(tài)。一個(gè)狀態(tài)圖應(yīng)該連接到所有具有清晰的可標(biāo)識(shí)狀態(tài)和復(fù)雜行為的類;該圖可以確定類的行為,以及該行為如何根據(jù)當(dāng)前的狀態(tài)變化,也可以展示哪些事件將會(huì)改變類的對(duì)象的狀態(tài)。狀態(tài)圖是對(duì)類圖的補(bǔ)充。
4.用例圖(Use Case Diagram)
描述角色以及角色與用例之間的連接關(guān)系。說(shuō)明的是誰(shuí)要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。一個(gè)用例圖包含了多個(gè)模型元素,如系統(tǒng)、參與者和用例,并且顯示這些元素之間的各種關(guān)系,如泛化、關(guān)聯(lián)和依賴。
5.序列圖(順序圖Sequence Diagram)
序列圖是用來(lái)顯示你的參與者如何以一系列順序的步驟與系統(tǒng)的對(duì)象交互的模型。順序圖可以用來(lái)展示對(duì)象之間是如何進(jìn)行交互的。順序圖將顯示的重點(diǎn)放在消息序列上,即強(qiáng)調(diào)消息是如何在對(duì)象之間被發(fā)送和接收的。
6.協(xié)作圖(通訊圖Communication Diagram)
和序列圖相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。可以看成是類圖和順序圖的交集,協(xié)作圖建模對(duì)象或者角色,以及它們彼此之間是如何通信的。如果強(qiáng)調(diào)時(shí)間和順序,則使用序列圖;如果強(qiáng)調(diào)上下級(jí)關(guān)系,則選擇協(xié)作圖;這兩種圖合稱為交互圖。
7.對(duì)象圖(設(shè)計(jì)類圖Object Diagram/Design Class Diagram)
與類圖極為相似,它是類圖的實(shí)例,對(duì)象圖顯示類的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類。它描述的不是類之間的關(guān)系,而是對(duì)象之間的關(guān)系。
8.包圖(Package Diagram)
包圖用于描述系統(tǒng)的分層結(jié)構(gòu),由包或類組成,表示包與包之間的關(guān)系。
9.組件圖(構(gòu)件圖Component Diagram)
描述代碼構(gòu)件的物理結(jié)構(gòu)以及各種構(gòu)建之間的依賴關(guān)系。用來(lái)建模軟件的組件及其相互之間的關(guān)系,這些圖由構(gòu)件標(biāo)記符和構(gòu)件之間的關(guān)系構(gòu)成。在組件圖中,構(gòu)件是軟件單個(gè)組成部分,它可以是一個(gè)文件,產(chǎn)品、可執(zhí)行文件和腳本等。
10.部署圖(配置圖Deployment Diagram)
是用來(lái)建模系統(tǒng)的物理部署。例如計(jì)算機(jī)和設(shè)備,以及它們之間是如何連接的。部署圖的使用者是開(kāi)發(fā)人員、系統(tǒng)集成人員和測(cè)試人員。部署圖用于表示一組物理結(jié)點(diǎn)的集合及結(jié)點(diǎn)間的相互關(guān)系,從而建立了系統(tǒng)物理層面的模型。
?
三、十種模型圖對(duì)比
這十種模型圖各有側(cè)重:
1:用例圖側(cè)重描述用戶需求,
2:類圖側(cè)重描述系統(tǒng)具體實(shí)現(xiàn);
描述的方面都不相同:
1:類圖描述的是系統(tǒng)的結(jié)構(gòu),
2:序列圖描述的是系統(tǒng)的行為;
抽象的層次也不同:
1:構(gòu)件圖描述系統(tǒng)的模塊結(jié)構(gòu),抽象層次較高,
2:類圖是描述具體模塊的結(jié)構(gòu),抽象層次一般,
3:對(duì)象圖描述了具體的模塊實(shí)現(xiàn),抽象層次較低。
在有的文獻(xiàn)書(shū)籍中,將這九種模型圖分為三大類:
結(jié)構(gòu)分類、動(dòng)態(tài)行為和模型管理:
1:結(jié)構(gòu)分類包括用例圖、類圖、對(duì)象圖、構(gòu)件圖和部署圖,
2:動(dòng)態(tài)行為包括狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖,
3:模型管理則包含類圖。
?
總結(jié)
- 上一篇: UML建模——用例图(Use Case
- 下一篇: UML用例图间关系说明