UML(Unified Modeling Language),UML規(guī)范用來(lái)描述建模的概念有,類(對(duì)象的)、對(duì)象、關(guān)聯(lián)、職責(zé)、行為、接口、用例、包、順序、協(xié)作,以及狀態(tài)。這里對(duì)UML做一個(gè)簡(jiǎn)單介紹
UNL雖然有很多功能,但平時(shí)有的最多的就是類圖,時(shí)序圖和用例圖,那么接下來(lái)分別對(duì)這三種功能做一個(gè)簡(jiǎn)要概述
在UML類圖中,常見(jiàn)的有以下幾種關(guān)系: 泛化(Generalization), 實(shí)現(xiàn)(Realization), 關(guān)聯(lián)(Association), 聚合(Aggregation), 組合(Composition), 依賴(Dependency)
【泛化關(guān)系】:是一種繼承關(guān)系, 表示一般與特殊的關(guān)系, 它指定了子類如何特化父類的所有特征和行為. 例如:老虎是動(dòng)物的一種, 即有老虎的特性也有動(dòng)物的共性
【箭頭指向】:帶三角箭頭的實(shí)線,箭頭指向父類
【實(shí)現(xiàn)關(guān)系】:是一種類與接口的關(guān)系, 表示類是接口所有特征和行為的實(shí)現(xiàn).
【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口
【關(guān)聯(lián)關(guān)系】:是一種擁有的關(guān)系, 它使一個(gè)類知道另一個(gè)類的屬性和方法;如:老師與學(xué)生,丈夫與妻子
關(guān)聯(lián)可以是雙向的,也可以是單向的。雙向的關(guān)聯(lián)可以有兩個(gè)箭頭或者沒(méi)有箭頭,單向的關(guān)聯(lián)有一個(gè)箭頭。
【代碼體現(xiàn)】:成員變量
【箭頭及指向】:帶普通箭頭的實(shí)心線,指向被擁有者
【聚合關(guān)系】:是整體與部分的關(guān)系, 且部分可以離開(kāi)整體而單獨(dú)存在. 如車和輪胎是整體和部分的關(guān)系, 輪胎離開(kāi)車仍然可以存在.
聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)的關(guān)聯(lián)關(guān)系;關(guān)聯(lián)和聚合在語(yǔ)法上無(wú)法區(qū)分,必須考察具體的邏輯關(guān)系。
【代碼體現(xiàn)】:成員變量
【箭頭及指向】:帶空心菱形的實(shí)心線,菱形指向整體
【組合關(guān)系】:是整體與部分的關(guān)系, 但部分不能離開(kāi)整體而單獨(dú)存在. 如公司和部門(mén)是整體和部分的關(guān)系, 沒(méi)有公司就不存在部門(mén).
組合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強(qiáng)的關(guān)系,它要求普通的聚合關(guān)系中代表整體的對(duì)象負(fù)責(zé)代表部分的對(duì)象的生命周期
【代碼體現(xiàn)】:成員變量
【箭頭及指向】:帶實(shí)心菱形的實(shí)線,菱形指向整體
【依賴關(guān)系】:是一種使用的關(guān)系, 即一個(gè)類的實(shí)現(xiàn)需要另一個(gè)類的協(xié)助, 所以要盡量不使用雙向的互相依賴.
【代碼表現(xiàn)】:局部變量、方法的參數(shù)或者對(duì)靜態(tài)方法的調(diào)用
【箭頭及指向】:帶箭頭的虛線,指向被使用者
泛化 = 實(shí)現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴
下面這張UML圖,比較形象地展示了各種類圖關(guān)系:
時(shí)序圖(Sequence Diagram
)是顯示對(duì)象之間交互的圖,這些對(duì)象是按時(shí)間順序排列的。順序圖中顯示的是參與交互的對(duì)象及其對(duì)象之間消息交互的順序。時(shí)序圖中包括的建模元素主要有:角色(Actor
)、對(duì)象(Object
)、生命線(Lifeline
)、控制焦點(diǎn)(Focus of control
)、消息(Message
)等等
系統(tǒng)角色,可以是人、及其甚至其他的系統(tǒng)或者子系統(tǒng)
對(duì)象包括三種命名方式:
第一種方式包括對(duì)象名和類名
第二中方式只顯示類名不顯示對(duì)象名,即表示他是一個(gè)匿名對(duì)象
第三種方式只顯示對(duì)象名不顯示類明
生命線在順序圖中表示為從對(duì)象圖標(biāo)向下延伸的一條虛線,表示對(duì)象存在的時(shí)間,如下圖
控制焦點(diǎn)是順序圖中表示時(shí)間段的符號(hào),在這個(gè)時(shí)間段內(nèi)對(duì)象將執(zhí)行相應(yīng)的操作。用小矩形表示。如下圖表示
消息一般分為同步消息(Synchronous Message
),異步消息(Asynchronous Message
)和返回消息(Return Message
).如下圖所示
Synchronous Message
)Asynchronous Message
)Return Message
)Self-Message
)Combined Fragments
loop
)發(fā)送GetProperty
消息獲得屬性。在使用Astah畫(huà)時(shí)序圖時(shí),選擇一個(gè)Combined Fragments
之后,可以在其對(duì)應(yīng)的屬性面板更改對(duì)應(yīng)的發(fā)送條件。里面介紹了很多,此處列舉一二:Alternative fragment(denoted "alt")
與if…then…else
對(duì)應(yīng)Option fragment (denoted "opt")
與Switch
對(duì)應(yīng)Parallel fragment (denoted "par")
表示同時(shí)發(fā)生Loop fragment(denoted "loop")
與for
或者Foreach
對(duì)應(yīng)用例圖主要用來(lái)描述“用戶、需求、系統(tǒng)功能單元”之間的關(guān)系。它展示一個(gè)外部用戶能夠觀察到的系統(tǒng)功能模型圖。用例圖多用于靜態(tài)建模階段(主要是業(yè)務(wù)建模和需求建模),幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求
在系統(tǒng)外部與系統(tǒng)直接交互的人或事物;需要注意以下兩點(diǎn):
1)參與者是角色而不是具體的人,它代表了參與者在與系統(tǒng)打交道的過(guò)程中所扮演的角色。所以在系統(tǒng)的實(shí)際運(yùn)作中,一個(gè)實(shí)際用戶可能對(duì)應(yīng)系統(tǒng)的多個(gè)參與者。不同的用戶也可以只對(duì)應(yīng)于一個(gè)參與者,從而代表同一參與者的不同實(shí)例
2)參與者作為外部用戶(而不是內(nèi)部)與系統(tǒng)發(fā)生交互作用,是它的主要特征。
在UML中,參與者使用如圖所示的一個(gè)小人表示
系統(tǒng)外部可見(jiàn)的一個(gè)系統(tǒng)功能單元。系統(tǒng)的功能由系統(tǒng)單元所提供,并通過(guò)一系列系統(tǒng)單元與一個(gè)或多個(gè)參與者之間交換的消息所表達(dá)。用橢圓表示,橢圓中的文字簡(jiǎn)述系統(tǒng)的功能
聯(lián)系客服