UML 2.3 RTF Avatar
  1. OMG Issue

UML23 — Setting Classes-Interfaces-Interface-ownedAttribute would fail to populate Classes-Kernel-Property-owner

  • Key: UML23-95
  • Legacy Issue Number: 14235
  • Status: closed  
  • Source: The MathWorks ( Mr. Salman Qadri)
  • Summary:

    In Superstructure.xmi (2.3):

    Classes-Interfaces-Interface-ownedAttribute has a one-directional association to Classes-Kernel-Property and subsets Classes-Kernel-Namespace-ownedMember. Adding an instance of a merged Property to Interface-ownedAttribute would fail to populate the ‘owner’ or ‘namespace’ attributes of the Property (because the only slots are ‘class’ and ‘datatype’).

    This is inconsistent in 2 ways:

    1) The merged Property has the slots ‘class’ and ‘datatype’, but there is no slot for ‘interface’.

    2) Compare this to a merged Operation, which has ‘class’, ‘datatype’ as well as ‘interface’ (from Classes-Interfaces-Operation-interface). Also, Classes-Interfaces-Interface-ownedOperation has a bidirectional association with Classes-Interfaces-Operation-interface, which also feels at odds with Classes-Interfaces-Interface-ownedAttribute.

    3) Since Classes-Interfaces-Interface-ownedAttribute explicitly subsets ‘Classes-Kernel-Namespace-ownedMember’, we would expect that the association to ‘Classes-Kernel-NamedElement-namespace’ should produce a result. However since ‘namespace’ is a derived-union with no slots that accept an ‘Interface’, this remains empty (and consequently so does ‘owner’ even though the Property IS being owned by an Interface).

    I would like to suggest the following:

    1) Add a cmof:Class ‘Classes-Interfaces-Property’ to the package ‘Classes-Interfaces’ as an ‘ownedMember’ and change the ‘type’ of ‘Classes-Interfaces-Interface-ownedAttribute’ to ‘Classes-Interfaces-Property’.

    2) Add a cmof:Property ‘Classes-Interfaces-Property-interface’ as an ‘ownedAttribute’ of ‘Classes-Interfaces-Property’. This attribute should be 0..1 with the type ‘Classes-Interfaces-Interface’ and should subset ‘Classes-Kernel-RedefinableElement’, ‘Classes-Kernel-Feature-featuringClassifier’ and ‘Classes-Kernel-NamedElement-namespace’. Its’ association should be ‘Classes-Interfaces-A_interface_ownedAttribute’.

    3) Modify ‘Classes-Interfaces-A_interface_ownedAttribute’ to have the member ends be ‘Classes-Interfaces-Property-interface’ and ‘Classes-Interfaces-Interface-ownedAttribute’.

  • Reported: UML 2.2 — Fri, 28 Aug 2009 04:00 GMT
  • Disposition: Resolved — UML 2.3
  • Disposition Summary:

    This inconsistency issue is substantiated as explained; the suggestion amounts to repairing Classes::Interfaces as a package merge extension of Classes::Kernel. In fact, the "copy-down" suggested in item (2) is implicitly shown in the fact that 'Property' like all of the other metaclasses defined in the Classes::Interfaces package are unqualified whereas the other metaclasses defined but not copied in this package are fully qualified.

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