activity diagram

advertisement
UML
ACTIVITY DIAGRAMS
Dr. Hoang Huu Hanh, OST – Hue University
hanh-at-hueuni.edu.vn
1
Objectives
To read and write UML activity diagrams
 To know when and how to use activity
diagrams

2
Topics
Processes and process descriptions
 Activity diagram notation
 Activity diagram execution model
 Making activity diagrams

3
Processes and Their Description
A process is a collection of related tasks that
transforms a set of inputs into a set of outputs.
Process description notations describe
design processes as well as computational
processes we design.
An activity diagram shows actions and the
flow of control and data between them.
4
Activities and Actions
An activity is a non-atomic task or
procedure decomposable into actions.
An action is a task or procedure that
cannot be broken into parts.
5
Activity Graph Elements
initial node
Do Laundry
Sort
Clothes
Wash
Whites
action node
Wash
Darks
activity symbol
Dry
Clothes
Fold
Clothes
activity edge
activity final node
6
Execution Model





Execution is modeled by tokens that are
produced by action nodes, travel over action
edges, and are consumed by action nodes.
When there is a token on every incoming edge of
an action node, it consumes them and begins
execution.
When an action node completes execution, it
produces tokens on each of its outgoing edges.
An initial node produces a token on each
outgoing edge when an activity begins.
An activity final node consumes a token available
on any incoming edge and terminates the activity.
7
Branching Nodes
Dry Clothes
merge
node
Run Drier
[still wet]
decision
node
[else]
guards
Fold
Clothes
8
Branching Execution
If a token is made available on the
incoming edge of a decision node, the
token is made available on the outgoing
edge whose guard is true.
 If a token is available on any incoming
edge of a merge node, it is made available
on its outgoing edge.
 Guards must be mutually exclusive.

9
Deadlock
Try to Dry
Clothes
Run Drier
[still wet]
[else]
Fold
Clothes
RunDrier cannot
execute: when the
activity begins,
there is a token on
the edge from the
initial node but not
on the other
incoming edge.
10
Forking and Joining Nodes
Do Laundry
fork node
Sort
Clothes
Wash
Whites
Wash
Darks
Dry
Clothes
join node
Fold
Clothes
11
Forking and Joining Execution
A token available on the incoming edge of
a fork node is reproduced and made
available on all its outgoing edges.
 When tokens are available on every
incoming edge of a join node, a token is
made available on its outgoing edge.
 Concurrency can be modeled without
these nodes.

12
Object Nodes
Data and objects are shown as object nodes.
Cruiser
Battleship
[damaged]
Battlegroup
Destroyer
[captured]
object
node
state
object node
13
Control and Data Flows
Control tokens do not contain data, object
tokens do.
 A control flow is an activity edge that is a
conduit for control tokens.
 A object flow is an activity edge that is a
conduit for object tokens.
 Rules for token flow through nodes apply to
both control and object tokens, except that
object is extracted from consumed tokens and
added to produced tokens.

14
Control and Data Flow Example
Wash and Dry
Clothes
control flow
Wash
Clothes
Clothes
[wet]
data flows
Run Drier
Clothes
[still wet]
[else]
Fold
Clothes
control flow
15
Activity Parameters
Activity parameters are object nodes
placed on activity symbol boundaries to
indicate data or object inputs or outputs.
 Activity parameters contain the data or
object name.
 Activity parameter types are specified in
the activity symbol beneath the activity
name.

16
Activity Parameter Example
activity
parameter
types
input
activity
parameter
FindMax
a : int[1..*]
max : int
a
max = a[0]
i=1
[else]
[i < a.length]
[else]
[max < a.[i]]
max = a[i]
i++
max
output
activity
parameter
17
Activity Diagram Heuristics
Flow control and objects down the page and
left to right.
 Name activities and actions with verb
phrases.
 Name object nodes with noun phrases.
 Don’t use both control and data flows when
a data flow alone can do the job.
 Make sure that all nodes entering an action
node can provide tokens concurrently.
 Use the [else] guard at every branch.

18
When to Use Activity Diagrams
When making a dynamic model of any
process.
◦ Design processes (what designers do)
◦ Designed processes (what designers create)
 During analysis
 During resolution
19
Summary
A process is a collection of related tasks that
transforms a set of inputs to a set of outputs.
 UML activity diagrams model processes by depicting
actions and the flow of control and data between
them.
 Activity symbols contain activity graphs consisting of

◦
◦
◦
◦

action nodes
action edges
data nodes
special nodes for starting and stopping activities, branching,
forking, and joining
Activity diagrams can represent any process and are
useful throughout software design.
20
Download