MOF 2.4 RTF Avatar
  1. OMG Issue

MOF24 — Invalid restrictions on concrete metaclasses allowed in EMOF and CMOF

  • Key: MOF24-77
  • Legacy Issue Number: 17049
  • Status: closed  
  • Source: NASA ( Nicolas Rouquette)
  • Summary:

    Per UML2.4.1, a

    In 12.4, constraint [8] currently reads:

    An EMOF metamodel is restricted to use the following concrete metaclasses from UML’s Kernel:
    • Class
    • Comment
    • DataType
    • Enumeration
    • EnumerationLiteral
    • Generalization
    • InstanceValue
    • LiteralBoolean
    • LiteralInteger
    • LiteralNull
    • LiteralReal
    • LiteralString
    • LiteralUnlimitedNatural
    • Operation
    • Package
    • Parameter
    • PrimitiveType
    • Property

    The list includes InstanceValue but incorrectly omits InstanceSpecification.

    InstanceSpecification must be included in the list because an InstanceValue requires an InstanceSpecification;
    see UML2.4.1, 7.3.23:

    • instance: InstanceSpecification [1]
    The instance that is the specified value.

    Since the list includes Class and a Class can have Property features, an InstanceSpecification that is the value of an InstanceValue in EMOF may have to specify values for the instantiated Class' Property features. Therefore, the list should also include UML2.4.1's Slot as well.

    The list should be corrected as follows:

    • Class
    • Comment
    • DataType
    • Enumeration
    • EnumerationLiteral
    • Generalization
    • InstanceSpecification
    • InstanceValue
    • LiteralBoolean
    • LiteralInteger
    • LiteralNull
    • LiteralReal
    • LiteralString
    • LiteralUnlimitedNatural
    • Operation
    • Package
    • Parameter
    • PrimitiveType
    • Property

    In 14.4, constraint [10] currently reads:

    A CMOF metamodel is restricted to use the following concrete metaclasses from UML’s Kernel:
    • Association
    • Class
    • Comment
    • Constraint
    • DataType
    • ElementImport
    • Enumeration
    • EnumerationLiteral
    • Generalization
    • InstanceValue
    • LiteralBoolean
    • LiteralInteger
    • LiteralNull
    • LiteralReal
    • LiteralString
    • LiteralUnlimitedNatural
    • OpaqueExpression
    • Operation
    • Package
    • PackageImport
    • PackageMerge
    • Parameter
    • PrimitiveType
    • Property

    The list includes InstanceValue but incorrectly omits InstanceSpecification.

    InstanceSpecification must be included in the list because an InstanceValue requires an InstanceSpecification;
    see UML2.4.1, 7.3.23:

    • instance: InstanceSpecification [1]
    The instance that is the specified value.

    Since the list includes Class and DataType, both of which can have Property features, an InstanceSpecification that is the value of an InstanceValue in CMOF may have to specify values for the instantiated Class' or DataType's Property features. Therefore, the list should also include UML2.4.1's Slot as well.

    The list should be corrected as follows:

    • Association
    • Class
    • Comment
    • Constraint
    • DataType
    • ElementImport
    • Enumeration
    • EnumerationLiteral
    • Generalization
    • InstanceSpecification
    • InstanceValue
    • LiteralBoolean
    • LiteralInteger
    • LiteralNull
    • LiteralReal
    • LiteralString
    • LiteralUnlimitedNatural
    • OpaqueExpression
    • Operation
    • Package
    • PackageImport
    • PackageMerge
    • Parameter
    • PrimitiveType
    • Property
    • Slot

  • Reported: MOF 2.4.1 — Thu, 26 Jan 2012 05:00 GMT
  • Disposition: Resolved — MOF 2.4.2
  • Disposition Summary:

    Accept the proposal

  • Updated: Mon, 20 Apr 2015 17:34 GMT