Techopedia Explains Object-Oriented Analysis and Design (OOAD)
Software and computer application systems are incredibly complex concepts since there are few material restrictions and a lot of possible arbitrary reconstructions. Contrast that to things like bridge or building design, where the concept of a bridge or building is defined by the materials to be used and the nature of the environment it is built upon, which results in few options. Software does not enjoy the same restrictions, and the room for complexity to grow is very large. This is where object-oriented analysis and design comes into play. It uses abstraction as a tool to encapsulate complexity, and the more abstractions are introduced, the greater is the reduction in complexity. These acts of abstraction and encapsulation allow for certain problems to be highlighted and subsequently suppressed.
OOAD is best applied iteratively since there is no clear process involved, but each aspect where OOAD is applied is refined as it is reused. This is because major portions of the designs are based on the entire aspects of the system and on the entities rather than on individual functions and code. This enforces the modular approach of OOAD whose goal is to break down the problem or the system into smaller units, called objects, that can stand on their own and be changed without affecting the ones around them too much. This makes it easy to add functionality and behavior and allow the system to gracefully accept change.