Object Oriented Design and Analysis

Exploratory Phase:

  1. Read and understand the specification.
  2. As you follow the steps below, walk through various scenarios to explore possibilities.  Record the results as Use Cases.
Classes:
  1. Extract noun phrases from the specification and build a list.
  2. Look for nouns that may be hidden (for example, by the use of the passive voice) and add them to the list.
  3. Identify candidate classes from the noun phrases by applying the following guidelines:
  4. Identify candidates for abstract superclasses by grouping the classes that share common attributes.
  5. Use categories to look for classes that may be missing.
  6. Write a short statement of the purpose of the class.
Responsibilities:
  1. Find responsibilities using the following guidelines:
  2. Assign responsibilities to classes using the following guidelines:
  3. Find additional responsibilities by looking for relationships between classes.
Collaborations:
  1. Find and list collaborations by examining the responsibilities associated with classes.  Ask:
  2. Identify additional collaborations by looking for these relationships between classes:
  3. Discard classes if no classes collaborate with them, and they collaborate with no other classes.