CmpE296P-OOAD

advertisement
Advanced Object-Oriented Analysis & Design
Dr. M.E. Fayad, Professor
Computer Engineering Department, Room #283I
College of Engineering
San José State University
One Washington Square
San José, CA 95192-0180
http://www.engr.sjsu.edu/~fayad
2003
SJSU -- CmpE
L9-S1
Object Identification-1
Lesson 9:
Object Identification - 1
2
2003
SJSU – CmpE ---
M.E. Fayad
L9-S2
Object Identification-1
Lesson Objectives
 Understand object identification & class classification

Objectives
Learn how to identify:
Objects and classes
 Textual Specification Analysis
 Data Analysis
 Behavior Analysis
 Use Case Analysis
 Associations and aggregations using Abbott's approach
Understand how to use the following approaches:
 Data Analysis
 Use Case
2003
SJSU – CmpE ---
M.E. Fayad
L9-S3
3
Object Identification-1
Classification Involves Ordering Knowledge
Finding Similarities
– Common Attributes
– Common Behaviors
OO Classifies Software
– Exposes existing commonalities
– Invents stable abstractions
Goal is a simple & natural design
4
2003
SJSU – CmpE ---
M.E. Fayad
L9-S4
Object Identification-1
No Single Best Classification Structure
Depends upon
– Domain
– Application
– Experience
– Creativity
Water Animals
?
Air Animals
5
Land Animals
2003
SJSU – CmpE ---
M.E. Fayad
L9-S5
Object Identification-1
Same Object Can Be Perceived from Several Perspectives
Data-Driven
head, tail, body, leg
Behavior-Driven
walk, run, eat
2003
SJSU – CmpE ---
Responsibility-Driven
carry things, communicate,
maintain its living system
M.E. Fayad
L9-S6
6
Object Identification-1
Object/Class Identification Techniques
 Textual
2003
Specification Analysis

Data Analysis

Behavior Analysis

Use-Case Analysis

Responsibility Analysis
SJSU – CmpE ---
M.E. Fayad
7
L9-S7
Object Identification-1
Textual Analysis Approach
2003

Abbott’s Noun Approach
– Use noun, pronoun, and noun phrases to identify
abstract objects and classes.
– Use singular proper nouns (e.g., sensor number 5)
and nouns of direct reference (e.g., the fifth sensor)
to identify abstract objects.
– Use plural and common (e.g., sensor) nouns to
identify classes.
– Use verbs and predicate phrases (e.g., are
simultaneously activated) to identify the associated
operations.

Comments
– This approach is the oldest approach
SJSU – CmpE ---
M.E. Fayad
8
L9-S8
Object Identification-1
Textual Analysis Approach

Benefits:
– Easy for beginners to use
– Abbott’s mapping should usually work
– Can be used with pre-existing textual requirements
specifications
– Does not require a complete paradigm shift
 Risks
– Indirect
– Many software engineers are weak in grammar
– English is vague, Examples
• Some nouns can be used as verbs and vis versa
• Some words (e.g., purchase, record) can be used as both nouns and
verbs
– Assumes user’s requirements are coherent, complete and
correct
– No tool support
2003
SJSU – CmpE ---
M.E. Fayad
L9-S9
10
Object Identification-1
Selecting Good Classes
2003

Classes should make sense in the problem domain.

Good classes classify the objects which need to be
modeled in the system.

Classes often correspond to NOUNS.

Avoid redundant or irrelevant classes which add no
value in the problem domain.

Remove classes which have no attributes.
SJSU – CmpE ---
M.E. Fayad
L9-S10
12
Object Identification-1
Elimination of Inappropriate Classes
After initial pass, discard classes which are:

Redundant

Irrelevant to the problem domain

Vague

Attributes
 If class name has no attributes of its own, it is
probably an attribute.
2003
SJSU – CmpE ---
M.E. Fayad
L9-S11
11
Object Identification-1
Example 1: Simple Cash Register
The Problem Statement:
A simple cash register has a display, an electronic wire
with a plug, and a numeric keypad which has keys for
subtotal, tax, and total. This cash storage device has a
total key which triggers the release on the drawer. The
numeric buttons simply place a number on the display
screen, the subtotal displays the current total, the tax key
computes the tax, and the total key adds the subtotal to
the tax.
•
•
2003
Identify all the classes in this problem statement
Use the class elimination rules to eliminate the
unnecessary classes.
SJSU – CmpE ---
M.E. Fayad
L9-S12
12
Object Identification-1
Classes in the initial pass

We are going to use nouns to find classes
 Nouns (initial)
Register
Display
Wire
Plug
Keypad
Keys
Devices
Release
Drawer
Buttons
Screen
Number
Total
Tax

Nouns (General Knowledge)
0-9 keys
Money
Subtotal Key
Tax Key
Total Key
2003
SJSU – CmpE ---
13
M.E. Fayad
L9-S13
Object Identification-1
Eliminating Unnecessary Nouns

Register
• Screen
---> Redundant

Display
• Number
---> Attribute

Wire
---> Irrelevant
• Total ---> Attribute

Plug
---> Irrelevant
• Tax

Keypad
• 0-9 Key

Keys
• Value ---> Attribute

Devices
---> Vague
• Money

Release
---> Irrelevant
• Subtotal Key

Drawer

Buttons
2003
---> Attribute
• Tax Key
---> Redundant
SJSU – CmpE ---
14
• Total Key
M.E. Fayad
L9-S14
Object Identification-1
Data Analysis Approach
1. Identify abstract
objects as table
3. Identify relationships
between objects
Dog
Name
Happy
Tasha
King, Jr.
Breed
Owner Name
Poodle
Pit Bull
Shepherd
Joe
Eric
Carol
Dog Owner
Name
2. Identify instances
as rows in table
Address
Carol
2601 Lake St.
15
But how do you find your abstract objects?
2003
SJSU – CmpE ---
M.E. Fayad
L9-S15
Object Identification-1
Analyzing the Domain for Abstract Objects
2003

Tangible things -- airplane, book, table

Roles -- doctor, professor

Incidents -- accident, flight

Interactions -- purchase, marriage

Specifications -- insurance policy

People -- humans who carry out some function

Places -- areas set aside for people or things

Organizations -- formally organized collections of
people, resources. and facilities
SJSU – CmpE ---
M.E. Fayad
L9-S16
16
Object Identification-1
Identifying Associations/Aggregations
2003

Associations often refer to verbs of verb phrases
– Examples: next to, contains, part of, works for,
married to, downstream from, connected to, etc.

These may be explicit in the problem statement or
implicit in the knowledge of the problem domain

Write down all candidates, then eliminate unnecessary
ones and add others

Aggregation is just a common type of association
SJSU – CmpE ---
M.E. Fayad
L9-S17
17
Object Identification-1
Behavior Analysis

Data Flow Diagrams (DFDs)

State-Transition Diagrams (STDs)

Semantic Nets or Object-Interaction
Diagrams (OIDs)

Message or communication Diagrams
18
2003
SJSU – CmpE ---
M.E. Fayad
L9-S18
Object Identification-1
Looking for Behavior

Examine required Processing or
behavior of system components

Objectify common behavior
– Use inheritance
Swimmers

DFDs may help identify processes
Flyers
Runners
2003
SJSU – CmpE ---
M.E. Fayad
L9-S19
19
Object Identification-1
Data Flow Diagrams (DFDs)

DFD Approach
– Use each data store on a DFD to identify an
abstract object or class
– Use (all or part of) the transforms associated with
data store to identify associated operations

Candidate Objects
– external entities
– data stores
– control transformations

20
Candidate Classes
– data flows
2003
SJSU – CmpE ---
M.E. Fayad
L9-S20
Object Identification-1
Data Flow Diagrams (DFDs) (cont’d)


2003
Benefits
– Very well-known approach
– Many requirements analysis methods are
based on DFDs.
– Tool support exists
– Does not require paradigm shift
Risks
– Data abstraction
– Indirect
– Traditional DFDs have the wrong scope
SJSU – CmpE ---
M.E. Fayad
L9-S21
21
Object Identification-1
State-Transition Diagrams (STDs)

State Approach
– Identify an object or a class for each entity that has a state

Benefits
– Can be used at any time that an object or a class has a finite
number of obvious states

Risks
– The state can belong to the entire subsystem or an operation
– An object or a class may have an infinite number of states.
– An object or a class may have states that are not all obvious.
– An object or a class may have only a small number of trivial
states.
2003
SJSU – CmpE ---
M.E. Fayad
L9-S22
22
Object Identification-1
Use Case Analysis: Baseball System
1
Pitch a Ball
Pitcher
1
Hit a Home Run
1
Batter
Run the Bases
1
Scored a Run
2003
SJSU – CmpE ---
M.E. Fayad
Runner on
First Base
L9-S23
23
Object Identification-1
Some Use Cases in Baseball Game





2003
Base hit
Single base hit
• In field base hit
• Outfield base hit
Double base hit
Triple base hit
Home run
• A home run
• Two home runs
• Three home runs
• Grand Slam
SJSU – CmpE ---
M.E. Fayad
24
L9-S24
Object Identification-1
A Use Case Description
Use Case: Hit a Home Run
 When a batter hits a home run, the runners run the bases
and reach home plate and score
 When a batter hits a home run, the batter runs the bases
until reaching the home plate and scores
 When the runners score, the score board updates the
score board, the game announcer is going crazy and
saying “ a big home run ... holy cow ... holy cow “ and the
fans are going wild and screaming a lot.
 When ..
2003
SJSU – CmpE ---
M.E. Fayad
L9-S25
25
Object Identification-1
Discussion Questions
1. Define: use case model, use case, specification objects, incident
objects, organization objects.
2. List all the object identification techniques
3. What are the benefits and risks of each of these techniques?
4. Describe how do you identify associations and aggregations
5. Explain:
a. The same object can be perceived from several perspectives.
b. No single best classification structure.
c. Classification involves ordering knowledge.
26
d. How to select good classes
e. How to eliminate inappropriate classes
2003
SJSU – CmpE ---
M.E. Fayad
L9-S26
Object Identification-1
Questions for the Next Lecture

Learn how to identify the
rest of OO artifacts.

Describe the following
Models: Use Case Model,
DFD, STD, OID, OCD.
27
2003
SJSU – CmpE ---
M.E. Fayad
L9-S27
Object Identification-1
Download