| Incremental Specialization vs. Overriding Specialization (2002) | |||||||||||||||||
Abstract | |||||||||||||||||
| At the present the Unified Modeling Language (UML) is considered the standard modeling language for object oriented software development process. The UML provides a graphical construction, called Generalization, to specify generalization/specialization hierarchies. A Generalization denotes a taxonomic relationship between a more general element and a more specific element. In the UML, a model element that may participate in a Generalization relationship is called a GeneralizableElement. As expected, UML defines that a Class is a GeneralizableElement, but also UML considers that other model element, such as Association, Stereotypes, Signals and Use Cases, may be treated as GeneralizableElements. The concept of generalization/specialization hierarchy is well understood when it is applied on Classes and in general generalization/specialization concept is compatible with inheritance concept. But when the concept of generalization/specialization hierarchy is extended to other model elements several contradictions and ambiguities arise if we try to keep this compatibility with inheritance. The objective of this paper is to analyze which kind of model elements can (properly) participate in an inheritance hierarchy. We get to the conclusion that most of the model elements that are currently considered as generalizable elements, such as Association and Use Case, should not appear in inheritance hierarchies. Instead, these model elements form a different kind of hierarchy that does not suit the incremental nature of inheritance hierarchy. | |||||||||||||||||
Publication details | |||||||||||||||||
| |||||||||||||||||