Overview

Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a group of interacting objects. 

Objects must model the behavior and state relevant to the system being implemented. Only certain properties and behavior are relevant; identifying what is relevant is a key part of OOAD.

OOAD involves:

  • Analysis, or problem modeling, in which the problem is described and represented.
  • Design, or solution modeling, in which a solution to the problem is discovered and represented.
  • Implementation, in which the code that makes up the working system is written and tested.

In a traditional plan-driven model (like "Waterfall") these steps are taken in order and turn. In an agile software development model, the incremental approach to development is taken where at each cycle (iteration), you analyze a little, design a little and then code a little. At the end of the cycle, you receive feedback and respond to changes.

The analyze-a-little, design-a-little, code-a-little cycle is what we expect you to employ through project iterations in this course.