-
Key: KERML_-18
-
Status: closed
-
Source: NIST ( Mr. Conrad Bock)
-
Summary:
KerML association end textual notation/abstract syntax give multiplicity, ordering, and uniqueness that can be redundantly stated on the corresponding features of associated classifiers (association ends in SysML1.x/UML sense, see
KERML_-16about terms), eg, in Occurrences:Occurrence::suboccurrences [1..*] {...} HappensDuring {end shorterOccurrence [1..*] subsets longerOccurrence.suboccurrences;}
making it possible for multiplicities, ordering, and uniqueness to get out synch between the features, and potentially be inconsistent. See kerml-assoc-redundancy-issue-description-v2.pdf slides attached.
-
Reported: KerML 1.0a1 — Wed, 26 Apr 2023 14:35 GMT
-
Disposition: Resolved — KerML 1.0b4
-
Disposition Summary:
Cross features owned by end features or their types
The proposed resolution introduces the concept of a cross feature of an end feature, which is specified using a new cross subsetting relationship between an end feature and its cross feature. The cross multiplicity of an end feature refers to the multiplicity of its cross feature, rather than the multiplicity of the end feature itself, which is always 1..1. The cross ordering and uniqueness of end features similarly refer to those of their cross feature.
The definition of HappensDuring from the Occurrences library cited in in the issue is revised as follows:
class Occurrence { ... feature timeEnclosedOccurrences : Occurrence [1..*]; ... } assoc HappensDuring { end feature shorterOccurrence: Occurrence[1..1] crosses longerOccurrence.timeEnclosedOccurrences; end feature longerOccurrence: Occurrence[1..1]; }
Cross subsetting is identified by the crosses keyword. In this example, the multiplicity of shorterOccurrence is 1..1, while it's cross multiplicity 1..* is the multiplicity of its cross feature timeEnclosedOccurrences. That is, any instance of HappensDuring links exactly one shorterOccurrence to exactly one longerOccurrence (end multiplicity), while every Occurrence must be the longerOccurrence of one or more links (cross multiplicity).
The proposal also allows an end to alternatively have an owned cross feature for which the cross subsetting is implied. The cross multiplicity, ordering and non-uniqueness can then be declared directly on an end feature, with a notation that makes it clear that these are properties of the cross feature, not the end feature itself:
assoc HappensDuring1 { end [1..*] ordered nonunique feature shorterOccurrence: Occurrence[1..1]; end feature longerOccurrence: Occurrence[1..1]; }
If no cross feature is given for an end, then its cross multiplicity is effectively 0..* by default.
By separating cross multiplicity from end multiplicity, this approach also removes the "special semantics" for end feature multiplicity by applying the same core multiplicity, uniqueness, and ordering semantics to both cross and end features. A pattern of implied relationships for the owned cross features of the ends of n-ary associations and connectors formalizes the semantics of cross multiplicity, uniqueness and ordering in those cases, too.
These proposed changes essentially restore distinctions available in SysML v1, but in a semantically cleaner way. The terminology is somewhat different, though.
- An end feature corresponds to a "participant property" in SysML v1, representing the participants in the links that are instances of an association. As for a participant property, an association end feature is always owned by its association. (Participant properties were introduced in SysML v1 and are not available in UML itself.)
- A cross feature corresponds to an "association end property" in UML (and SysML v1), in that the multiplicity, ordering and uniqueness of a UML association end semantically apply to "crossing" or "navigating" the association, rather than to the values of the property itself.
- An owned cross feature corresponds to an association end in UML that is owned by the association, rather than by the opposite related type.
This resolution also resolves the following related issues:
KERML_-12End feature multiplicity textual notationKERML_-13Some bindings have optional connector end multiplicitiesKERML_-16Association participant features, misleading term and textual keywordKERML_-17Number of association end feature values, semanticsKERML_-19Context-dependent meanings for feature multiplicity, ordering, and uniquenessKERML_-20Nary association end multiplicity, semanticsKERML_-21Association end features are not necessarily consistent with corresponding features of associated classifiersKERML_-28Connector ends cannot give smaller lower multiplicity than their association endsKERML_-42Association end feature description missing simple example and equivalence to related types
-
Updated: Sat, 19 Jul 2025 18:58 GMT
-
Attachments:
- CartesianMultiplying.svg 198 kB (image/svg+xml)
- CrossMultiplying.svg 190 kB (image/svg+xml)
- CrossSubsetting.svg 179 kB (image/svg+xml)
- kerml-assoc-redundancy-issue-description-v2.pdf 185 kB (application/pdf)
- kerml-assoc-redundancy-issue-description.pdf 164 kB (application/pdf)
- type-math-cartesian-product-1.png 23 kB (image/png)
KERML_ — Redundancy in association end multiplicities, ordering, and uniqueness
- Key: KERML_-18
- OMG Task Force: Kernel Modeling Language (KerML) 1.0 FTF 2