類圖的基本目的是顯示建模系統的類型,主要包括的類型有:類、介面、資料類型、組件等
UML為這些類型起了個名字叫分類器。通常可以把分類器當做類,但在技術上,分類器是更為普遍的術語。
類名
類的UML表示是一個長方形,垂直地分為三個區,頂部地區顯示類的名字。中間地區列出類的屬性。底部列出類的方法。
類屬性列表
類的屬性節在分隔線上列出每一個類的屬性。屬性是可選擇的,要是一用它,就包含類的列表顯示的每個屬性。
每個參數都使用這樣的格式:“參數名:參數類型”或“參數名:參數類型 = 預設值”
繼承
關聯
系統建模時,特定的對象間將會彼此關聯,而且這些關聯本身需要被清晰地建模。有五種關聯。
雙向(標準)的關聯
一個雙向關聯用兩個類間的實線表示,線上的任一端,放置一個角色名稱和多重值。
多重值和它們的表示:
| 可能的多重值描述 |
| 表示 |
含義 |
| 0..1 |
0個或1個 |
| 1 |
只能1個 |
| 0..* |
0個或多個 |
| * |
0個或多個 |
| 1..* |
1個或我個 |
| 3 |
只能3個 |
| 0..5 |
0到5個 |
| 5..15 |
5到15個 |
單向關聯
兩個類是相關的,但是只有一個類知道這種聯絡的存在。
一個單向的關係,表示為一條帶有指向已知類的開放箭頭的實線。如同標準關係,單向關係包括一個角色名稱和一個金重值描述,但是與標準和又向關係不同的是,單向關聯只包含已知類的角色名稱和金重描述。
軟體包,
在一個大的系統或大的業務領域建模,在模型中將會有許多不同的分類器。管理所有的類將是一件很麻煩的事情,所以,UML提供了一個稱為包的組織元素。軟體包使建模者能夠組織模型分類器到名字空間中。
有兩種方法表示軟體包。沒有規則要求使用哪種標記,依據個人的判斷:哪種更便於你畫的類圖。兩種方法都是由一個較小的長方形嵌套在一個大的長方形中開始的,建模者必須決定包的成員如何表示,
1、如果建模者決定在大長方形中顯示軟體包的成員,則所有的那些成員需要被放置在長方形裡面,另外,所有的軟體包的名字需要放在軟體包的較小的長方形之內。
2、如果建模者決定在大的長方形之外顯示軟體包成員,則所有將會在圖上顯示的成員都需要被置於長方形之外,為了顯示屬於軟體包的分類器屬於,從每個分類器畫一條線到裡面有加號的圓周,這些圓周黏附在軟體包之上。
介面
一個類和一個介面不同:一個類可以有它形態的真實執行個體,然而一個介面必須至少有一個類來實現它。在UML2中,一個介面被認為是類建模元素的特殊化。因此,介面就象類那樣繪製。但是長方形頂部地區有“interface”。
介面和具體實作類別之間用一個帶有閉合單向箭頭的實線表示繼承。
關聯類別
在關聯建模中,存在一些情況下,需要包括其它類,因為它包含了關於關聯的有價值的資訊。這種情況下,就會使用關聯類別來綁定你的基本關聯。關聯類別和一般類一樣表示。不同的是,主類和關聯類別之間用一條相對的點線串連。
彙總
彙總是一種特別類型的關聯,用於描述“總體到局部”的關係,在基本的彙總關係中,部分類的生命週期獨立於整體類的生命週期。
1、基本彙總
某個類是另外某個類的一部分。在一個彙總關係中,子類執行個體可以比父類存在更長的時間,為了表現一個彙總關係,畫一條從父類到部分類的實線,並在父類的關聯末端畫一個未埴充的棱形。
2、組合彙總
組合彙總關係是彙總關係的另一種形式,但是子類執行個體的生命週期依賴父類執行個體的生命週期。例如一個company類執行個體至少總有一個department類執行個體。
3、反射關聯
類也可以使用反射擊關聯與它本身相關聯。
可見度
UML識別四種類型的可見度:public, protected,private ,package。
UML支援的可見度類型的標誌
| 標誌 |
可見度類型 |
| + |
Public |
| # |
Protected |
| - |
Private |
| ~ |
Package |
結論
至少存在兩個瞭解類圖的重要理由。第一個是顯示系統分類器的靜態結構;第一個理由是圖為UML描述的其他結構圖提供了基本記號。開發人員將會認為類圖是他們特別建立的;但是其他團隊成員將發現它們也是有用的。
商務分析師可以用類圖,為系統的業務遠景建模。