2. OOA- Introduction
• Object Oriented Analysis is an analysis model developed to describe
the functionality of the system.
• Peter Coad and Edward Yourdon described step by step method for
developing object oriented system models in 1991.
3. Why do we need Object Oriented Analysis?
1. Tackle more challenging problem domains.
2. Improve analyst and problem domain expert interaction.
3. Increase the internal consistency of analysis results.
4. Explicitly represent commonality.
5. Build specifications resilient to change.
6. Reuse analysis results.
7. Provide a consistent underlying representation for analysis.
4. Five major activities of OOA
1. Finding Class & Objects
2. Identifying Structures
3. Identifying Subjects
4. Defining Attributes
5. Defining Services
5.  Finding Class & Objects
Class & objects within a problem domain and within the context of a system’s
responsibilities are identified.
Where to look?
1. Observe first-hand
2. Actively listen to problem domain experts
3. Check previous OOA results
4. Check other systems
6. Read, Read, Read
7.  Identifying Structures
Overall structures of system is identified by two terms:
1. Generalization and Specialization (Gen-Spec) Structure
It captures the inheritance hierarchy among identified classes.
2. Whole-Part Structure
Whole-part structure is used to model how an object is part of another object and
how an objects are grouped into larger categories.
10. Example: Whole-Part Structure
an aircraft is an assembly of
• possibly no engine (a glider!)
• at most four engines
and an engine is part of
• possibly no aircraft
• at most one aircraft
11.  Identifying Subjects
• Identifying subjects is done by partitioning the Class & Objects model
into larger units.
• Subjects are groups of Class & Objects.
• Subjects are defined after identifying system’s structures.
13. Example: Instance Connection
A particular fight plan must be
assigned for exactly one aircraft,
any particular aircraft may have
zero or many flight plans.
14.  Defining Services
• Defining services means defining the operation of the classes, this is
done by identifying the object states and defining services such as
create, access, connect, display and so on.
• How the objects communicate with messages is identified using
15. Strategy – Defining Services
1. Identifying Object States
2. Identify the required Services
3. Identify the Message Connections
4. Specify the Services eg. Radar.SerachAirSpace()
5. Put the OOA documentation set together