集約と合成
2003年5月17日
UMLで多くの議論を生んでいるものには、集約と合成、特にこれらが通常の関連とはどのように異なるかが挙げられます。
経緯が複雑になっています。UML以前の手法では、パートホール関係の一部の形を定義するという共通の考え方がありました。問題は、それぞれの手法がこれらの関係に対して異なる意味論を定義していたことです(そのうちのいくつかは非常に意味論が自由であることを認めなければなりませんが)。
そのため、標準化の時期が来たとき、多くの人がパートホール関係を必要としましたが、その意味について合意を得ることができませんでした。そこでUMLの定義者は2つの関係を紹介しました。
集約(白いダイヤモンド)は通常の関連を超えた意味論を持っていません。ジム・ランボーが言うように、それはモデリングのプラセボです。人々はそれを使用していますが、それには標準的な意味はありません。したがって、それを見たら、著者がそれに関して何を意味するのかを調べる必要があります。何らかの形の説明なしに自分で使用しないことをお勧めします。
合成(黒いダイヤモンド)には意味論があります。最も具体的なことは、オブジェクトは1つの合成関係の一部にしかできないことです。したがって、ウィンドウとパネルの両方でメニューバーを保持できる場合でも、メニューバーのインスタンスは1つの全体によってのみ保持する必要があります。これは、通常の多重度マーカーで簡単に表現できる制約ではありません。