一個單一的圖涵蓋所有方面的制度是不夠的,因此,UML 定義了各種圖表覆蓋系統(tǒng)方面。
我們將 UML 中的圖分為兩大類:
結(jié)構(gòu)圖
行為圖
UML 結(jié)構(gòu)圖:
UML 結(jié)構(gòu)圖表示系統(tǒng)的靜態(tài)方面。這些靜態(tài)方面指示,形成的主要結(jié)構(gòu)并因此穩(wěn)定那些部分。
這些靜態(tài)部分是類,接口,對象,組件和節(jié)點四個結(jié)構(gòu)圖:
- 類圖
- 對象圖
- 組件圖
- 部署圖
UML 類圖:
類圖是描述系統(tǒng)中的類,以及各個類之間的關(guān)系的靜態(tài)視圖,它包括:類、接口、關(guān)聯(lián)和協(xié)作。
類圖能夠讓我們在正確編寫代碼以前對系統(tǒng)有一個全面的認(rèn)識。
類圖是一種模型類型,確切的說,是一種靜態(tài)模型類型。
活動類在類圖來表示系統(tǒng)的并發(fā)性。
類圖代表的面向?qū)ο蟮南到y(tǒng)。
UML 對象圖:
對象圖與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類,它描述的不是類之間的關(guān)系,而是對象之間的關(guān)系。從實際的角度來看,它們被用來建立一個系統(tǒng)的原型。
UML 組件圖:
組件圖描述代碼構(gòu)件的物理結(jié)構(gòu)以及各種構(gòu)建之間的依賴關(guān)系。
組件圖用來建模軟件的組件及其相互之間的關(guān)系,這些圖由構(gòu)件標(biāo)記符和構(gòu)件之間的關(guān)系構(gòu)成。
組件圖中,構(gòu)件時軟件單個組成部分,它可以是一個文件,產(chǎn)品、可執(zhí)行文件和腳本等。
在設(shè)計階段的軟件構(gòu)件(類,接口等)的系統(tǒng)被安排在不同的組,這取決于他們的關(guān)系。這些組被稱為組件。
組件圖用于可視化的實現(xiàn)。
UML 部署圖:
部署圖是用來建模系統(tǒng)的物理部署。例如計算機和設(shè)備,以及它們之間是如何連接的。
部署圖的使用者是開發(fā)人員、系統(tǒng)集成人員和測試人員。
部署圖是一組節(jié)點和它們之間的關(guān)系,這些節(jié)點部署這些組件的物理實體。
部署圖用于可視化系統(tǒng)的部署視圖。
注: 如果上述描述和用法仔細觀察,這是很清楚的,所有的圖表都彼此有某種關(guān)系。組件圖是依賴的類,接口等類/對象圖的一部分。再次部署圖是取決于使用的組件,這些組件,以使一個組件圖。
UML 行為圖:
任何系統(tǒng)都可以有兩個方面,靜態(tài)和動態(tài)。因此,一個模型被認(rèn)為是完成時,這兩個方面都完全覆蓋。
行為圖基本上捕捉系統(tǒng)的動態(tài)方面。動態(tài)方面可以進一步改變/移動系統(tǒng)的一部分。
UML具有以下五種行為圖:
- 用例圖
- 序列圖
- 協(xié)作圖
- 狀態(tài)圖
- 活動圖
UML 用例圖:
用例圖描述角色以及角色與用例之間的連接關(guān)系。說明的是誰要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。
一個用例圖包含了多個模型元素,如系統(tǒng)、參與者和用例,并且顯示了這些元素之間的各種關(guān)系,如泛化、關(guān)聯(lián)和依賴。
因此,用例圖是用來描述的功能之間的關(guān)系和他們的內(nèi)部/外部控制器,這些控制器是已知的參與者。
UML 序列圖:
序列圖是一種交互圖。
序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統(tǒng)的對象交互的模型。
序列圖可以用來展示對象之間是如何進行交互的。
序列圖將顯示的重點放在消息序列上,即強調(diào)消息是如何在對象之間被發(fā)送和接收的。
從實施和執(zhí)行的角度來看是非常重要的系統(tǒng)組件之間的交互。
因此,在一個系統(tǒng)中執(zhí)行一個特定的功能的調(diào)用序列的序列圖是用于可視化。
UML 協(xié)作圖:
協(xié)作圖和序列圖相似,是另一種形式的交互圖;如果強調(diào)時間和順序,則使用序列圖;如果強調(diào)上下級關(guān)系,則選擇協(xié)作圖。
協(xié)作圖代表了一個系統(tǒng)的組織結(jié)構(gòu)和發(fā)送/接收的消息。組織結(jié)構(gòu)由對象和鏈接。
協(xié)作圖的目的是類似的序列圖。但是,協(xié)作圖的具體目的是可視化的組織對象及其相互作用。
UML 狀態(tài)圖:
狀態(tài)圖描述類的對象所有可能的狀態(tài),以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。
狀態(tài)圖可以捕獲對象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個對象可以擁有的狀態(tài),并且事件(如消息的接收、時間的流逝、錯誤、條件變?yōu)檎娴?會怎么隨著時間的推移來影響這些狀態(tài)。
狀態(tài)圖是用來表示的事件驅(qū)動的系統(tǒng)狀態(tài)的變化。它基本上描述了類,接口狀態(tài)變化等
狀態(tài)圖是用于可視化的反應(yīng)系統(tǒng)內(nèi)部/外部因素。
UML 活動圖:
活動圖描述了在一個系統(tǒng)中的控制流。
活動圖描述用例要求所要進行的活動,以及活動間的約束關(guān)系,有利于識別并行活動。
活動圖能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共同滿足前面使用用例圖建模的商務(wù)需求。
活動圖用于可視化的流量控制在一個系統(tǒng)中。這是準(zhǔn)備系統(tǒng)將如何工作,在執(zhí)行時有一個想法。
注: 在一個系統(tǒng)中很難捕捉到動態(tài)性質(zhì),而 UML 已經(jīng)提供從不同的角度捕捉到動態(tài)系統(tǒng)的功能。序列圖和協(xié)作圖是同構(gòu)的,它們之間的轉(zhuǎn)換不會丟失任何信息。
更多建議: