UML建模之類圖&包圖&對象圖

類圖spa

類圖Class diagram經過顯示出系統的類以及這些類之間的關係來表示系統。類圖是靜態的-它們顯示出什麼能夠產生影響但不會告訴你何時產生影響。對象

下面是一個顧客從零售商處預約商品的模型的類圖。中心的類是Order。鏈接它的是購買貨物的Customer和Payment。Payment有三種形式:Cash,Check,或者Credit。訂單包括OrderDetails(line item),每一個這種類都連着Item。繼承

Class diagram

UML類的符號是一個被劃分紅三塊的方框:類名,屬性,和操做。抽象類的名字,像Payment是斜體的。類之間的關係是鏈接線。遞歸

類圖有三種關係。ip

  • 關聯association-表示兩種類的實例間的關係。若是一個類的實例必需要用另外一個類的實例才能完成工做時就要用關聯。在圖中,關聯用兩個類之間的連線表示。
  • 聚合aggregation-當一個類屬於一個容器是的一種特殊關係。聚合用一個帶菱形的連線,菱形指向具備總體性質的類。在咱們的圖裏,Order是OrderDetails的容器。
  • 泛化generalization-一個指向以其餘類做爲超類的繼承連線。泛化關係用一個三角形指向超類。Payment是Cash,Check和Credit的超類。

一個關聯有兩個尾端。每一個尾端能夠有一個角色名role name來講明關聯的做用。好比,一個OrderDetail實例是一個Order實例的項目。ci

關聯上的方向性navigability箭頭表示該關聯傳遞或查詢的方向。OrderDetail類能夠查詢他的Item,但不能夠反過來查詢。箭頭方向一樣能夠告訴你哪一個類擁有這個關聯的實現;也就是,OrderDetail擁有Item。沒有方向性的箭頭的關聯是雙向。it

關聯尾端的數字表示該關聯另外一邊的一個實例能夠對應的數字端的實例的格數,經過這種方式表達關聯的多樣性multiplicity。多樣性的數字能夠是一個單獨的數字或者是一個數字的範圍。在例子中,每一個Order只有一個Customer,但一個Customer能夠有任意多個Order。io

下面這個表給出了最廣泛的多樣性示例。table

多樣性 意義
0..1 0或1個實例. n..m符號表示有n到m個實例
0..*  or  * 沒有實例格數的限制(包括沒有).
1 只有一個實例
1..* 最少一個實例

每一個類圖包括類,關聯和多樣性表示。方向性和角色是爲了使圖示得更清楚時可選的項目。class

包和對象圖

爲了簡單地表示出複雜的類圖,能夠把類組合成包packages。一個包是UML上有邏輯關係的元件的集合。下面這個圖是是一個把類組合成包的一個商業模型。

dependencies關係。若是另外一個的包B改變可能會致使一個包A改變,則包A依賴包B。

Package diagram

包是用一個在上方帶有小標籤的矩形表示的。包名寫在標籤上或者在矩形裏面。點化線箭頭表示依賴

對象圖Object diagrams用來表示類的實例。他們在解釋複雜關係的細小問題時(特別是遞歸關係時)頗有用。

這個類圖示一個大學的Department能夠包括其餘不少的Departments。

Recursive class diagram

這個對象圖示上面類圖的實例。用了不少具體的例子。

UML中實例名帶有下劃線。只要意思清楚,類或實例名能夠在對象圖中被省略。

Object diagram

每一個類圖的矩形對應了一個單獨的實例。實例名稱中所強調的UML圖表。類或實例的名稱多是省略對象圖表只要圖的意義仍然是明確的。

 

【轉】http://www.uml.org.cn/oobject/200901203.asp

相關文章
相關標籤/搜索