COMP 325 Lecture 11: Object Oriented Analysis: Objects and Associations
major resources: Introduction to Object Oriented Analysis 2002, Object-Oriented and Classical Software Engineering 6ed, Schach 2005, Object-Oriented Software Engineering, Schach 2008.

[ previous | schedule | next ]

Object Oriented Analysis (OOA)

Major advantage of OOA: ability to create in the computer world things that accurately reflect the things your users work with in their real world. (Brown, p 100)

Classification of objects

Ivar Jacobson, one of "The Three Amigos", classifies objects into 3 types which were adopted into UML:
  1. Entity objects
  2. Boundary objects (originally called Interface objects)
  3. Control objects
Consider advantages of organizing objects into these categories These relate to Model-View-Controller (MVC) pattern

Schach OOA Process

The goal is to find and record classes, their attributes, behaviors and relationships. Schach promotes an iterative and incremental process for extracting entity classes
  1. Describe scenarios, or instances of use cases. This is called functional modeling
  2. From scenarios, determine entity classes, attributes, interrelationships and express results in class diagram. This is called entity class modeling.
  3. For each class, determine its operations or behaviors and express results in statechart. This is called dynamic modeling.
Boundary and control classes are then ("easily") found; boundary classes correspond to input and output screens and reports, control classes correspond to "non trivial computations".
Use cases are refined, then "realized" through collaboration and/or sequence diagrams to model system dynamics.

Brown OOA Process

The goal is to find and record classes, their attributes, behaviors and relationships. Brown promotes the 7-step KRB (Kapur-Ravindra-Brown) process
  1. discover candidate classes
  2. define classes based on candidate lists
  3. establish associations between classes
  4. expand M-M associations into 1-M
  5. find attributes
  6. normalize
  7. find behaviors
These are outlined in detail, below the section on Responsibility-Driven Design.

Artifacts of the OO Analysis Workflow

Artifacts produced by the OO Analysis workflow include: These artifacts and the processes that produce them are described over the next two lectures.

Responsibility-Driven Design and CRC cards in OOA

RDD Concepts CRC Cards Walk-through of use cases It is useful to conduct walk-through of use cases to identify and record responsibilities and collaborations

Details of KRB method of OOA

Step 1: discover candidate classes (entity, boundary, and control)

Step 2 : define classes based on candidate lists

Step 3 : establish associations between classes

Step 4 : expand the M-M associations into 1-M

Step 5 : look for attributes

Step 6 : normalization (adapted from DB theory)

Step 7 : find behaviors

This involves discovering and specifying system dynamics. These topics are explored and described in the next lecture.

Class Diagrams

Class with attributes and behaviors
annotated with visibility
Entity class (stereotype - not standard UML)
Boundary class (stereotype - not standard UML)
Control class (stereotype - not standard UML)
Generalization association
Composition and Aggregation associations
(composition is like engine to car, dependent)
(aggregation is like book to shelf, independent)
general associations
cardinality (multiplicity)

[ COMP 325 | Peter Sanderson | Math Sciences server  | Math Sciences home page | Otterbein ]

Last updated:
Peter Sanderson (PSanderson@otterbein.edu)