Title: OBJECT-ORIENTED ANALYSIS
1OBJECT-ORIENTED ANALYSIS
2OBJECT-ORIENTED ANALYSIS (OOA)
- Semi-formal specification technique
- Several methods
- Booch, OMT, OOSE, Objectory--Essentially
equivalent - Nowadays--represent OOA using UML (Unified
Modeling Language)
3THE THREE STEPS OF OOA
- 1. Use-case Modeling
- Determine how the various results are computed by
the product (without regard to sequencing) - Largely action-oriented
- 2. Class Modeling (Object Modeling)
- Determine the classes and their attributes
- Purely data-oriented
- 3. Dynamic Modeling
- Determine the actions performed by and to each
class - Purely action-oriented
4Elevator ProblemOOA
- 1. Use-case Modeling
- Use cases Describe the behavior of the system as
seen from actors point of view. - Actors external entities that interact with the
system (e.g. A system adm, a bank customer, a
bank teller, a central database, etc.) - A Scenario a concise description of how an actor
may interact with the system - a scenario is an instance of a use case
51. Use-case Modeling
- Identify the actors
- Identify a list of "typical" scenarios to get
insight into the systems behavior - Identify use-cases
- a use-case specifies all possible scenarios for
a given functionality. - a use case is initiated by an actor.
- A use case represents a flow of events thru the
system.
6Elevator Problem OOA
7Normal Scenario
8Abnormal Scenario
92. Object Modeling
- The object model describes the real-world object
classes of the systems and their relationship to
each other with an entity-relationship diagram - It shows the static structure of the system.
- 1. Identify classes/objects
- 2. Identify associations between objects
- 3. Identify attributes of objects
- 4. Represent them using an entity-relationship
diagram - 5. Prepare a data dictionary
10Identifying Object Classes
- An Object is an instance of a class that consists
of - Data (attributes, state variables, instance
variables, fields, data members) - Actions (methods , member functions)
- An object has a state (represented by data
members) that changes during execution.
11Identifying Object Classes
- Objects include physical entities (house,
employees, button, etc.) and concepts (payment
schedule, seating assignment, trajectory, etc.) - Avoid computer implementation constructs (an
array, a linked list, a binary tree, etc.) - Dont be concerned with operations at this points.
12Identifying Object Classes
- Two approaches
- Deduce from use cases and their scenarios
- often many scenarios
- too many candidate classes
- Noun Extraction
- The two approaches are complementary
13Noun Extraction
- Stage 1 Concise Problem Definition
- Define product in a single sentence
- Buttons in elevators and floors are to be used
to control motion of n elevators in building with
m floors. - Stage 2 Incorporate constraints
- buttons illuminate when pressed to request
elevator to stop at specific floor illumination
is cancelled when request has been satisfied. If
elevator has no requests, it remains at its
current floor with its doors closed.
14Noun Extraction
- Stage 3 Identify nouns.
- Nouns buttons, elevator, floor, movement,
building, illumination, door - floor, building, door are outside the problem
boundarygtexcluded - Movement, illumination are abstract nouns
gtexcluded (may become attributes) - Candidate classes elevator, button
- Subclasses Elevator button and floor button
15Noun Extraction
16Identify Associations
- An association is any dependency between two or
more classes. - Example
- Person works-for Company
- User has Home Directory
- Directory contains Files
- contains and part-of are special types of
associations called aggregation - Inheritance is also a special type of
association.
17Identifying Associations
- Problem statement
- location phrases next to, contained in, etc
- communication talk to
- ownership phrases has, part of
- satisfaction of some condition works for,
married to, manages - Some depend on knowledge of application domain.
18Identifying Associations
- Example Buttons in elevators and floors are to
be used to control motion of n elevators in
building with m floors. - Buttons control elevators
- There are two types of buttons floor buttons and
elevator buttons - However, buttons do not really control elevator
they simply communicate with it.
19Identify Associations
- Identify association multiplicity
- 1 to 1
- 1 to many
- Many to many
- Identify aggregations
- Identify inheritance relations
20First Iteration of Class Model
- Problem buttons do not communicate directly with
elevatorgt class Elevator Controller
21Second Iteration of Class Model
22Identify Attributes
- Attributes are properties of individual objects
- Problem Statement
- Correspond to nouns followed by possessive
phrase collar of the car, position of the
cursor, salary of the employee, etc. - Attributes are less likely to occur in statement
of the problem. Knowledge of application domain.
- Try to get only the most important attributes at
this stage. Others can be added later
23Prepare Data Dictionary
- Write a paragraph describing each object class.
Described the scope of the class within the
current problem - Describe associations and attributes
- Data dictionaries also include description of
operations.
24CRC Cards
- Used since 1989 for OOA
- For each class, fill in card showing
- name of Class
- Responsibility functionality
- Collaboration list of classes it invokes
25Elevator Controller--CRC
1. Turn on elevator button Totally unacceptable
in OOA
26Elevator Controller--CRC
- 1. Turn on Elevator Button
- Should be
- 1. Send message to Elevator Button to turn on
button - What about ?
- 5. Open elevator doors
- Note Elevator doors have a state that changes
during execution (class characteristic) - gt add class Elevator Doors
27Elevator Controller--CRC
283. Dynamic Modeling
- The dynamic model shows the time-dependent
behavior of the system - Aim
- Produce a UML state diagram for each object
class. - A state diagram is less formal than an FSM
- States, events, and conditions
29States and Events
- The state of an object are defined by the values
of its attributes. - Objects change state when stimulated by other
objects or external actors. - A event is an individual stimulus from one object
to another. - The response to an event by the object receiving
it can include a change of state or the sending
of an another event (to the original object or
another object)
30Events
- An event is something that happens at a point in
time user depresses left-button, phone receiver
lifted, call is routed, input string entered. - An event has no duration assumed to be
instantaneous - An event coveys information from one object to
another - signal that something has occurred
- Send data values
- left mouse-button pushed (location)
31Example
- Draw a state diagram for a phone line
32Conditions
- A condition is a Boolean function of an object
values. Example - Temperature is below freezing
- Floor button is lit
- No cars on N/S left lanes
- A condition is valid over an interval of time
- Generally, a condition indicates the state of
another object in the system.
33Conditions
- Conditions are used as guards on transitions
- A transition fires when its event occurs, only if
the guard condition is true - When you go out in the morning (event), if the
temperature is below freezing (condition), then
put on your gloves (next state)
34Traffic Light Controller
- Straight N/S or W/E
- After N/S times-out,
- if there are cars on N/S left lane, N/E left-turn
signal is turned on - else straight W/E light is turned on
- Same for W/E left-lane
35Time-out cars in N/S left lane
N/S may go straight
N/S may turn left
Time-out No cars in N/S left lane
Time-out
Time-out
Time-out No cars in W/E left lane
W/E may go straight
W/E may turn left
Time-out cars in W/E left lane
36Operations--Activities Actions
- Operations are performed in response to states or
events - Activity an operation that takes time to
complete. - Continuous operations display a picture
- Sequential operations that terminate after an
interval of time performing a computation, play
a recorded message
37Activities
- An activity continues until complete or
interrupted by an event that causes transition to
a another state - e.g. ringing a telephone bell
- Activities are associated with states
State1 do activity1 do activity2
38Operations--Activities Actions
- Action is associated with an event
- Instantaneous duration is insignificant compared
to the resolution of the state diagram - e.g. when callee hangs-up disconnect phone line
- Changing attribute values
- e.g. increment count when some event occurs.
39Summary of Notation
Event condition/action
40(No Transcript)
41CASE Tools for OOA Phase
- Paradigm Plus
- Software through Pictures
- Rose