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

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

  1. Give an outline of the steps required in object-oriented design.
  2. What heuristics can you think of for identifying objects?
  3. What criteria may be used to eliminate spurious classes from an initial object model?
  4. 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.