ドメイン・モデル/合成
合成
概要
合成は、強い形態の集約で「分解の関係」、「全体と部品の関係」を表現します。has-a関係やis-composed-of関係と呼ばれることもあります。
全体と部品の関係を記述するには合成集約(composite aggregation)を用います。SimpleModelingでは単に合成(composite)と呼ぶことにします。
文法
説明
全体と部品の関係はhas-a(is-composed-of)関係と呼ばれますが、UMLでは合成集約(composite aggregation)を用いて表現します。SimpleModelingでは単に合成(composite)と呼ぶことにします。
- WholeはPart1とPart2を持っている。
- WholeはPart1とPart2から構成されている。
SimpleModelingでは、合成は以下のセマンティクスの場合に使用します。
- 全体を削除すると部品も同時に削除される関係
つまり、部品だけ削除したり追加したりすることはできます。
また全体を削除すると部品も削除されること保障するために、部品を他のオブジェクトから参照させることはできるだけ避けるようにします。
全体と部品の関係を記述するために集約(aggregation)を用いることもあります。しかし、集約は通常の関連(association)との違いが分かりづらいので、SimpleModelingでは補助的に用います。