UML 2.4 RTF Avatar
  1. OMG Issue

UML24 — Fix minor inconsistencies between infrastructure specification document & metamodel

  • Key: UML24-116
  • Legacy Issue Number: 15778
  • Status: closed  
  • Source: Model Driven Solutions ( Mr. Steve Cook)
  • Summary:

    Description: To ensure that the UML2.4 metamodel is consistent with the specification document, the following inconsistencies must be resolved:

    1) NamedElement::qualifiedName()

    InfrastructureLibrary::Core::Abstractions::Namespaces::NamedElement::qualifiedName()

    ? this corresponds to 9.14.1 constraint [2] – OK

    InfrastructureLibrary::Core::Constructs::NamedElement::qualifiedName()

    ? no description of this in clause 11 for Core::Constructs – OK per current conventions that clause 11 does not duplicate the constraints/operations from the merged increments shown in 11.2

    For the superstructure:

    ? the description in super 7.3.34 constraint [2] is copied from 9.14.1 constraint [2] ? OK

    ? UML::Classes::Kernel::NamedElement::qualifiedName() is missing ? not OK per current conventionss that Kernel in the superstructure has all of the elements corresponding to the resulting merge of Core::Constructs and what it merges per infra figure 11.2

    Resolution:

    In the metamodel add qualifiedName() to UML::Classes::Kernel::NamedElement with the same definition as in InfrastructureLibrary::Core::Constructs::NamedElement::qualifiedName()

    2) DataType::inherit()

    ? No description anywhere of InfrastructureLibrary::Core::Constructs::DataType::inherit() in infra 11.6.1 or super 7.3.11

    ? UML::Classes::Kernel::DataType::inherit() is missing ? not OKK per current conventions that Kernel in the superstructure has all of the elements corresponding to the resulting merge of Core::Constructs and what it merges per infra figure 11.2

    Resolution:

    1.a) figure 11.2 is only in the document, the package merge relationships are not in the infrastructure at all.

    ? add the relationships as described in infra 11.2

    ? add a package merge relationship from Core::Constructs to Core::Abstractions::Element, which other merge increments in Core::Abstractions import.

    2) DataType::inherit()

    In the metamodel, copy InfrastructureLibrary::Core::Constructs::DataType::inherit() into UML::Classes::Kernel::DataType::inherit()

    In Infrastructure 11.6.2 and Superstructure 7.3.11, add the following section:

    Additional Operations

    [1] The inherit operation is overridden to exclude redefined properties.

    DataType::inherit(inhs: Set(NamedElement)) : Set(NamedElement);

    inherit = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))>select(redefinedElement>includes(inh)))

  • Reported: UML 2.3 — Mon, 25 Oct 2010 04:00 GMT
  • Disposition: Resolved — UML 2.4
  • Disposition Summary:

    The issue summary is a bit garbled, but here is a summary of what it proposes, in order to make the metamodel and specification document consistent.
    In the metamodel add qualifiedName() to UML::Classes::Kernel::NamedElement with the same definition as in InfrastructureLibrary::Core::Constructs::NamedElement::qualifiedName()
    In the metamodel change infrastructure figure 11.2 so that Constructs does not merge Basic, and instead Constructs does merge Core::Abstractions::Elements. The merge to Basic is conceptually flawed because Basic has a different and conflicting definition and semantics for Operation.
    Note that these merges remain purely conceptual – they are not explicit in the metamodel.
    In the metamodel, delete the association Core::Abstractions::BehavioralFeatures::A_parameter::behavioralFeature, because if this association was actually merged according to figure 11.2 it would be an orphaned derived union, with no subsets in the metamodel.
    In the metamodel, copy InfrastructureLibrary::Core::Constructs::DataType::inherit() into UML::Classes::Kernel::DataType::inherit()
    In Infrastructure 11.6.1 and Superstructure 7.3.11, add the following section:
    Additional Operations
    [1] The inherit operation is overridden to exclude redefined properties.
    DataType::inherit(inhs: Set(NamedElement)) : Set(NamedElement);
    inherit = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))>select(redefinedElement>includes(inh)))

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