Home > Articles > Software Development & Management > UML

This chapter is from the book 16.10 Generalization, Abstract Classes, Abstract Operations

16.10 Generalization, Abstract Classes, Abstract Operations

Generalization in the UML is shown with a solid line and fat triangular arrow from the subclass to superclass (see Figure 16.1). What does it mean? In the UML, to quote:

Generalization—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 indirectly has features of the more general classifier. [OMG03b]

Is this the same as OO programming language (OOPL) inheritance? It depends. In a domain model conceptual-perspective class diagram, the answer is no. Rather, it implies the superclass is a superset and the subclass is a subset. On the other hand, in a DCD software-perspective class diagram, it implies OOPL inheritance from the superclass to subclass.

As shown in Figure 16.1, abstract classes and operations can be shown either with an {abstract} tag (useful when sketching UML) or by italicizing the name (easy to support in a UML tool).

The opposite case, final classes and operations that can’t be overridden in subclasses, are shown with the {leaf} tag.

  • + Share This
  • 🔖 Save To Your Account