What process should I follow for object-oriented analysis and design?
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?
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