合成関係
|
用語 |
合成関係 |
|
用語(英) |
Composition |
|
別名 |
- |
識別情報
-
Term ID:
src/main/doxsite/glossary/object-foundation/composition.dox -
English label: Composition
-
Japanese label: 合成関係
-
Japanese short label: 合成
-
Scope qualifier: Object Foundation / whole-part relationship
-
Bare-label linking: explicit-only
-
Category: Object Foundation
-
Status: normative
-
Definition authority: SimpleModeling BoK, aligned with UML 2.5.1
定義
合成関係(Composition)とは、全体が部分に対する構造上の所有を担う強い全体部分関係です。部分は同時に高々一つの合成された全体に属し、その存在、ライフサイクル、および不変条件は全体の境界と整合して管理されます。
UML
UML 2.5.1では、合成関係はAssociation EndのAggregation Kindを composite とする二項の関連です。合成するオブジェクトは部分の存在と保管に責任を持ち、部分側の上限多重度は一です。SimpleModelingはこの意味を採用し、ドメイン上のライフサイクルと不変条件の境界を判断するために用います。
CML
CML(Cozy Modeling Language)では、関連を合成関係として明示して記述できます。永続化時の同時保存、フィールドの包含、または画面上の親子表示だけから合成関係を推論しません。
simplemodeling-lib
simplemodeling-libのCollection、Group、Schemaなどは合成された構造の実現に利用できますが、それらの型を使用したことだけでドメイン上の合成関係が成立するわけではありません。
公開成果物での用法
日本語の記事と動画では、初出を「合成関係(Composition)」とし、同じ全体部分関係を扱う文脈が続く場合だけ「合成」と短縮します。通常の日本語や関数型プログラミングにおける「合成」は、この用語へ自動リンクしません。
境界
-
合成関係は関連(Association)一般と同義ではありません。
-
同時保存、画面の親子関係、フィールド参照だけでは合成関係になりません。
-
多重度(Multiplicity)は合成関係の個数制約を表せますが、それ自体は構造上の所有を意味しません。
-
関数合成や集約関係(Aggregation)とは異なる概念です。