2011年10月26日

1.4.9-組合關係

寫給SA的UML/MDA實務手冊
----------
第1章-Why系統分析師需要學習UML
1.4-重要的OO及UML概念

1.4.9-組合關係

組合關係(Composition)是一種特殊的聚合關係,所以它繼承了結合關係,以及聚合關係的「整體-部分」(Whole-Part)的特質,還獨有全然擁有Part物件的特質。系統分析師可以透過檢核下列四項要件,判斷是否採用組合關係:

1.在企業領域的專業概念裡,兩種物件之間有一種固定不變且需要保存的靜態關係。(繼承自結合關係的要件)

2.在資訊化時,系統會用到這些靜態關係,而且必須將它們存到資料庫。(繼承自結合關係的要件)

3.在企業領域的專業概念裡,兩種物件之間有Whole-Part的靜態關係。(繼承自聚合關係的要件)

4.Part物件只能連結一個Whole物件,且Whole物件被註銷(Destroy)時,Part物件必須一塊被註銷。(組合關係獨有的要件)

在基金模擬個案中,定期定額申購是很重要的概念。客戶約定了定期定額申購之後,銀行每月就會依照約定自動成立一筆小額的申購交易,而且每期申購的基金單位數都會被累加在一起。特別的是,自動成立的單期交易沒有自己的憑証號碼,而是共有原先定期定額申購約定時的憑証號碼。

請看圖1-11,針對定期定額申購與單期交易之間的組合關係,系統分析師做了如下的思考:

1.定期定額申購與單期交易之間的關係,固定不變且需要被永久保存下來。(符合上述要件1)

2.由於,定期定額申購與單期交易之間的關係需要被保存下來,所以會被存到資料庫裡。(符合上述要件2)

3.客戶約定了定期定額申購之後,每月就會依照約定自動生成一筆小額的申購交易,所有的單期交易都歸屬於同一個定期定額申購交易底下。兩者之間有著Whole-Part的特質,定期定額申購是Whole,單期交易是Part。(符合上述要件3)

4.每一個單期交易物件只能連結一個定期定額申購物件,且定期定額申購物件被註銷時,單期交易物件必須一塊被註銷。(符合上述要件4)

5.每一個定期定額申購底下,可以有零到多個的單期交易。所以,在單期交易端標示(*),代表一個定期定額申購物件可以連結零到多個單期交易物件。

6.每一筆單期交易,只能隸屬於某一個定期定額申購底下。所以,在定期定額申購端標示(1),代表一個單期交易物件只能連結1個定期定額申購物件。


圖1-11: 組合關係

2 則留言:

sam chan 提到...

為何圖裡的 whole 看不出有 part 的蹤跡呢?

Unknown 提到...

菱形端點的類別是whole,另一端則是part。