uml概述
uml形式
- 類(lèi)圖
- 時(shí)序圖
類(lèi)圖是展示軟件項(xiàng)目中,類(lèi)與類(lèi)關(guān)系的邏輯圖。
時(shí)序圖展示的是軟件的方法調(diào)用流程。
uml類(lèi)圖
先從一張圖片說(shuō)起:
圖中一共包含五種關(guān)系
- 泛化
- 聚合
- 組合
- 依賴(lài)
- 關(guān)聯(lián)
泛化
泛化關(guān)系,有兩種類(lèi)型
- 繼承 上圖中小汽車(chē)和suv就是繼承關(guān)系,小汽車(chē)是suv的父類(lèi),對(duì)應(yīng)在uml圖上就是用一個(gè)空心三角箭頭指向父類(lèi)
- 實(shí)現(xiàn) 上圖中小汽車(chē)實(shí)現(xiàn)車(chē)這個(gè)接口,也是空心三角箭頭指向接口,但線是虛線
聚合
聚合關(guān)系,表示由A組成B,但如果B不存在了,A還能獨(dú)立存在,A是B的一部分。對(duì)應(yīng)上圖的學(xué)生和班級(jí),由實(shí)線菱形箭頭表示
組合
組合關(guān)系,表示A是B的一部分,但如果B不存在了,那么A也不再存在。對(duì)應(yīng)上圖的輪胎和小汽車(chē),由實(shí)現(xiàn)黑色菱形箭頭表示,箭頭指向B。
組合關(guān)系和聚合關(guān)系非常相似,都表示A是B的一部分,但組合關(guān)系相對(duì)更加箭單一些,只要A是B的全局變量,則可以使用組合關(guān)系表達(dá),但聚合關(guān)系稍微復(fù)雜,表示A能脫離B而單獨(dú)存在,比如學(xué)生與班級(jí),班級(jí)不存在了,學(xué)生依舊存在。
依賴(lài)
依賴(lài)關(guān)系,使用帶虛線的箭頭表示,表示在運(yùn)行時(shí)的依賴(lài),是一種臨時(shí)性的關(guān)系。
上圖中,學(xué)生就依賴(lài)于自行車(chē)。
對(duì)應(yīng)軟件上,本人理解的就是,A依賴(lài)B,B是A在運(yùn)行時(shí)的局部變量。
關(guān)聯(lián)
關(guān)聯(lián)關(guān)系,使用實(shí)線箭頭表示,但表示的是一種靜態(tài)關(guān)系的依賴(lài)。
關(guān)聯(lián)關(guān)系,在最終代碼上是以成員變量形式存在的。與組合,聚合類(lèi)似。
如上圖所示,Adress是Customer的一個(gè)成員變量,它們之間就是關(guān)聯(lián)關(guān)系,箭頭處為成員變量。
uml時(shí)序圖
uml時(shí)序圖,用于表示軟件的調(diào)用流程,使用starUml軟件繪制uml時(shí)序圖特別方便,標(biāo)注也很清晰。
uml類(lèi)圖,本人傾向于使用visio 2013繪制
uml時(shí)序圖具體示例請(qǐng)看下圖