Developing software using object-oriented principles require a programmer to have a sound understanding of a number of important concepts:
- Object-Oriented Analysis: what is the problem to be solved?
- Object-Oriented Design: how are we going to solve the problem
- Object-Oriented Programming: actually implementing the solution using an Object-Oriented Programming Language
The best way to learn Object-Oriented Analysis and Design is to read
where it is shown how to use the Unified Modeling Language (UML) and Design Patterns when developing software.
A Design Pattern is a solution which experienced software developers have been using over the years when they have to solve a given type of problem. The most popular book covering the fundamental Design Patterns is: