Objectives
Objects and classes are what object models are made of.
This section focuses on the identification of models
constituting the object model.
First, a brief description is given of the steps
involved in arriving at an object model.
Then some heuristics are discussed that may be of
help in finding and defining the objects that take part in the
model.
The example of an automated teller machine (ATM) is used
as an illustration.
Points to emphasize
- object-oriented design -- decomposition into objects
- object model -- objects suffer and require
- heuristics -- balance between nouns and verbs
- evaluation -- eliminating spurious classes
- class design -- class, responsibilities and collaborations
Hints
You may comment on the evolution of the ideas
with respect to object-oriented development
as found in Booch (1986, 1991, 1994).
In particular, [Booch94] introduces a number of additional
intermediate steps and adds numerous practical hints
and heuristics to arrive at an object model.
In this section the classical example of an ATM is used
to illustrate the transition from a requirements definition
to an object model.
You may consult [WWW90], [Rum91] and [BC89] for additional
material on this example.
Personally, I find the CRC method appealing because of
its simplicity and generality as a brainstorming device.
You may even try to induce your students to
take part in a game of dynamic
simulation.
Questions
- Give an outline of the steps required in object-oriented
design.
- What heuristics can you think of for identifying objects?
- What criteria may be used to eliminate spurious classes
from an initial object model?
- Explain the methods of CRC cards. Give an example.
Comments
It is important that students appreciate the various aspects
that need to be covered by the object model.
Just presenting the steps distinguished within a
particular method is clearly not sufficient.
Ideally, a little design exercise is introduced
at this point.
Instead, you may elaborate on the ATM example,
the equally classical library example
or an example of your own.