The use of object orientation and object oriented
concepts led to what we call OOAD, object oriented
analysis and design. OOAD is a software engineering approach
whose main characteristics is to model a software system
as a group of interacting objects, and we'll
see what that means. In particular, in this lesson
we will specifically focus on the first part of
this, object oriented analysis, which is a requirements analysis
technique that concentrates on modeling real world objects. And
as I usually like to do, I would like
to start by providing some historical perspective on object
oriented analysis to better understand how we went from a
function-centric world to a data-centric world. And several people
contributed to this shift in perspective, but I'd like
to mention a few that were particularly influential. Starting
from James Rumbaugh, which in the 90s developed an integrated
approach to object oriented modelling with three main aspects.
A data aspect, so the modelling was based on
using an extended version of entity relationship diagrams to
describe classes and inheritance. So that's what was called
the object model. And the second aspect has to
do with functions. So data flow diagrams were used
to represent the functional aspects of the system, where
each function was then becoming a method in a class.
So this is what is called the functional model.
So object model and functional model. The third model
in Rumbaugh's methodology had to do with control. So
it was representing the dynamic aspects of a system. And
it uses state machines, which we'll cover in more
detail, to represent how a system would evolve going from
one state to the other based on what happened
to the system. These three models together represented what was
called the Object Modeling Technique, or OMT. And
OMT combined with contributions from several people, and in
particular Jacobson and Booch, evolved into what we call
the Unified Modeling Language, which is UML, which is
probably the modeling language that most of you
are familiar with. UML extends OMT by providing more
diagrams and a broader view of a system from
multiple perspectives. So, in the second part of the
lesson, we will cover some of these
diagrams in details, but before that, I'd like
to talk a little bit more about object
oriented analysis, and how we can perform it.