What process should I follow for object-oriented analysis and design?

Vibhu Srinivasan

There are a number of different ways whereby you can perform OO analysis and design. Outlined here are some steps (process) which have been used by me for object analysis and design

The whole process follows a well known approach called incremental iterative development. So what does that mean?

This approach differs from the traditional waterfall approach. In this approach the software is developed in increments. New functionality is added during every increment. There is a very fine line as to what is a increment and what is a iteration. Basically you iterate a number of times in an increment. An increment is typically for a small period, say a few weeks, depending on the project. Each increment goes through

Use Case Analysis-> OO Analysis & Design--> Coding --> Testing--> Refactoring (Order need not be strictly followed)

1) Use Case Analysis.  This is a requirements gathering phase where use cases are written. A discovery phase to see what you have to do. For more on use cases check out the website by a well known use case specialist Alistar Cockburn.


2) OO Analysis and Design.  Here you take a subset of use cases and start identifying the object model. UML notation is a very powerful way of coming up with this model. Use tools like whiteboard (a lot), Visio for UML drawing for class, sequence diagrams etc.

You have three levels of object modelling as per Martin Folwer:  Conceptual, Specification, and Implementation.  For more of this check out


3) Then you go through coding and unit testing at code level . Testing should drive the coding process. First you write test cases and then write code to pass those test cases. A OOD framework for java projects is junit.

In the end do refactoring.

Check out www.refactoring.com