Object Oriented Design
Coming up with a plan for building the software.
Design is the creative process of transforming the problem into a solution.
That is determining a set of components (objects…classes) and interfaces between the
components that will satisfy the requirements.
Object Oriented Design is identifying the classes of objects and their interrelationships
that are needed to solve a problem.
The design for a software system should be a clear "blueprint" that
can then be followed by any competent team of programmers.
The design does not suddenly emerge in full detail from
the mind of a software engineer. It is a step-by-step process starting from a high
level of abstraction and gradually, through an iterative process, adding more
and more detail to the design. This process is called Step-Wise Refinement.
This can be illustrated as a series of iterations through the design.
Iteration 1
List objects needed for each requirement and a general statement of
how they will interact
Iteration 2
List behaviors of each of the objects
Iteration 3
Describe algorithms for each of the behaviors
Iteration 4
List and describe functions and variables to implement
the algorithms.
Specify the interface for each object
Iteration 5
Describe in greater detail how the objects will interrelate and interface
Describe how each object will be thoroughly tested
In reality it may take many more iterations to work out all the details of the design.
Finally, when all the details have been worked out you are ready to write the
Software Design Document.