This process is independent from a particular programming language. Thus, object-oriented design deals with general techniques and notations how to derive the software components that best model a given problem. We will not go into details of this development process.
Nouns are candidates for classes, while verbs are candidates for methods.
We take the example of matrix computation to show the ideas. Informal problem specification Matrices are data structures which can hold data values organized in rows and columns. The basic operations needed are to get a matrix value and to put a matrix value. Based on these routines we can implement generic routines for printing matrices and adding matrices. If we would like to test the overall design we can implement a very rapid prototype by implementing the empty matrix, which is really very sparse.