類別圖

维基百科,自由的百科全书
跳转至: 导航搜索
UML 2.0 Diagrams

類別圖是軟件工程的統一建模語言(UML)一種靜態結構圖,該圖描述了系統的類別集合,類別的屬性和類別之間的關係。

概述[编辑]

類別圖是物件導向式的建模。他們一般都被用於概念建模(conceptual modelling)的系統分類的應用程序,並可將模型建模轉譯成程式碼。

一個類別有三個區域
  • 最上面是類別名稱
  • 中間部分包含類別的屬性
  • 底部部分包含類別的方法

為了進一步描述系統的行為,這些類圖可以輔之以狀態圖或UML狀態機。

成員[编辑]

UML提供機制,以代表類的成員,如屬性和方法,對他們的其他信息。

指定一個類成員的可見性(即任何屬性或方法)有下列符號,必須擺在各成員的名字之前。

+         公共
-         私有
#         受保护
~         包
/         继承
下划线     静态

關係[编辑]

實例層級的關係[编辑]

外部鏈接[编辑]

外部鏈接(External links)是物件之間的基本關係。

關聯[编辑]

人與雜誌是一種關聯

一個關聯(Association)代表一個家族的聯繫。

關聯可以命名,並結束一個關聯可以飾以角色名稱,所有權指標,多重性,可視性,以及其他屬性。目前定義有五種不同類型的關聯。雙向(Bi-directional)和單向(uni-directional)的關聯是最常見的。

Class diagram showing Aggregation between two classes

聚合[编辑]

聚合(Aggregate)是表示整体与部分的一类关联關係,是“弱”的包含(has a)关系,成分類別可以不依靠聚合類別而单独存在。例如,池塘与(池塘中的)鸭子。再例如教授課程就是一種聚合關係。聚集可能不涉及兩個以上的類別。圖形以空心的菱形与实线来表示。

// Aggregation
class Pond
{
private:
   std::vector<Duck*> ducks;
};

組成[编辑]

组成(Composition)關係,是一类“强”的整体与部分的包含关系。成分類別必須依靠合成類別而存在。合成类别完全拥有成分类别,负责创建、销毁成分类别。例如汽车与化油器,又例如公司与公司部门就是一種組成關係。圖形以實心的菱形与实线表示。

// Composition
class Car
{
private:
 
    // Car is the owner of carburetor.
    // Carburetor is created when Car is created,
    // it is destroyed when Car is destroyed.
    Carburetor carb;
 
};

关联、組成和聚集之差異[编辑]

当一个类作为另一个类某个方法的参数时,为关联。[1]

两者的差别主要描述了子类的生命周期的不同。组合关系中,一旦父类被销毁子类也会随之销毁;聚合关系中,子类的生命周期与父类独立。[2]例如,一个大学包含若干个系(如化学系),每个系由若干名教授。如果大学撤销,这些系也就不复存在了,但这些教授仍会继续存在。还需注意,一名教授可以在不同系甚至不同学校兼职,而一个系不能属于两所大学。所以,大学与系之间是组成关系,而系与教授是聚合关系。 Aggregation-Composition3.png

類別層級的關係[编辑]

概括[编辑]

概括(Generalization),是指類別與類別之間的共通性,通常會具有繼承(inherit)的關係。圖形以實線和空心箭頭來表示。

實現[编辑]

UML建模時,一個實現(realization)關係是兩個模型元素之間的關係,其中一個模型元素(客戶端)實現的行為,其他模型元素(供應商)指定。圖形以實線和實心箭頭來表示。

一般關係[编辑]

依賴[编辑]

"Car" 與 "Wheel" 是一種弱化的依賴

依賴(Dependency)是一種弱化形式的關係,表示一類別依賴於另外的類別,因為類別在某個時間點使用另一個類別。

多重[编辑]

關聯多重性(Multiplicity)是用來定義參與物件數量,每個參與類別都必須指定多重性值,例如class A會有多少個instance與class B的多少個instance關連在一起,在現實生活中,一個汽車駕駛與汽車個數就是多重關係,可以是一對多,或是多對多。

参考文献[编辑]

  1. ^ UML中关联,聚合,组合的区别. [2012-02-20]. 
  2. ^ UML 基础: 类图. [2012-02-20]. 

外部連結[编辑]

統一建模語言 (UML) ( · · )
背景

機構Object Management Group (OMG) • UML Partners
個人Grady Booch • Ivar Jacobson • James Rumbaugh 

概念

物件導向: 物件導向的程式設計 

結構: 執行者 • 屬性 •  • 元件 • 接口 • 對象 •  

行為: 活動 • 事件 • 訊息 • 方法 • 操作 • 狀態 • 用例 

關係: 聚合 • 關聯 • 組合 • 相依 • 廣義化 (or 繼承

其他概念: 構造型 • 多重性 • 角色 

結構圖
類別圖 • 元件圖 • 複合結構圖 • 部署圖 • 物件圖 • 包圖 

行為圖
活動圖 • 狀態機圖 • 使用個案圖 • 通信圖 • 交互概述圖 • 循序圖 • 時間圖 

主題

關聯式資料庫模型(ERD)比較 • 統一塑模語言術語彙表 • 系統塑模語言(SysML) • UML色碼:

角色 時機,間隔
描述 哪一方,地點,事件
工具

UML工具 • Rational 統一過程