Example of Other Notation: Representing Specialization and Generalization in UML Class Diagrams
The basic notation for specialization/generalization (see Figure 8.10) is to connect the subclasses by vertical lines to a horizontal line,which has a triangle connecting the horizontal line through another vertical line to the superclass. A blank triangle indicates a specialization/generalization with the disjoint constraint, and a filled triangle indicates an overlapping constraint. The root superclass is called the base class, and the subclasses (leaf nodes) are called leaf classes.
The above discussion and example in Figure 8.10, and the presentation in Section 7.8 gave a brief overview of UML class diagrams and terminology. We focused on the concepts that are relevant to ER and EER database modeling, rather than those concepts that are more relevant to software engineering. In UML, there are many details that we have not discussed because they are outside the scope of this book and are mainly relevant to software engineering. For example, classes can be of various types:
? Abstract classes define attributes and operations but do not have objects corresponding
to those classes. These are mainly used to specify a set of attributes
and operations that can be inherited.
? Concrete classes can have objects (entities) instantiated to belong to the
? Template classes specify a template that can be further used to define other classes.