UML 類別圖表中的關聯性屬性
在 Visual Studio Ultimate 的 UML 類別圖表中,您可以在任何型別配對之間繪製「關聯」(Association)。 型別是一種類別、介面或列舉。
關聯會指出,您開發的系統在關聯的型別執行個體之間儲存某些類型的連結。 一般而言,它並不表示有關連結的實作內容。 例如,關聯可以是指標、資料表中的資料列、XML 中交互參考的名稱等。
關聯是顯示屬性或屬性配對的圖表方式。 例如,如果您定義了「餐廳」類別以包含「菜單」型別的屬性,就可以在「餐廳」和「菜單」之間繪製關聯來陳述相同的定義。
若要繪製關聯,請按一下工具箱中的 [關聯],並按一下第一個型別,然後按一下第二個。 您可以按一下相同的型別兩次,顯示執行個體可以與相同型別的其他執行個體連結。
屬性
以下是 UML 類別圖表上關聯的屬性。
若要查看關聯的屬性,請以滑鼠右鍵按一下關聯,然後按一下 [屬性]。 屬性將出現在 [屬性] 視窗中。
圖表上還可看見一些屬性,如下圖所示。
屬性 |
說明 |
---|---|
Name (1) |
可識別關聯。 同樣會出現在圖表上接近關聯中點的位置。 |
Qualified Name |
會以唯一的方式識別關聯。 以包含關聯的第一個角色的封裝限定名稱當做前置詞。 |
Work Items |
連結到此關聯的工作項目數。 若要連結工作項目,請參閱 HOW TO:從模型項目連結至工作項目。 |
Color |
接點的色彩。 有別於其他屬性,這是此關聯檢視的屬性,不是模型中基礎關聯性的屬性。 |
First Role Second Role |
關聯的各端稱為角色 (Role)。 每個角色會說明位於關聯相對端的類別上,對等屬性 (Attribute) 的屬性 (Property)。 在範例圖表中,「菜單」和「菜單項目」之間的關聯擁有稱為「菜單」和「內容」的角色。 「內容」是「菜單」類別上的屬性名稱。 |
每個角色的屬性
若要查看每個角色的屬性,請展開 [第一個角色] 或 [第二個角色] 屬性。
屬性 |
預設 |
說明 |
---|---|---|
Role Name (2) |
此角色的型別名稱 |
角色的名稱。 會出現在圖表上接近關聯結尾的位置。 |
Aggregation |
無 |
None (4) - 代表類別的執行個體之間的一般關聯性。 Composite (5) - 此角色的物件包含相對角色的物件。 您可以使用 [Composite] 工具建立與 Composite 彙總的關聯。 Shared (6) - 此角色的物件包含另一角色的物件參考。 您可以使用 [Aggregation] 工具建立與 Shared 彙總的關聯。 確切的解譯則視區域慣例而定。 |
Is Derived |
False |
如果為 true,則位於連結此端的物件是從其他屬性和關聯計算而得。 例如,MyWorkPlace 是從 MyEmployer.WorkPlace 計算而得。 詳細資料應輸入 [說明] 或附加的 [註解] 中。 |
Is Derived Union |
False |
如果為 true,則此角色是衍生型別中角色集的聯集。 |
Is Navigable |
True |
關聯可以在此方向讀取。 即使有相對角色的執行個體,您說明的軟體仍然可以有效判斷此角色中相關聯的執行個體。 如果一個角色是 Navigable,另一個角色不是,則在可巡覽方向的關聯上會出現 (7) 箭號。 根據預設,關聯工具會建立可在某一方向巡覽的關聯。 若要將它轉換成雙向關聯,可以選取關聯,按一下出現的動作標籤,然後按一下 [設成雙向]。 |
Is Read Only |
False |
如果為 true,則關聯的執行個體無法在建立之後變更。 連結會固定連接相同的物件。 |
Multiplicity (3) |
1 |
1 - 關聯的這一端固定連結到一個物件。 在圖中,每一個「菜單項目」都有一個「菜單」。 0..1 - 不是關聯的這一端連結到一個物件,就是沒有連結。 * - 關聯另一端的每個物件都會連結到這一端的物件集合,且集合可以是空的。 1..* - 關聯另一端的每個物件都會至少連結到這一端的一個物件。 在圖中,每一個「菜單」至少有一個「菜單項目」。 n..m - 另一端的每個物件具有內含 n 到 m 個連向這一端物件之連結的集合。 |
Is Ordered |
False |
如果為 true,則傳回的集合會構成循序清單。 用於 Multiplicity 大於 1 的情況。 |
Is Unique |
False |
如果為 true,則傳回的集合中沒有重複值。 用於 Multiplicity 大於 1 的情況。 |
Visibility |
Public |
Public - 全域可見 Private - 擁有者型別之外不可見 Protected - 對衍生自擁有者的型別可見 Package - 對同一封裝中的其他型別可見 |