Professional Documents
Culture Documents
Origins of Object-Oriented Analysis and Design
Origins of Object-Oriented Analysis and Design
Most developers are well-aware of the concepts of object-oriented development, but those
same concepts originate from a broader approach to the entire software development life
cycle known as object-oriented analysis and design (OOAD). OOAD is a technical method of
analyzing and designing an application based on that system’s object models (the logical
components of the system that interact with one another).
We’ll take the time in this article to explore exactly what object-oriented analysis and object-
oriented designare, how these techniques are typically used in modern development, and any
potential advantages or disadvantages you may consider when implementing OOAD into your
own work. Let’s get going!
In the case of stringent development methodologies, such as the waterfall method, these
stages are sequential and intended to be completely separate from one another. Thus, when
creating an application using the waterfall method, it’s unlikely that discoveries made during
the testing or deployment phases can impact the decisions already made during
the planning or design phases. These limitations, along with the strict step-by-step staging
process of waterfall-esque models, led to the rise of iterative models like object-oriented
analysis and design.
While OOAD practices have been around for a number of decades, the core ideas and
techniques were largely cemented in the collective mind of the development community in
the 1990s. An assortment of practitioners and authorities in the industry, working together
and on solo endeavors, began to publish a number of books, articles, and techniques that all
relied heavily on OOAD concepts. Some of these publications and methodologies are still
well-known and in use today, including the Unified Modeling Language and
the Rational Unified Process.
With that out of the way, we can define object-oriented analysis (OOA). In short, OOA is an
iterative stage of analysis, which takes place during the software development life cycle, that
aims to model the functional requirements of the software while remaining completely
independent of any potential implementation requirements. To accomplish this task
via OOAD practices, an object-oriented analysis will focus everything through the lens
of objects. This forces OOA to combine all behaviors, characteristics, and states together into
one analysis process, rather than splitting them up into separate stages, as many other
methodologies would do.
For example, a typical implementation of OOA is to create an object model for an application.
The object modelmight describe the names, relationships, behaviors, and characteristics of
each object in the system. With this information established for each object, the design
process that follows is much simpler.
Put another way, the OOD process takes the theoretical concepts and ideas planned out
during the OOA stage, and tries to find a way to design and tangibly implement them, usually
via code using whatever language and platforms the development team has settled upon.
If OOA is the what, then OOD is the how.