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.