Guide to Applying the UML

This chapter introduces object orientation, including the principles of object orientation, the foundational structural and behavioral concepts that enable us to model systems using the object-oriented paradigm, and how to communicate these concepts using the UML. Chapters 5-9 elaborate with more detail on these and other concepts. Our goal in this chapter is to gain a detailed tutorial overview of the UML notation.
The object-oriented paradigm focuses on constructing reusable units and encompasses conceptualization and specification concepts, while the component-based paradigm focuses on the assembly of reusable units and encompasses specification and realization concepts, both of which are based on the principles of abstraction, encapsulation, generalization, and polymorphism. These principles enable a system to be more resilient in addressing change and complexity, which leads to system stability. Systems that are utterly simple or more algorithmic may not benefit as much from these paradigms as complex and more volatile systems.
An abstraction is a concept or idea, and the technique of identifying abstractions is called abstracting. A manifestation of an abstraction is an example of the abstraction, and the technique of exemplifying or instantiating abstractions is called manifesting or instantiation. An abstraction may also be a concept of a relationship that relates other concepts. For example, the idea of a car is an abstraction and a physical car is the manifestation of the idea; and the idea of ownership of a car is an abstraction and ownership of a physical car is the manifestation...