KerML 1.0b4 FTF Avatar
  1. OMG Issue

KERML_ — Redundancy in association end multiplicities, ordering, and uniqueness

  • 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_-16 about 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_-12 End feature multiplicity textual notation
    • KERML_-13 Some bindings have optional connector end multiplicities
    • KERML_-16 Association participant features, misleading term and textual keyword
    • KERML_-17 Number of association end feature values, semantics
    • KERML_-19 Context-dependent meanings for feature multiplicity, ordering, and uniqueness
    • KERML_-20 Nary association end multiplicity, semantics
    • KERML_-21 Association end features are not necessarily consistent with corresponding features of associated classifiers
    • KERML_-28 Connector ends cannot give smaller lower multiplicity than their association ends
    • KERML_-42 Association end feature description missing simple example and equivalence to related types
  • Updated: Sat, 19 Jul 2025 18:58 GMT
  • Attachments: