UML 2.5 FTF Avatar
  1. OMG Issue

UML25 — Section 11: feature inheritance should be orthogonal to the topology of well-formed connections in a structured classifi

  • Key: UML25-470
  • Legacy Issue Number: 18171
  • Status: closed  
  • Source: NASA ( Dr. Nicolas F. Rouquette)
  • Summary:

    Title: UML2.5, section 11: feature inheritance (of attribute properties,
    ports and connectors) should be orthogonal to the topology of well-formed
    connections in a structured classifier

    Summary:

    SysML uses extensively UML's StructuredClassifiers.
    In UML 2.4.1, the well-formedness constraints for UML's
    StructuredClassifiers were written in English only.
    In UML 2.5, the well-formedness constraints have both English descriptions
    and OCL specifications.

    Unfortunately, the UML 2.5 OCL specifications for the well-formedness of
    UML's StructuredClassifiers are too restrictive for SysML in 3 areas:

    1) StructuredClassifier::/role is a derived union that is subsetted only
    once by StructuredClassifier::ownedAttribute.

    This means that inherited attributes of a StructuredClassifier are not
    considered to be roles of that StructuredClassifier.

    2) StructuredClassifier::/part is derived and the derivation is:
    ownedAttribute->select(isComposite)

    This means that inherited attributes of a StructuredClassifier are not
    considered to be parts of that StructuredClassifier.

    3) Connector has a constraint, roles, stated as follows:

    The ConnectableElements attached as roles to each ConnectorEnd owned by a
    Connector must be roles of the Classifier that owned the Connector, or
    they must be Ports of such roles.

    inv: structuredClassifier <> null
    and
    end->forAll( e |
    structuredClassifier.role->includes(e.role)
    or
    e.role.oclIsKindOf(Port) and
    structuredClassifier.role->includes(e.partWithPort))

    There is a significant conceptual asymmetry between the two disjuncts of
    the forAll() clause.

    The first disjunct is: structuredClassifier.role->includes(e.role)

    This restricts the ConnectableElement to be a role of the
    StructuredClassifier owning the Connector; that is, the ConnectableElement
    must be an ownedAttribute of that StructuredClassifier.

    The second disjunct is: e.role.oclIsKindOf(Port) and
    structuredClassifier.role->includes(e.partWithPort)

    This also restricts the ConnectableElement::partWithPort to be a role of
    the StructuredClassifier owning the Connector; however, the
    ConnectableElement Port may be inherited!
    (see ConnectorEnd::role_and_part_with_port)

    The conceptual asymmetry is that it is OK to connect inherited ports of
    owned attributes but it is not OK to connect inherited attributes.

    >From a conceptual point of view, UML 2.5 does not provide a rationale for
    restricting the connectivity of UML StructuredClassifiers to owned
    attributes only.
    >From a conceptual point of view, feature inheritance (I.e., of attribute
    properties and of connectors) should be orthogonal to the topology of
    connections in a StructuredClassifier.

  • Reported: UML 2.4.1 — Thu, 11 Oct 2012 04:00 GMT
  • Disposition: Resolved — UML 2.5
  • Disposition Summary:

    Merged with 18697

  • Updated: Fri, 6 Mar 2015 20:59 GMT