CS 477 Lecture Notes
Week Eight, Tuesday: Object Oriented Analysis Phase
Object Oriented versus Structured Paradigm
The structured paradigm, although contributing to many successes in software
development and maintenance, has been less successful with large projects.
The object oriented (OO) paradigm offers the best chance for new improvements
in software engineering productivity.
Data and actions are two sides of the same coin: data can't change without
action, and actions without data are meaningless.
While a class defines both data and actions (member data and member functions),
they cannot be considered simultaneously with existing techniques in the OO
paradigm. Hence, we need to alternate our consideration from one to the other.
A well-designed object (has high cohesion and low coupling) models all aspects
of one physical entity. Hence, it is easily and safely maintainable: we minimize
the chances of introducing a regression fault. The reusability of objects is
enhanced with inheritance.
Object Oriented Analysis: Robo-Butler Example
Class Modeling
We begin with the entity-relationship model developed previously in the structured systems
analysis:

Figure 1: The entity-relationship diagram becomes the class model.
No inheritance is used at this stage of refinement, and methods will be devoloped
later as well. What were called "entities" in the structured paradigm are called
"classes" in the object oriented paradigm.
Dynamic Modeling
Next we create a dynamic model for the Robo-Butler class:

Figure 2: Dynamic model for the Robo-Butler class.
Functional Modeling
Before creating the functional model, we refine the class model by adding
inheritance:

Figure 3: The refined class model adds inheritance to distinguish
guests from the owner and the various types of possession objects.
We need to distinguish the owner as a special person. The robot also needs
to distinguish among the types of guest possessions. Now we're ready to
produce the functional model:

Figure 4: Robo-Butler functional model.
Object-Oriented Life-Cycle Models
The "fountain" model: circular arrow arcs represent iteration. Can degenerate
to undisciplined mode.
It's best to have a linear process as an overall objective, and depart from
it as necessary. Iteration is intrinsic to software production.
CASE Tools for the Object-Oriented Analysis Phase
Essentially drawing tools, some support other portions of the
OO life cycle.
This page established February 22, 1998; last updated Janauary 17, 2000.