1.UML簡介
Unified Modeling Language (UML)又稱統(tǒng)一建模語言或標準建模語言。
簡單說就是以圖形方式表現(xiàn)模型,根據(jù)不同模型進行分類,在UML 2.0中有13種圖,以下是他們的主要用途簡介:
1.用例圖:對系統(tǒng)的使用方式分類.
2.類圖:顯示類和它們的相互關(guān)系。
3.對象圖:只顯示對象及它們的相互關(guān)系。
4.活動圖:顯示人或?qū)ο蟮幕顒樱浞绞筋愃朴诹鞒虉D。
5.狀態(tài)機圖:顯示生命周期比較有趣或復雜的對象的各種狀態(tài)。
6.通信圖:顯示在某種情形下對象之間發(fā)送的消息。
7.順序圖:顯示與通信圖類以的信息,但強調(diào)的是順序,而不是連接。
8.包圖:顯示相關(guān)的類如何組合,對開發(fā)人員有用。
9.部署圖:顯示安裝已完成系統(tǒng)的機器、過程和部署制品。
10.組件圖:顯示可重用的組件(對象或子系統(tǒng))及期接口。
11.交互總圖:使用順序圖喧赤活動的務個步驟。
12.時間圖:顯示消息和對象狀態(tài)的準確時間限制。
13.復合結(jié)構(gòu)圖:顯示對象在聚合或復合中的相互關(guān)系,顯示接口和協(xié)作的對象
常用的 UML 圖可分靜(態(tài))圖、動(態(tài))圖兩類,靜態(tài)圖主要描繪軟件的靜態(tài)結(jié)構(gòu),而動態(tài)圖主要描繪軟件的動態(tài)行為。 常用 UML 動態(tài)圖(5 個):用例圖,活動圖,狀態(tài)機圖,序列圖,通信圖。 常用 UML 靜態(tài)圖(4 個):類圖,包圖,部署圖,構(gòu)件圖。
2.UML類圖
在所有UML圖中,類圖是使用頻率最高的UML圖。
類圖用于描述系統(tǒng)中所包含的類以及它們之間的相互關(guān)系,幫助人們簡化對系統(tǒng)的理解,它是系統(tǒng)分析和設計階段的重要產(chǎn)物,也是系統(tǒng)編碼和測試的重要模型依據(jù)。
類圖主要關(guān)系有:泛化(Generalization), 實現(xiàn)(Realization),關(guān)聯(lián)(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)
定義:顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;它用于描述系統(tǒng)的結(jié)構(gòu)化設計。
類型:靜態(tài)圖
應用:設計階段
2.1 泛化(Generalization)
【泛化關(guān)系】:是一種繼承關(guān)系,表示一般與特殊的關(guān)系,它指定了子類如何特化父類的所有特征和行為。例如:蘋果樹是樹的一種,即有蘋果樹的特性也有樹的共性。
【代碼體現(xiàn)】:類繼承另一個類
【箭頭指向】:帶三角箭頭的實線,箭頭指向父類
2.2 實現(xiàn)(Realization)
【實現(xiàn)關(guān)系】:是一種類與接口的關(guān)系,表示類是接口所有特征和行為的實現(xiàn).
【代碼體現(xiàn)】:類實現(xiàn)接口成員
【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口
2.3 關(guān)聯(lián)(Association)
【關(guān)聯(lián)關(guān)系】:是一種擁有的關(guān)系,它使一個類知道另一個類的屬性和方法;
【代碼體現(xiàn)】:成員變量
【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者
上圖,表示企業(yè)和員工的關(guān)聯(lián)關(guān)系,員工都屬于一個企業(yè)
除此之外,關(guān)聯(lián)關(guān)系允許互相關(guān)聯(lián),比如夫妻關(guān)系,可以互相關(guān)聯(lián)。也允許自關(guān)聯(lián),即自己也是自己的成員之一。
2.4 聚合(Aggregation)
【聚合關(guān)系】:是整體與部分的關(guān)系,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關(guān)系,輪胎離開車仍然可以存在。
聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強的關(guān)聯(lián)關(guān)系;關(guān)聯(lián)和聚合在語法上無法區(qū)分,必須考察具體的邏輯關(guān)系。
【代碼體現(xiàn)】:成員變量
【箭頭及指向】:帶空心菱形的實心線,菱形指向整體
2.5 組合(Composition)
【組合關(guān)系】:是整體與部分的關(guān)系,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關(guān)系,沒有公司就不存在部門。
組合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強的關(guān)系,它要求普通的聚合關(guān)系中代表整體的對象負責代表部分的對象的生命周期。
【代碼體現(xiàn)】:成員變量
【箭頭及指向】:帶實心菱形的實線,菱形指向整體
2.6 依賴(Dependency)
【依賴關(guān)系】:是一種使用的關(guān)系,即一個類的實現(xiàn)需要另一個類的協(xié)助,所以要盡量不使用雙向的互相依賴.
【代碼表現(xiàn)】:局部變量、方法的參數(shù)或者對靜態(tài)方法的調(diào)用
【箭頭及指向】:帶箭頭的虛線,指向被使用者
例如:程序員需要依賴計算機
下面這張圖是從網(wǎng)上下載的上面各種關(guān)系的一個綜合圖:
** 泛化**** = ****實現(xiàn)**** > ****組合**** > ****聚合**** > ****關(guān)聯(lián)**** > ****依賴**
3.類圖中細節(jié)符號含義
UML是一種統(tǒng)一建模語言,在使用過程中就有統(tǒng)一的細節(jié)表示,下面是幾種通用的表示方法,不論你使用什么工具,總體表示差異不大。
類:
抽象類,類名使用用斜體顯示。
字段、屬性、方法:
‘+’表示public
‘-’表示private
‘#’表示protected。
接口:
與類圖的區(qū)別主要是頂端有<<interface>>顯示 ,見上面的示例。
4.在Visual Stodio 2013/2015中創(chuàng)建UML類圖
在.NET開發(fā)中,我們可以使用VS自有的功能方便設計類圖,VS2013旗艦版和VS2015企業(yè)版都有建模工程,下面介紹一下如何使用VS建模
(1)在VS中新建,選擇”建模項目“,如下:
(2)打開建模項目,增加一個UML類圖
(3)打開新建的UML類圖文件,通過工具欄建立類、接口等,并創(chuàng)建關(guān)系
(4)將設計好的UML類圖,生成代碼
(5)查看生成代碼
(6)逆向(由代碼生成類圖)
在VS中,我們可以將代碼很方便的生成UML類圖,如下
5.UML類圖工具
UML工具比較多,常用的三大UML建模工
(1)PowerDesign
(2)Rose
(3)Visio
還有一些免費的工具有:
(1)UMLet
(2)ArgoUML
(3)JUDE
(4)BOUml
(5)Visual Paradigm
在線建工具:
根據(jù)自己愛好選用吧。
6.總結(jié)
本篇主要介紹了UML統(tǒng)一建模語言在面向?qū)ο蟪绦蛟O計中如何使用,幾種關(guān)系的UML類圖示例,最后介紹了在.NET開發(fā)中,使用VS2013/2015建立UML類圖及生成代碼。主要介紹的是其使用方法,具體使用,需要在不斷的了解業(yè)務需求的基礎上,才能設計出合格的UML圖。