Issue 4735: UML 1.4: Node, Artifact, Package and Model contents problem (uml2-superstructure-ftf) Source: (, ) Nature: Uncategorized Issue Severity: Summary: According to the UML 1.4 standard, the abstract metaclass Namespace compositely contains any type of ModelElement, but does however state that subclasses may restrict this containment [UML 1.4, pp. 2-45]. The metaclasses Node, Artifact [UML 1.4, pp.1-16], Package and Model [UML 1.4, pp.1-188] - all deriving from Namespace - make no such restrictions however. This means that Node, Artifact, Package and Model can compositely contain the following concrete metaclasses as ownedElements: Method Attribute Operation Reception State ActionState ObjectFlowState Transition CallState Pseudostate SimpleState SubactivityState SynchState CompositeState SubmachineState SubState FinalState CallAction TerminateAction CreateAction DestroyAction SendAction ActionSequence UninterpretedAction ReturnAction ExtensionPoint Stimulus Parameter Permission UseCase ProgrammingLanguageDataType StateMachine Comment LinkObject Enumeration Association Dependency ClassifierInState SignalEvent Constraint NodeInstance Usage Signal Actor Interface Component Link Primitive Collaboration SubsystemInstance ChangeEvent Generalization Stereotype Subsystem TagDefinition Abstraction Extend ActivityGraph Flow UseCaseInstance DataType Object Class TimeEvent ComponentInstance Exception Include CollaborationInstanceSet AssociationClass CallEvent Binding Package Node Artifact Model DataValue TaggedValue The question is: are all these ownedElement types intended for all the mentioned containers? Especially the first 28 in the list appear out of place. Resolution: Revised Text: Actions taken: December 5, 2001: received issue March 9, 2005: closed issue Discussion: In UML 2.0, Node and Artifact no longer subtype NameSpace but instead subtype Class and Classifier respectively. The general problem of NameSpace containment has been tightened in UML 2.0 for Packages and Models by means of PackageableElements: only those meta classes that subtype PackageableElement can be contained in a package (eliminating things like e.g. SimpleState to be contained in a Package on its own). Disposition: Closed, no change. End of Annotations:===== From: Thomas Schaumburg To: "'issues@omg.org'" Subject: UML 1.4: Node, Artifact, Package and Model contents problem Date: Wed, 5 Dec 2001 15:44:17 +0100 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" X-UIDL: Qil!!5"Ne9/ndd9#%Fe9 According to the UML 1.4 standard, the abstract metaclass Namespace compositely contains any type of ModelElement, but does however state that subclasses may restrict this containment [UML 1.4, pp. 2-45]. The metaclasses Node, Artifact [UML 1.4, pp.1-16], Package and Model [UML 1.4, pp.1-188] - all deriving from Namespace - make no such restrictions however. This means that Node, Artifact, Package and Model can compositely contain the following concrete metaclasses as ownedElements: Method Attribute Operation Reception State ActionState ObjectFlowState Transition CallState Pseudostate SimpleState SubactivityState SynchState CompositeState SubmachineState SubState FinalState CallAction TerminateAction CreateAction DestroyAction SendAction ActionSequence UninterpretedAction ReturnAction ExtensionPoint Stimulus Parameter Permission UseCase ProgrammingLanguageDataType StateMachine Comment LinkObject Enumeration Association Dependency ClassifierInState SignalEvent Constraint NodeInstance Usage Signal Actor Interface Component Link Primitive Collaboration SubsystemInstance ChangeEvent Generalization Stereotype Subsystem TagDefinition Abstraction Extend ActivityGraph Flow UseCaseInstance DataType Object Class TimeEvent ComponentInstance Exception Include CollaborationInstanceSet AssociationClass CallEvent Binding Package Node Artifact Model DataValue TaggedValue The question is: are all these ownedElement types intended for all the mentioned containers? Especially the first 28 in the list appear out of OMG Issue No: 4735 Title: Node, Artifact, Package and Model contents problem Source: Summary: According to the UML 1.4 standard, the abstract metaclass Namespace compositely contains any type of ModelElement, but does however state that subclasses may restrict this containment [UML 1.4, pp. 2-45]. The metaclasses Node, Artifact [UML 1.4, pp.1-16], Package and Model [UML 1.4, pp.1-188] - all deriving from Namespace - make no such restrictions however. This means that Node, Artifact, Package and Model can compositely contain the following concrete metaclasses as ownedElements: Method Attribute Operation Reception State ActionState ObjectFlowState Transition CallState Pseudostate SimpleState SubactivityState SynchState CompositeState SubmachineState SubState FinalState CallAction TerminateAction CreateAction DestroyAction SendAction ActionSequence UninterpretedAction ReturnAction ExtensionPoint Stimulus Parameter Permission UseCase ProgrammingLanguageDataType StateMachine Comment LinkObject Enumeration Association Dependency ClassifierInState SignalEvent Constraint NodeInstance Usage Signal Actor Interface Component Link Primitive Collaboration SubsystemInstance ChangeEvent Generalization Stereotype Subsystem TagDefinition Abstraction Extend ActivityGraph Flow UseCaseInstance DataType Object Class TimeEvent ComponentInstance Exception Include CollaborationInstanceSet AssociationClass CallEvent Binding Package Node Artifact Model DataValue TaggedValue The question is: are all these ownedElement types intended for all the mentioned containers? Especially the first 28 in the list appear out of place. Discussion: No Change. The issue identifies a significant question with respect to UML 1.4, but does not require any change to UML 2, probably because the authors of the UML 2 spec took this issue into consideration in subtyping ModelElement into Packageable and Named subtypes, for use in defining what could be owned by a namespace. The answer to the question, whether all these ownedElement types were intended by the authors and adopters of the UML 1.4 specification, is "No". Disposition: Unresolved OMG Issue No: 4735 Title: Node, Artifact, Package and Model contents problem Source: Summary: According to the UML 1.4 standard, the abstract metaclass Namespace compositely contains any type of ModelElement, but does however state that subclasses may restrict this containment [UML 1.4, pp. 2-45]. The metaclasses Node, Artifact [UML 1.4, pp.1-16], Package and Model [UML 1.4, pp.1-188] - all deriving from Namespace - make no such restrictions however. This means that Node, Artifact, Package and Model can compositely contain the following concrete metaclasses as ownedElements: Method Attribute Operation Reception State ActionState ObjectFlowState Transition CallState Pseudostate SimpleState SubactivityState SynchState CompositeState SubmachineState SubState FinalState CallAction TerminateAction CreateAction DestroyAction SendAction ActionSequence UninterpretedAction ReturnAction ExtensionPoint Stimulus Parameter Permission UseCase ProgrammingLanguageDataType StateMachine Comment LinkObject Enumeration Association Dependency ClassifierInState SignalEvent Constraint NodeInstance Usage Signal Actor Interface Component Link Primitive Collaboration SubsystemInstance ChangeEvent Generalization Stereotype Subsystem TagDefinition Abstraction Extend ActivityGraph Flow UseCaseInstance DataType Object Class TimeEvent ComponentInstance Exception Include CollaborationInstanceSet AssociationClass CallEvent Binding Package Node Artifact Model DataValue TaggedValue The question is: are all these ownedElement types intended for all the mentioned containers? Especially the first 28 in the list appear out of place. Discussion: No Change. The issue identifies a significant question with respect to UML 1.4, but does not require any change to UML 2, probably because the authors of the UML 2 spec took this issue into consideration in subtyping ModelElement into Packageable and Named subtypes, for use in defining what could be owned by a namespace. The answer to the question, whether all these ownedElement types were intended by the authors and adopters of the UML 1.4 specification, is "No". BRAN: We could close this issue because much of the metamodel that it refers to is no longer applicable due to UML 2.0 changes, but it really is merely a symptom of the much greater problem of unexpected/undesired inheritance, which is as much of an issue in UML 2.0 if not more. This is, in fact, one of the sub-issues that is being discussed in the current compliance points/package merge controversy. I do not believe that we will be able to solve this problem in the FTF, although it may be possible to reduce it somewhat in certain important cases. I would prefer to keep this issue open until we know what we will be doing with unintended inheritance in general. Disposition: Unresolved place.