KerML 1.0b3 FTF Avatar
  1. OMG Issue

KERML_ — Connector ends cannot give smaller lower multiplicity than their association ends

  • Key: KERML_-28
  • Status: open  
  • Source: NIST ( Mr. Conrad Bock)
  • Summary:

    Clause 8.4.4.6.1 (Connectors, Semantics) says (see KERML-34 for term definitions)

    the checkFeatureEndRedefinition constraint requires that the connectorEnds of a Connector redefine the associationEnds of its typing Associations. As a result, a Connector typed by an N-ary Association is essentially required to have the form (with implicit relatiojnships included):

    connector a : A subsets Links::links {
    end feature e1 redefines A::e1 references f1;
    end feature e2 redefines A::e2 references f2;
    ...
    end feature eN redefines A::eN references fN; }
    

    where e1, e2, ..., eN are the names of associationEnds of the Association A, in the order they are defined in A, and the f1, f2, ..., fN are the relatedFeatures of the Connector. Multiplicities declared for connectorEnds have the same special semantics as for associationEnds (see 8.4.4.5).

    while 8.3.3.3.8 (Redefinition), under Description (and similar wording in 7.3.4.5 Redefinition) says

    Redefinition is a kind of Subsetting that requires the redefinedFeature and the redefiningFeature to have the same values (on each instance of the domain of the redefiningFeature). This means any restrictions on the redefiningFeature, such as type or multiplicity, also apply to the redefinedFeature (on each instance of the domain of the redefiningFeature), and vice versa.

    preventing connector ends from giving a smaller lower multiplicity of the corresponding end of their (association) type. For example, people have exactly two parents, but a connector typed by that association might need to specify a [0..2] multiplicity on the parent end to reflect a particular purpose of identifying parents by that connector (such as "lives with").

    This restriction is mentioned informally in Clause 8.4.4.6.2 (Binding Connectors):

    Since both associationEnds of SelfLink have multiplicity 1..1, both connectorEnds of a BindingConnector do also.

    even though some bindings in the libraries have optional connector end multiplicities (see KERML_-13).

  • Reported: KerML 1.0a1 — Sun, 30 Apr 2023 15:41 GMT
  • Updated: Tue, 26 Nov 2024 00:50 GMT