畫(huà)圖干貨!14種uml圖類型及示例
1. 什么是 UML
UML 是統(tǒng)一建模語(yǔ)言的縮寫。UML 圖是基于 UML(統(tǒng)一建模語(yǔ)言)的圖表,目的是直觀地表示系統(tǒng)及其主要參與者、角色、動(dòng)作、工件或類,以便更好地理解、更改、維護(hù)或記錄信息關(guān)于系統(tǒng)。簡(jiǎn)而言之,UML 是一種現(xiàn)代的軟件建模和文檔化方法。事實(shí)上,它是最流行的業(yè)務(wù)流程建模技術(shù)之一。
它基于軟件組件的圖形表示。正如古老的諺語(yǔ)所說(shuō):“一圖勝千言”。通過(guò)使用視覺(jué)表示,我們能夠更好地理解軟件或業(yè)務(wù)流程中可能存在的缺陷或錯(cuò)誤。
UML 是由于圍繞軟件開(kāi)發(fā)和文檔的混亂而創(chuàng)建的。在 1990 年代,有幾種不同的方式來(lái)表示和記錄軟件系統(tǒng)。需要一種更統(tǒng)一的方式來(lái)可視化地表示這些系統(tǒng),因此,在 1994-1996 年,UML 由在Rational Software工作的三位軟件工程師開(kāi)發(fā)。它后來(lái)于 1997 年被采納為標(biāo)準(zhǔn),此后一直是標(biāo)準(zhǔn),僅接受了一些更新。
2. UML 圖的類型
UML圖分為行為UML圖和結(jié)構(gòu)UML圖兩大類,前者分析和描述系統(tǒng)或流程的結(jié)構(gòu),后者則描述系統(tǒng)的行為、它的參與者和它的構(gòu)建組件。這兩大類里面又包括很多具體類型。
行為UML圖包括:活動(dòng)圖、用例圖、交互概覽圖、時(shí)序圖、狀態(tài)機(jī)圖、通訊圖和時(shí)序圖。
結(jié)構(gòu)UML圖包括:類圖、對(duì)象圖、組件圖、復(fù)合結(jié)構(gòu)圖、部署圖、包圖和剖面圖。
在記錄系統(tǒng)和/或架構(gòu)時(shí),并非所有 14 種不同類型的 UML 圖都會(huì)定期使用。帕累托原則似乎也適用于UML 圖的使用——開(kāi)發(fā)人員在 80% 的時(shí)間里使用 20% 的圖。軟件開(kāi)發(fā)中最常用的有:用例圖、類圖和序列圖。
(1)活動(dòng)圖
活動(dòng)圖可能是用于業(yè)務(wù)流程建模的最重要的 UML 圖。在軟件開(kāi)發(fā)中,一般用來(lái)描述不同活動(dòng)和動(dòng)作的流程。這些可以是順序的也可以是并行的。它們描述了活動(dòng)使用、消費(fèi)或生產(chǎn)的對(duì)象,以及不同活動(dòng)之間的關(guān)系。以上所有內(nèi)容在業(yè)務(wù)流程建模中都是必不可少的。
(2)用例圖
系統(tǒng)的基石部分是系統(tǒng)滿足的功能需求。用例圖用于分析系統(tǒng)的高層需求。這些要求通過(guò)不同的用例來(lái)表達(dá)。我們注意到這個(gè) UML 圖的三個(gè)主要組成部分:
功能需求——表示為用例;描述動(dòng)作的動(dòng)詞
參與者——他們與系統(tǒng)交互;參與者可以是人、組織或內(nèi)部或外部應(yīng)用程序
參與者和用例之間的關(guān)系——用直箭頭表示
(3)交互概覽圖
交互概述 UML 圖可能是最復(fù)雜的一些圖。到目前為止,我們已經(jīng)解釋了什么是活動(dòng)圖。此外,在行為圖集中,我們有一個(gè)由四個(gè)圖組成的子集,稱為交互圖。所以,交互概覽圖是由不同的交互圖組成的活動(dòng)圖。
上面的示例顯示了如何使用 UML 圖來(lái)描述系統(tǒng)的動(dòng)態(tài)行為、結(jié)構(gòu)組織和對(duì)象之間的交互。所有這一切,同時(shí)考 慮事件發(fā)生的時(shí)間和順序,從而密切關(guān)注事件和消息流的順序。
該圖有起點(diǎn)和終點(diǎn),就像任何活動(dòng)圖一樣。然后,在頂層視圖上,它通過(guò)使用矩形框來(lái)描述交互和交互使用。在交互(矩形框)中,我們包含了一個(gè)完整的獨(dú)立序列圖,包含三個(gè)主要參與者:助手、中間件報(bào)告系統(tǒng)和檢查器。一旦動(dòng)作序列完成,流程狀態(tài)就會(huì)分支,要么重復(fù)之前的交互,要么繼續(xù)進(jìn)行新的交互,然后結(jié)束流程。
(4)時(shí)序圖
時(shí)序 UML 圖用于表示注意力集中在時(shí)間上時(shí)對(duì)象之間的關(guān)系。我們對(duì)對(duì)象如何相互作用或相互改變不感興趣,而是想表示對(duì)象和參與者如何沿著線性時(shí)間軸行動(dòng)。
(6)序列圖
序列圖可能是最重要的 UML 圖,不僅在計(jì)算機(jī)科學(xué)界,而且在業(yè)務(wù)應(yīng)用程序開(kāi)發(fā)的設(shè)計(jì)級(jí)模型中也是如此。最近,由于它們?cè)谝曈X(jué)上不言自明的特性,它們?cè)诿枥L業(yè)務(wù)流程方面變得很流行。
顧名思義,序列圖描述了參與者和對(duì)象之間發(fā)生的消息和交互的順序。參與者或?qū)ο髢H在需要時(shí)或其他對(duì)象想要與它們通信時(shí)才處于活動(dòng)狀態(tài)。所有通信都按時(shí)間順序表示。要獲得更好的想法,請(qǐng)查看下面的 UML 序列圖示例。
顧名思義,結(jié)構(gòu)圖用于描述系統(tǒng)的結(jié)構(gòu)。更具體地說(shuō),它在軟件開(kāi)發(fā)中用于表示系統(tǒng)的體系結(jié)構(gòu)以及不同組件如何互連(不是它們的行為或通信方式,只是它們的位置)。
下面你可以看到一個(gè)序列圖的例子,描述了一個(gè)課程注冊(cè)系統(tǒng)。
uml序列圖
(7)通信UML圖
在 UML 1.x 中,通信圖過(guò)去被稱為協(xié)作圖。顧名思義,這種類型的 UML 圖的主要焦點(diǎn)是對(duì)象之間的通信。
由于核心組件是對(duì)象之間交換的消息,我們可以像制作時(shí)序圖一樣構(gòu)建通信圖。兩者之間的唯一區(qū)別是通信圖中的對(duì)象以關(guān)聯(lián)連接顯示。
從視覺(jué)上看,兩者的不同之處在于序列圖是垂直結(jié)構(gòu)良好的,消息流遵循自上而下的時(shí)間順序方法。另一方面,通信 UML 圖使用數(shù)字方案和指向箭頭來(lái)描述消息流。
如果在為流程或系統(tǒng)編寫文檔時(shí)必須在兩者之間做出選擇,序列圖可能是更好的選擇。許多軟件工程師更喜歡序列圖,不僅因?yàn)樗鼈兘Y(jié)構(gòu)更好,而且因?yàn)樗鼈冊(cè)?UML 文檔中的可用注釋方面得到了更多關(guān)注。
另一方面,通信圖更容易設(shè)計(jì),因?yàn)槟梢栽诶L圖板上的任何位置添加對(duì)象。畢竟,為了連接對(duì)象,它們只需要成為編號(hào)序列的一部分,而不必在物理上彼此靠近。
下面我們分析時(shí)序圖。如果您想了解更多關(guān)于通信圖和序列圖之間差異的信息,可以在此處繼續(xù)閱讀。
uml通信圖
(8)類圖
類 UML 圖是最常見(jiàn)的軟件文檔圖表類型。由于當(dāng)今創(chuàng)建的大多數(shù)軟件仍然基于面向?qū)ο蟮木幊谭妒剑虼耸褂妙悎D來(lái)記錄軟件被證明是一種常識(shí)性解決方案。發(fā)生這種情況是因?yàn)?OOP 基于類和它們之間的關(guān)系。
uml類圖模板
簡(jiǎn)而言之,類圖包含類及其屬性(也稱為數(shù)據(jù)字段)和它們的行為(也稱為成員函數(shù))。更具體地說(shuō),每個(gè)類都有 3 個(gè)字段:頂部的類名,名稱正下方的類屬性,底部的類操作/行為。不同類之間的關(guān)系(用連線表示),構(gòu)成了類圖。
(9)對(duì)象圖
數(shù)據(jù)庫(kù)UML對(duì)象圖描述一組對(duì)象之間的關(guān)系,是具有具體屬性值和行為的一個(gè)具體事物。其是類圖中所建事物實(shí)例的靜態(tài)快照,其與類圖的主要區(qū)別是一個(gè)是抽象的,而對(duì)象圖是具體的。
uml對(duì)象圖模板
(10)組件圖
在處理復(fù)雜系統(tǒng)的文檔時(shí),組件 UML 圖可以幫助將系統(tǒng)分解為更小的組件。有時(shí)很難描述系統(tǒng)的體系結(jié)構(gòu),因?yàn)樗赡馨鄠€(gè)部門或可能采用不同的技術(shù)。
(11)組合結(jié)構(gòu)圖
這種UML圖不常用,因?yàn)樗墓δ芊浅>唧w。它只表示一個(gè)類的內(nèi)部結(jié)構(gòu)和不同類組件之間的關(guān)系。
業(yè)務(wù)專業(yè)人員通常對(duì)組合結(jié)構(gòu)圖不感興趣,因?yàn)樗麄冎饕P(guān)注組件的頂層視圖以及它們?nèi)绾蜗嗷ネㄐ拧?duì)于管理者來(lái)說(shuō),了解一個(gè)類的特定數(shù)據(jù)成員與另一個(gè)類的數(shù)據(jù)成員之間的關(guān)系幾乎是無(wú)關(guān)緊要的。
(12)部署圖
部署圖用于可視化軟件和硬件之間的關(guān)系。更具體地說(shuō),利用部署圖,我們可以構(gòu)建一個(gè)物理模型,說(shuō)明軟件組件(工件)如何部署在稱為節(jié)點(diǎn)的硬件組件上。
(13)包圖
包圖就像我們上面解釋的部署 UML 圖的宏容器。不同的包包含節(jié)點(diǎn)和工件。它們將模型圖和組件組織成組,就像命名空間封裝在某種程度上相互關(guān)聯(lián)的不同名稱一樣。
最終,一個(gè)包也可以由多個(gè)其他包構(gòu)建 ,以描述更復(fù)雜的系統(tǒng)和行為。包圖的主要目的是顯示構(gòu)成復(fù)雜系統(tǒng)的不同大型組件之間的關(guān)系。程序員發(fā)現(xiàn)這種抽象機(jī)會(huì)是使用包圖的一個(gè)很好的優(yōu)勢(shì),尤其是當(dāng)一些細(xì)節(jié)可以從大局中遺漏時(shí)。
uml包圖
(14)剖面圖
配置文件圖不是典型的 UML 圖類型。事實(shí)上,它可以更多地被視為一種可擴(kuò)展性機(jī)制,而不是像其他任何圖表類型一樣。
通過(guò)使用構(gòu)造型、標(biāo)記值和約束,可以擴(kuò)展和自定義現(xiàn)有的 UML 符號(hào)。剖面圖就像一種語(yǔ)言,如果你說(shuō)英語(yǔ),你可以創(chuàng)建新的句子,如果你說(shuō)剖面圖,那么你可以為 UML 圖創(chuàng)建新的屬性和語(yǔ)義。
原型——用于擴(kuò)展可用的 UML 元素。它們?cè)试S您創(chuàng)建、編輯或派生一個(gè)新的元素或構(gòu)建塊,然后可以直接在圖表中使用。
標(biāo)記值——將其視為向現(xiàn)有模型添加新屬性。一個(gè)新的標(biāo)記值將分別產(chǎn)生一個(gè)新的關(guān)鍵字。
約束——這個(gè)詞是不言自明的,但是,將約束視為可以添加到圖表中的新條件。例如,約束可以是:“未結(jié)余額必須大于 3 美元”。此約束可用于控制銀行系統(tǒng)何時(shí)應(yīng)終止支票帳戶。
uml剖面圖
UML 圖最近已成為一種非常強(qiáng)大的工具,不同行業(yè)得到廣泛應(yīng)用,許多業(yè)務(wù)人員已開(kāi)始在日常工作中采用它們。博思白板boardmix是一款常用于繪制uml圖的軟件,它內(nèi)置專業(yè)的uml圖形符號(hào)元素和箭頭線條,支持自定義調(diào)節(jié)樣式和顏色,且能通過(guò)鏈接分享給他人,完成后還能自由導(dǎo)出成圖片或PDF文件格式,非常易于操作,新手使用也沒(méi)有壓力。
轉(zhuǎn)載請(qǐng)?jiān)谖恼麻_(kāi)頭和結(jié)尾顯眼處標(biāo)注:作者、出處和鏈接。不按規(guī)范轉(zhuǎn)載侵權(quán)必究。
未經(jīng)授權(quán)嚴(yán)禁轉(zhuǎn)載,授權(quán)事宜請(qǐng)聯(lián)系作者本人,侵權(quán)必究。
本文禁止轉(zhuǎn)載,侵權(quán)必究。
授權(quán)事宜請(qǐng)至數(shù)英微信公眾號(hào)(ID: digitaling) 后臺(tái)授權(quán),侵權(quán)必究。
評(píng)論
評(píng)論
推薦評(píng)論
暫無(wú)評(píng)論哦,快來(lái)評(píng)論一下吧!
全部評(píng)論(0條)