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 Iteration 2 Iteration 3 Iteration 4 Iteration 5

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.