類圖spa
類圖Class diagram經過顯示出系統的類以及這些類之間的關係來表示系統。類圖是靜態的-它們顯示出什麼能夠產生影響但不會告訴你何時產生影響。對象
下面是一個顧客從零售商處預約商品的模型的類圖。中心的類是Order。鏈接它的是購買貨物的Customer和Payment。Payment有三種形式:Cash,Check,或者Credit。訂單包括OrderDetails(line item),每一個這種類都連着Item。繼承
UML類的符號是一個被劃分紅三塊的方框:類名,屬性,和操做。抽象類的名字,像Payment是斜體的。類之間的關係是鏈接線。遞歸
類圖有三種關係。ip
一個關聯有兩個尾端。每一個尾端能夠有一個角色名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。
包是用一個在上方帶有小標籤的矩形表示的。包名寫在標籤上或者在矩形裏面。點化線箭頭表示依賴
對象圖Object diagrams用來表示類的實例。他們在解釋複雜關係的細小問題時(特別是遞歸關係時)頗有用。
這個類圖示一個大學的Department能夠包括其餘不少的Departments。
這個對象圖示上面類圖的實例。用了不少具體的例子。
UML中實例名帶有下劃線。只要意思清楚,類或實例名能夠在對象圖中被省略。
每一個類圖的矩形對應了一個單獨的實例。實例名稱中所強調的UML圖表。類或實例的名稱多是省略對象圖表只要圖的意義仍然是明確的。
【轉】http://www.uml.org.cn/oobject/200901203.asp