Skip to main content



      Home
Home » Modeling » UML2 » Classifier.getInheritedMembers() method vs UML inheritance semantics
Classifier.getInheritedMembers() method vs UML inheritance semantics [message #1603735] Fri, 06 February 2015 06:06 Go to next message
Eclipse UserFriend
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 Go to previous message
Eclipse UserFriend
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?
Previous Topic:getAppliedStereotypes() does not work when model and profile are in the same file ?
Next Topic:find elements by type and by name
Goto Forum:
  


Current Time: Thu Jul 17 10:08:07 EDT 2025

Powered by FUDForum. Page generated in 0.07500 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top