Legacy Issue Number: 14115
Source: NASA ( Maged Elaasar)
"Currently in the metamodel:
1- InternalStructures::StructuredClassifier specialize Kernel::Classifier and InternalStructures::StructuredClassifier::ownedAttribute subsets Kernel::Classifier::attribute
2- InternalStructures::Classifier and its "attribute" association are there but not referenced any where else.
A question: is the subsetting in 1 valid?
The answer appears at least to me as "No". The type of the InternalStructures::StructuredClassifier::ownedAttribute is InternalStructures::Property, and the type of Kernel::Classifier::attribute is Kernel::Property, and there is no generalization between the two types. That is probably why the Classifier merge increment was introduced in InternalStructures, to make "attribute" of compatible type to "ownedAttribute", but it was never reflected in the metamodel.
So to make things consistent, as Nic said, we should:
- Make InternalStructures::StructuredClassifier specialize InternalStructures::Classifier instead of Kernel::Classifier
- Make InternalStructures::StructuredClassifier::ownedAttribute subset InternalStructures::Classifier::attribute instead of Kernel::Classifier::attribute.
- don't we need to change 9.3.2 to indicate that Classifier comes from both Collaboration and InternalStructures?
- Ironically, the "generalization" section in 9.3.2. says that Collaborations::Classifier specialize Kernel::Classifier (as seen in Figure 9.2 "Internal Structures"), where it is supposed to be as given in Figure 9.7 "Collaboration".
- So to document "Classifier" property in 9.3.2, there would be two generalization headings one "Package InternalStructure" and "Package Collaborations" with different content. "
Reported: UML 2.2 — Mon, 27 Jul 2009 04:00 GMT
Disposition: Resolved — UML 2.3
For chapter 8, this resolution incorporates part of the resolution from the accepted resolution 7364, but modifies it in order to copy down the merged class and features required for the OCL constraint to parse in the context of the receiving package.
For chapter 9, it sorts out InternalStructures::Classifier, which was introduced according to this "copy down" principle, but is not documented properly. Also Collaborations::Classifier inherits more than is necessary, so to simplify the overall documentation of Classifier in chapter 9, we can make both InternalStructures::Classifier and Collaborations::Classifier just specialize Kernel::Namespace.
Updated: Fri, 6 Mar 2015 20:58 GMT