コンポジション

コンポジション(composition)とは、「包含」といっても過言ではないほどに強い結びつきを持ったクラス間の関係を表すものである。

コンポジションは「全体と部分」の関係にあるという説明をされる場合が多く、部分にあたるクラスが複数のクラスと関係を同時的に持つことはない。
また、ほとんどの場合、コンポジション関係にあるオブジェクトの生存期間は一致するのが普通である。
つまり、「全体」側が消滅すれば、「部分」側も消滅するということである。
ただし、UMLでは、破棄される前に「部分」側のインスタンスが別の所有者に関連付けられ、その存在が保持されることが可能であるとしていますが、これは例外的なものである。

一般的にコンポジションは「〜は〜の一部である(... is part of ...)」と解釈される。

コンポジション関係をモデルに示すには、「全体」側のクラスに黒塗りのひし形をつけ、「部分」側のクラスとの間を実線で結ぶ。

誘導可能性を示す矢印は「部分」側のクラスにつけるのが普通であり、多重度を示すことも、もちろん可能である。