Composition

Term

Composition

Aliases

-

Identity

  • 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

DEFINITION

Composition is a strong whole-part Relationship in which the Whole has Structural Ownership of the Part. A Part belongs to at most one composite Whole at a time, and its existence, Lifecycle, and Invariants are managed consistently with the boundary of the Whole.

UML

In UML 2.5.1, Composition is a binary Association whose Association End has the Aggregation Kind composite . The composite Object is responsible for the existence and storage of its Parts, and the upper Multiplicity at the composite end is one. SimpleModeling adopts this meaning and uses it to determine domain Lifecycle and Invariant boundaries.

Common Usage

Ordinary composition, function composition, and visual or audio compositing are not the whole-part Relationship defined by this term. Composition is also distinct from Aggregation, which may represent a shared Part.

Object-Functional Paradigm

Composition establishes a Lifecycle and Invariant boundary on the Object side. It is distinct from function composition on the Functional side, and the shared short label does not make the concepts identical.

CML

CML (Cozy Modeling Language) can explicitly describe an Association as Composition. Composition is not inferred merely from shared persistence, field containment, or parent-child presentation.

Scala

Scala has no language construct that maps one-to-one to Composition. Fields, case classes, collections, and nested Types may help realize it, but do not by themselves express Structural Ownership.

simplemodeling-lib

Collections, Groups, Schemas, and related simplemodeling-lib constructs may realize a composite structure, but using those Types alone does not establish domain Composition.

Public Usage

Japanese articles and videos use 合成関係(Composition) at first occurrence and shorten it to 合成 only while the same whole-part context remains established. Ordinary Japanese usage and functional-programming uses of 合成 are not automatically linked to this term.

Boundary

  • Composition is not synonymous with Association in general.

  • Shared persistence, parent-child presentation, or a field reference alone does not establish Composition.

  • Multiplicity may constrain a Composition, but does not itself imply Structural Ownership.

  • Composition is distinct from function composition and Aggregation.

  • Structural Ownership

  • Association

  • Aggregation

  • Relationship

  • Lifecycle

  • Invariant

  • Multiplicity

References