Contents > C: List of Design Rules > C.8 Association Rules

C.8 Association Rules

Rule: AggEndsCategory: Correctness
Severity: 1-highApplies to: all areas
The binary association has two composite or shared aggregation ends.

A binary association may have at most one shared (hollow diamond) or composite (filled diamond) aggregation end. This is a WFR of the UML.


Rule: NaryAggEndsCategory: Correctness
Severity: 1-highApplies to: all areas
The n-ary association has a composite or shared aggregation end.

Three (or more)- way associations must not indicate shared or composite aggregation.

  • This is a WFR of the UML.
  • Value returned: the number of shared/composite aggregation ends.


Rule: NaryNavEndsCategory: Correctness
Severity: 1-highApplies to: all areas
The n-ary association indicates a navigable association end.

Three (or more)- way associations must not indicate navigability at any of the association ends.

  • This is a WFR of the UML.
  • Value returned: the number of navigable association ends.


Rule: LooseEndCategory: Completeness
Severity: 1-highApplies to: all areas
The association has one or more ends not connected to a model element.

Check the ends of the association, and attach the loose end(s) to the proper model element(s), or remove the association from the model.


Rule: NaryAggCategory: Style
Severity: 3-lowApplies to: design
The association has three or more association ends.

People are often confused by the semantics of n-ary associations. N-ary associations have no representation in common programming languages. The suggestion is therefore to remodel the n-ary association using several plain associations.


Rule: SpecAggCategory: Style
Severity: 3-lowApplies to: all areas
The association is a specialization of another association.

People are often confused by the semantics of specialized associations. The suggestion is therefore to model any restrictions on the parent association using constraints.

  • Suggested in [Oes04].
  • Value returned: name of the parent association.