OO technology has the advantage of facilitating the development of highly
modular systems. The behaviour of a composite object is the result of the
collaboration among its component objects. The basic mechanism of
collaboration is delegation . The composite object implements a complex
algorithm by delegating to the component objects the execution of part of
the algorithm's steps. The component objects hold the data (encapsulation)
that are required to execute the delegated operations.
The notation adopted throughout this part of the topic ranges from informal
problem description, to UML diagrams and Java source code. We will demon-
strate the use of several UML diagrams:
state transition diagrams, and
Table 2.1 summarizes the notations covered during the development of
the case studies.
Table 2.1 OO modelling notations adopted in each case study
6 Multi-format calculator
We will also explain how the Java language supports the OO concepts and
general programming principles such as modularity, abstract data types and
The first part of this topic presents the foundations of OO software develop-
ment, the basic development techniques vocabulary, and its representation
in the Java programming language.
Chapter 3 (Scheduler) deals with the development of a tool that supports
interactive scheduling of project activities. This case study emphasizes the
separation of concerns between the problem description, the scheduling