0% found this document useful (0 votes)
7 views51 pages

Lecture - 4

The document discusses dynamic modeling in object-oriented analysis, focusing on the identification of classes and operations through various UML diagrams such as state diagrams, sequence diagrams, and communication diagrams. It emphasizes the importance of understanding events, interactions, and the dynamic behavior of objects to create effective models. Additionally, it outlines practical tips for dynamic modeling, validation, and verification of models to ensure consistency and completeness in system design.

Uploaded by

a3302643989
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views51 pages

Lecture - 4

The document discusses dynamic modeling in object-oriented analysis, focusing on the identification of classes and operations through various UML diagrams such as state diagrams, sequence diagrams, and communication diagrams. It emphasizes the importance of understanding events, interactions, and the dynamic behavior of objects to create effective models. Additionally, it outlines practical tips for dynamic modeling, validation, and verification of models to ensure consistency and completeness in system design.

Uploaded by

a3302643989
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 51

Lecture - 4

Object-oriented Analysis –
Dynamic Model
 Introduction

 Requirements
Elicitation

 Nonfunctional  Functional  Use Case Diagrams


Requirements Model

 Analysis
“Analysis Cloud”

 Class Diagrams  Analysis


 Statechart Diagrams
Object Model

System Design  Dynamic  Sequence Diagram


Model
Dynamic Modeling

• Definition of a dynamic model:


• Describes the components of the system that have
interesting dynamic behavior.
• The dynamic model is described with
• State diagrams: One state diagram for each class with
interesting dynamic behavior.
• Classes without interesting dynamic behavior are
not modeled with state diagrams.
• Sequence and communication diagrams: For the
interaction between classes.
• Purpose:
• Identify new classes in the object model and supply
operations for the classes.
Identify Classes and Operations
• Analysis Object Model has already established
several sources for class identification:
• Application domain analysis: We find classes by talking to
the client and identify abstractions by observing the end
user.
• General world knowledge and intuition.
• Textual analysis of event flow in use cases.
• Two additional heuristics for identifying classes
from dynamic models:
• Actions in state chart diagrams are candidates for public
operations in classes.
• Activity lines in sequence diagrams are candidates for
objects.
How do we detect Operations?

• We look for objects, who are interacting and


extract their “protocol”.
• We look for objects, who have interesting
behavior on their own.
• Good starting point: Flow of events in a use case
description.
• From the flow of events, we proceed to the
sequence diagram to find the participating
objects.
What is an Event?

• Something that happens at a point in time.


• An event sends information from one object to
another.
• Events can have associations with each other:
• Causally related:
• An event happens always before another event.
• An event happens always after another event.
• Causally unrelated:
• Events that happen concurrently.
• Events can also be grouped in event classes with
a hierarchical structure => Event taxonomy.
Finding Participating Objects

• Heuristic for finding participating objects:


• An event always has a sender and a receiver.
• Find the sender and receiver for each event => These
are the objects participating in the use case.
Dynamic Modeling with UML

• Two UML diagram types for describing


dynamic models:
• Interaction diagrams describe the dynamic behavior
between objects.
• Statechart diagrams describe the dynamic behavior
of a single object.
UML Interaction Diagrams

• Two types of interaction diagrams:


• Communication Diagram:
• Shows the temporal relationship among objects.
• Position of objects is identical to the position of the
classes in the corresponding UML class diagram.
• Good for identifying the protocol between objects.
• Does not show time.
• Sequence Diagram:
• Describes the dynamic behavior between several
objects over time.
• Good for real-time specifications.
Example of a Communication
Diagram
1) We start with the Class Diagram for 2Bwatch
2) Then we look at the sequence of events when
Joe sets the time on 2Bwatch

2BwatchInput 2BwatchDisplay

2BwatchTime
Example of a Communication
Diagram
Joe sets the time on 2Bwatch

Joe:2BwatchOwner
1:pressButtons1And2()
2:pressButton1()
3:pressButton2() 1.1:blinkHours()
4:pressButtons1And2() 2.1:blinkMinutes()
4.2:stopBlinking()
:2BwatchInput :2BwatchDisplay

3.1:incrementMinutes()
4.1:commitNewTime()

3.2:refresh()
:2BwatchTime
Heuristics for Sequence Diagrams
• Layout:
1st column: Should be the actor of the use case
2nd column: Should be a boundary object
3rd column: Should be the control object that
manages the rest of the use case
• Creation of objects:
• Create control objects at beginning of event flow.
• The control objects create the boundary objects.
• Access of objects:
• Entity objects can be accessed by control and
boundary objects.
• Entity objects should not access boundary or
control objects.
Example: Finding Objects from a
Sequence Diagram
• Let’s assume ARENA’s object model: contains
the following five objects
• League Owner, League, Tournament, Match and Player

League Owner League


1 *
Attributes Attributes
Operations Operations

Tournament
Attributes
Operations

Player * * Match
Attributes Attributes
Operations Operations
Example: Finding Objects from a
Sequence Diagram

• We now model the use case CreateTournament


with a sequence diagram.
ARENA Sequence Diagram: Create
Tournament
:Tournament
Boundary :Arena :League
League
Owner

newTournament
(league)
:Announce
«new» Tournament
Control
checkMax
Tournament()
setName(name)

setMaxPlayers
(maxp)

commit() create
createTournament Tournament
(name, maxp) «new»
(name, maxp) :Tournament
Another Example: Finding Objects
from a Sequence Diagram

The Sequence Diagram identified 3 new Classes


• Tournament Boundary, Announce_Tournament_Control and
Arena
ARENA Sequence Diagram: Create
Tournament
:Tournament
Boundary :Arena :League
League
Owner

newTournament
(league)
:Announce
«new» Tournament
Control
checkMax
Tournament()
setName(name)

setMaxPlayers
(maxp)

commit() create
createTournament Tournament
(name, maxp) «new»
(name, maxp) :Tournament
Impact on Arena’s Object Model
League Owner League
1 *
Attributes Attributes
Operations Operations

Arena Tournament_
Boundary
Attributes Attributes
Operations Operations
Tournament

Announce_ Attributes
Tournament_ Operations
Control

Attributes
Operations

Player Match
* *
Attributes Attributes
Operations Operations
Impact on ARENA’s Object Model (2)

• The sequence diagram also supplies us with many


new events
• newTournament(league)
• setName(name)
• setMaxPlayers(max)
• commit
• checkMaxTournament()
• createTournament

• Question:
• Who owns these events?
• Answer:
• For each object that receives an event there is a public
operation in its associated class.
• The name of the operation is usually the name of the
event.
Example from the Sequence
Diagram
:Tournament
Boundary :Arena :League
League
Owner

newTournament
(league)

:Announce
«new» Tournament
Control
checkMax
Tournament()
setName(name)

setMaxPlayers
(maxp)

commit() create
createTournament Tournament
(name, maxp) «new»
(name, maxp) :Tournament
League Owner League
1 *
Attributes Attributes
Operations Operations

Tournament_
Boundary
Arena Attributes
Operations
Attributes

Operations
Tournament
Announce_
Tournament_ Attributes
Control Operations
Attributes
createTournament
(name, maxp)

Player Match
* *
Attributes Attributes
Operations Operations
What else can we get out of
Sequence Diagrams?
• Sequence diagrams are derived from use cases.

• The structure of the sequence diagram helps us


to determine how decentralized the system is.
• We distinguish two structures for sequence
diagrams
• Fork Diagrams and Stair Diagrams
Fork Diagram
• The dynamic behavior is placed in a single
object, usually a control object
• It knows all the other objects and often uses them for
direct questions and commands

Control
Object
Stair Diagram

• The dynamic behavior is distributed. Each object


delegates responsibility to other objects
• Each object knows only a few of the other objects and
knows which objects can help with a specific behavior
Fork or Stair?

• Object-oriented supporters claim that the stair


structure is better
• Modeling Advice:
• Choose the stair - a decentralized control structure - if
• The operations have a strong connection
• The operations will always be performed in the
same order
• Choose the fork - a centralized control structure - if
• The operations can change order
• New operations are expected to be added as a
result of new requirements.
UML State Chart Diagram
• State Chart Diagram
• A notation for a state machine that describes the
response of an object of a given class to the receipt of
outside stimuli (Events)
• State: An abstraction of the attributes of a class
• State is the aggregation of several attributes a class
• A state is an equivalence class of all those
attribute values and links that do no need to be
distinguished
• Example: State of a bank
• State has duration.
UML Statechart Diagram Notation
Name of
Action
Event with parameters attr State

State1 Event
Event(attr) [condition]/action State2
do/Activity
entry /action Guard
condition
exit/action

• Note: Actions and Activities in State


• Events are italics
• Conditions are enclosed with brackets: []
• Actions are prefixed with a slash /
• UML statecharts are based on work by Harel
• Added are a few object-oriented modifications.
Example of a Statechart Diagram

coins_in(amount) / set balance


Collect Money
Idle coins_in(amount) / add to balance
cancel / refund coins

[item empty] [select(item)] [change<0]

do/Test item and compute change


[change=0] [change>0]

do/Dispense item do/Make change


State Chart Diagram vs Sequence
Diagram
• State chart diagrams help to identify:
• Changes to an individual object over time

• Sequence diagrams help to identify:


• The temporal relationship of between objects over time
• Sequence of operations as a response to one ore more
events.
Dynamic Modeling of User Interfaces

• Statechart diagrams can be used for the design


of user interfaces.
• States: Name of screens.
• Actions are shown as bullets under the screen
name.
Navigation Path Example
Screen name

Action Diagnostics Menu


• User moves cursor to Control Panel or Graph

Control panel Graph


• User selects functionality of sensors • User selects data group
and type of graph
Define
• User defines a sensor event
from a list of events Selection
• User selects data group
Enable Disable • Field site
• User can enable • User can disable a • Car
a sensor event sensor event from • Sensor group
from a list of a list of sensor • Time range
sensor events events
Practical Tips for Dynamic Modeling

• Construct dynamic models only for classes with


significant dynamic behavior
• Avoid “analysis paralysis”
• Consider only relevant attributes
• Use abstraction if necessary
• Look at the granularity of the application when
deciding on actions and activities
• Reduce notational clutter
• Try to put actions into superstate boxes (look for
identical actions on events leading to the same state).
Model Validation and Verification

• Verification is an equivalence check


between the transformation of two models
• Validation is the comparison of the model
with reality
• Validation is a critical step in the development
process Requirements should be validated with
the client and the user.
• Techniques: Formal and informal reviews
(Meetings, requirements review)
• Requirements validation involves several
checks
• Correctness, Completeness, Ambiguity, Realism
Checklist for a Requirements Review

• Is the model correct?


• A model is correct if it represents the client’s view of
the system
• Is the model complete?
• Every scenario is described
• Is the model consistent?
• The model does not have components that contradict
each other
• Is the model unambiguous?
• The model describes one system, not many
• Is the model realistic?
• The model can be implemented
Verification vs Validation of
models
System Object Implemen-
Analysis
Design Design tation
R MAnalysis MSystem MObject MImpl

fR fMA fMS fMD fImpl


R MAnalysis MSystem MObject MImpl

Validation Verification Verification Verification

M M
fM
I I
R R
fR
Examples for Inconsistency and
Completeness Problems
• Different spellings in different UML diagrams

• Omissions in diagrams
Different spellings in different UML
diagrams
UML Sequence Diagram UML Class Diagram

LeagueOwner League
1 *
createTournament Attributes Attributes
(name, maxp)
Operations Operations

Tournament_
Boundary
Attributes
Operations
Tournament
Announce_
Tournament_ Attributes
Control
Operations
Attributes
makeTournament
Different spellings (name, maxp)
in different models
for the same operation Player Match
* *
Attributes Attributes
Operations Operations
Omissions in some UML Diagrams
Class Diagram

League Owner League


1 *
Attributes Attributes
Operations Operations

Tournament_ Missing
Boundary
Attributes Association
Operations (Incomplete
Tournament
Analysis?)
Missing class
Attributes
(The control object
Operations
Announce_Tournament
is mentioned in the
sequence diagram)

Player * Match
*
Attributes Attributes
Operations Operations
Checklist for a Requirements Review
(2)
• Syntactical check of the models
• Check for consistent naming of classes,
attributes, methods in different subsystems
• Identify dangling associations (“pointing to
nowhere”)
• Identify double- defined classes
• Identify missing classes (mentioned in one
model but not defined anywhere)
• Check for classes with the same name but
different meanings
When is a Model Dominant?

• Object model:
• The system has classes with nontrivial states and many
relationships between the classes
• Dynamic model:
• The model has many different types of events: Input,
output, exceptions, errors, etc.
• Functional model:
• The model performs complicated transformations (eg.
computations consisting of many steps)
• Which model is dominant in these applications?
• Compiler
• Database system
• Spreadsheet program
Examples of Dominant Models
• Compiler:
• The functional model is most important
• The dynamic model is trivial because there is only one
type input and only a few outputs
• Is that true for developmentenvironments (e.g.
Eclipse)?
• Database systems:
• The object model most important
• The functional model is trivial, because the purpose of
the functions is to store, organize and retrieve data
• Spreadsheet program:
• The functional model most important
• The dynamic model is interesting if the program allows
computations on a cell
• The object model is trivial.
Let’s Do Analysis: A Toy Example

• Analyze the problem statement


• Identify functional requirements
• Identify nonfunctional requirements
• Identify constraints (pseudo requirements)
• Build the functional model:
• Develop use cases to illustrate functional requirements
• Build the dynamic model:
• Develop sequence diagrams to illustrate the interaction
between objects
• Develop state diagrams for objects with interesting
behavior
• Build the object model:
• Develop class diagrams for the structure of the system
Problem Statement:
Direction Control for a Toy Car

• Power is turned on • Power is turned off


• Car moves forward and • Car stops and headlight
car headlight shines goes out
• Power is turned off • Power is turned on
• Car stops and headlight • Headlight shines
goes out. • Power is turned off
• Power is turned on • Headlight goes out
• Headlight shines • Power is turned on
• Power is turned off • Car runs forward with its
• Headlight goes out headlight shining
• Power is turned on
• Car runs backward with
its headlight shining
Find the Functional Model: Use
Cases
• Use case 1: System Initialization
• Entry condition: Power is off, car is not moving
• Flow of events:
1. Driver turns power on
• Exit condition: Car moves forward, headlight is on

• Use case 2: Turn headlight off


• Entry condition: Car moves forward with headlights on
• Flow of events:
1. Driver turns power off, car stops and headlight goes out.
2. Driver turns power on, headlight shines and car does not
move.
3. Driver turns power off, headlight goes out
• Exit condition: Car does not move, headlight is out
Use Cases continued
• Use case 3: Move car backward
• Entry condition: Car is stationary, headlights off
• Flow of events:
1. Driver turns power on
• Exit condition: Car moves backward, headlight on

• Use case 4: Stop backward moving car


• Entry condition: Car moves backward, headlights on
• Flow of events:
1. Driver turns power off, car stops, headlight goes out.
2. Power is turned on, headlight shines and car does not
move.
3. Power is turned off, headlight goes out.
• Exit condition: Car does not move, headlight is out
Use Cases Continued

• Use case 5: Move car forward


• Entry condition: Car does not move, headlight is out
• Flow of events
1. Driver turns power on
• Exit condition:
• Car runs forward with its headlight shining
Use Case Pruning

• Do we need use case 5?


• Let us compare use case 1 and use case 5:

Use case 1: System Initialization


• Entry condition: Power is off, car is not moving
• Flow of events:
1. Driver turns power on
• Exit condition: Car moves forward, headlight is on

Use case 5: Move car forward


• Entry condition: Car does not move, headlight is out
• Flow of events
1. Driver turns power on
• Exit condition:
• Car runs forward with its headlight shining
Dynamic Modeling:
Create the Sequence Diagram
• Name: Drive Car
• Sequence of events:
• Billy turns power on
• Headlight goes on
• Wheels starts moving forward
• Wheels keeps moving forward
• Billy turns power off
• Headlight goes off
• Wheels stops moving
Sequence Diagram for Drive Car
Scenario
:Headlight Billy:Driver :Wheel

Power(on) Power(on)

Power(off) Power(off)

Power(on) Power(on)
Toy Car: Dynamic Model
Wheel
Headlight
Forward
Off power
power off
on
power power
off on

Stationary Stationary
On

power power
on
off

Backward
Toy Car: Object Model

Car

Power Headlight Wheel

Status: (On, Off) Status: (On, Off) Motion: (Forward,


Backward,
TurnOn() Switch_On() Stationary)
TurnOff() Switch_Off()
Start_Moving()
Stop_Moving()

You might also like