Classifier.getInheritedMembers() method vs UML inheritance semantics [message #1603735] |
Fri, 06 February 2015 06:06  |
Eclipse User |
|
|
|
According to UML 2.4.1 super structure specification the definition of generalization is:
"A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier."
This definition Indicates that only UML Features (Connector, ExtensionEnd, Operation, Port, Property and Reception) are to be inherited between classifiers.
When studying the elements returned by the Classifier.getInheritedMembers()-method, a lot of other elements are returned as well. For example Packages and Instance Specifications are inherited between Components, but RedefinableTemplateSignature for example, is not inherited.
My questions are:
1) Is there an intentional difference between UML inheritance semantics and the behavior in the getInheritedMembers() method?
2) Is it possible to get information on exactly which elements that are returned by the getInheritedMembers() method for each kind of classifier?
|
|
|
Re: Classifier.getInheritedMembers() method vs UML inheritance semantics [message #1603838 is a reply to message #1603735] |
Fri, 06 February 2015 07:40  |
Eclipse User |
|
|
|
Hi,
What a classifier actually inherits is determined by the Classifier
operations inherit(...) and inheritableMembers(...) and any possibly
redefinitions thereof for specific classifier metaclasses.
In the UML 2.5 specification, the only such redefinitions that I see
are for exclusion of RedefinableElements (such as features) that the
specializing classifier has redefined. So, it appears to be pretty
wide open.
HTH,
Christian
On 2015-02-06 11:06:45 +0000, Thomas Wiman said:
> According to UML 2.4.1 super structure specification the definition of
> generalization is:
>
> "A generalization is a taxonomic relationship between a more general
> classifier and a more specific classifier. Each instance of the
> specific classifier is also an indirect instance of the general
> classifier. Thus, the specific classifier inherits the features of the
> more general classifier."
>
> This definition Indicates that only UML Features (Connector,
> ExtensionEnd, Operation, Port, Property and Reception) are to be
> inherited between classifiers.
>
> When studying the elements returned by the
> Classifier.getInheritedMembers()-method, a lot of other elements are
> returned as well. For example Packages and Instance Specifications are
> inherited between Components, but RedefinableTemplateSignature for
> example, is not inherited.
>
> My questions are: 1) Is there an intentional difference between UML
> inheritance semantics and the behavior in the getInheritedMembers()
> method?
>
> 2) Is it possible to get information on exactly which elements that are
> returned by the getInheritedMembers() method for each kind of
> classifier?
|
|
|
Powered by
FUDForum. Page generated in 0.07500 seconds