2013年2月25日 星期一

UML-類別圖

UML-類別圖

[OO 小學堂] UML 類別圖介紹


關聯 : (Association) 

在一個類別和另一個類別之間拉出連接線、並在上方標示關聯詞(動詞)、二端視需求可標示參與數目和介面名稱,表示二個類別之間的關聯。例如,一或多個「數字」「標記」一種「物品」。參與數目(multiplicity or cardinality)可能標示為數字、表示多項的代用符號(*) 、或是像 "0..1" 的數字區段。可以在關聯詞旁邊以實心三角形標示方向。






彙總 : (Aggregation) 『生死有命diamond表示whole,箭頭表示part

在連接線的一端加上空心菱形,表示一項類別(菱形端)對另一項類別有「整體與部份」的關聯。彙總的意思是 has-a ,通常是強調一項類別(菱形端)的包含了另一項類別的集合:例如,Man 有 身分證, 健保卡...等 (IDCard)。





組合 : (Composition) 『同生共死diamond表示whole,箭頭表示part

在連接線的一端加上實心菱形,表示一項類別(菱形端)除了對另一項類別有「整體與部份」的關聯之外、而且是由另一項類別組成。組合的關聯力比彙總強,Composition表示法與Aggregation的差異在於變成實diamond,其他完全一樣,跟Aggregation在意義的差異在於Composition強調『同生共死』, 以下圖來解釋, 當System物件死亡時,Component物件也要跟著死亡,但aggregation是『生死有命』,當System物件死亡時,Component物件並不特別去處理。






一般化/特殊化 : (Generalization/specialization) 

在連接線的一端加上空心三角形,表示一項類別(三角形端)是另一項類別的一般樣式;相對地,另一項類別是該類別的特殊樣式。一般化的意思是 is-a ,也是繼承的關係:例如,Bus 是一種車子。Bus 和 Taxi 是 Car 的子型(subtype),而Car 是母型(supertype) 。
可注意,一般化也可以用在使用案例圖,用來處理案例或參與者的從屬層次。





實現 : (Realization) 

用帶箭頭的虛線從一項類別拉到另一項類別、並在上方標示用雙角括號 « » 包含的關聯詞(動詞),表示一項類別實現了另一項類別的行為:例如,工程師與經理等角色都需要吃飯, 走路 etc . 故在 IPeople 的介面定義了所有Human being 都會有的行為。






依賴 : (Dependency) 

從一項類別拉出一條帶箭頭的虛線到另一項類別、不帶標示文字,表示一項類別依賴另一項類別提供的功能。

沒有留言:

張貼留言