The topic is organized as a set of increasingly complex case studies, which
are presented according to a simplified development process. Such a process
is intended to keep track of all the activities that are involved in the
development of the case study and builds on the following concepts:
flow of thought;
refine and evolve;
Each of these concepts forms a sort of guide line that the reader may
follow through each case study and across the topic's chapters. As far as
possible the flow of thoughts is “serialized” in order to make it easy to read.
However, since thought is not linear by nature, possible alternative branches
that were explored during the solution-discovery process will be presented
in the form of “decision points”.
Each step in the solution process is the result of the refinement of ideas
present in previous steps. Starting from analysis and throughout the design,
earlier and simpler solutions are evolved into solutions that are more
complex and closer to a working system.
The experience of the readers builds up incrementally. As they encounter
new problems and find the relative solutions, they adds new terms to their
solutions vocabulary, which they will be able to use in the solution of future
Each case study is self-contained. The initial synthesis enumerates the
concepts that will be presented in the case study and the required back-
ground. Some initial assumptions might come from the final assessment of
previous case studies.
The topic supports multiple reading approaches:
Process oriented . Each case study represents an instance of an object-
oriented development process. The reader is invited to follow the straight-
forward structure of the topic from the first to the last case study, that is,
from the simplest to the most complex and complete case study.
Scope oriented . Each part of the topic covers a specific sector of the object-
oriented technology (simple standalone applications, complex multi-
threaded applications, concurrent and distributed systems, application