0% found this document useful (0 votes)
17 views29 pages

Lecture 12

The document discusses various aspects of activity diagrams including object nodes, activity edges, partitions, time triggers, exceptions, and expansion regions. It describes the different types of object nodes and how they manage object flows. It also covers how edges can transform object values and how selections work. Finally, it discusses concepts like interrupts, exceptions, and how expansion regions execute for each element in a collection.

Uploaded by

Muhammad Adeel
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)
17 views29 pages

Lecture 12

The document discusses various aspects of activity diagrams including object nodes, activity edges, partitions, time triggers, exceptions, and expansion regions. It describes the different types of object nodes and how they manage object flows. It also covers how edges can transform object values and how selections work. Finally, it discusses concepts like interrupts, exceptions, and how expansion regions execute for each element in a collection.

Uploaded by

Muhammad Adeel
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

Activity Diagrams

Recap
• Activity Diagrams
– When to use?
– Where?
– Nodes
– Edges
– More to come ….

2
Object nodes
• Hold data temporarily while they wait to move through the graph
• Specify the type of values they can hold (if no type is specified,
they can hold values of any type)
• Can also specify the state of the held objects

• There are four kinds of object nodes:

Central Buffer Data Store


Activity Parameter Nodes Nodes
Nodes Pins
(three differents notations) 3
Object nodes – CentralBuffer
• A central buffer node is an object node that manages flows
from multiple sources and destinations (as opposed to pins
and parameters)
• Acts as a buffer for multiple input flows and output flows
• Is not tied to an action like pins, or to an activity like activity
parameter nodes

The centralBuffer node collects the


object Parts, and each Part can be used
or packet (but not both)
4
Object nodes – Datastore
• Is a specific central buffer node which stores objects persistently
• Keeps all tokens that enter into it
• Tokens chosen to move downstream are copied so that tokens
never leave the data store
• If arrives a token containing an object already present in the data
store, this replaces the old one
• Tokens in a data store node cannot be removed (they are removed
when the activity is terminated)

5
Object nodes - Multiplicities and upper Bound

• Multiplicities: specify the minimum (≥0) and maximum number of


values each pin accepts or provides at each invocation of the action:
– when is available the minimum number of values, the action can
start
– if there is more values than the maximum, the action takes only
the first maximum value

• UpperBound: shows the maximum number of values that an object


node can hold: at runtime, when the upper bound has been
reached, the flow is stopped (buffering)

6
Object nodes – Effect and ordering

• Effect: pins can be notated with the effect that their


actions have on objects that move through the pin
• The effects can be: ‘create’ (only on output pins), ‘read’,
‘update’ or ‘delete’ (only on input pins)

• Ordering: specifies the order in which the tokens of an


object node are offered to the outgoing edges (FIFO, LIFO
or modeler-defined ordering)

7
Activity edges – Presentation options
• An edge can also be notated using a connector
• Every connector with a given label must be paired with
exactly one other with the same label on the same activity
diagram

is equivalent to

 To reduce clutter in complex diagrams, object nodes may be elided

is equivalent to

8
Activity edges - Transformation

• It is possible to apply a transformation of tokens as they


move across an object flow edge (each order is passed to
the transformation behaviour and replaced with the
result)

<<transformation>>
transformation
specification

In this example, the


transformation gets the value
of the attribute Customer of
the Order object
9
Selection
• Specifies the order (FIFO, LIFO or modeler-defined ordering)
in which tokens in the node are offered to the outgoing edges
• Can be applied to:
– Object node - specifies the object node ordering, choosing
what token offers to the outgoing edge whenever it asks a
token

– Edge - chooses the order on which tokens are offered from


the source object node to the edge (overrides any
selection present on the object node, that is object node
ordering)

10
Token competition
• A parameter node or pin may have multiple edges
coming out of it, whereupon there will be competition
for its tokens, because object nodes cannot duplicate
tokens while forks can
• Then there is indeterminacy in the movement of data
in the graph
If the input pin of Paint at Station 1
is full, the token remains at the
output of Make Part until the
traversal can be completed to one
of the input pins

11
ActivityPartition (1)
• Partitions divide the nodes and edges for identifying actions
that have some characteristics in common
• They often correspond to organizational units in a business
model
• Partitions can be hierarchical and multidimensional
• Additional notation is provided: placing the partition name in
parenthesis above the activity name

12
ActivityPartition (2)

Partition
notated to
occur outside
the primary
concern of the
model

13
Pre & post condition (1)
• Can be referred to an activity or to an action (local condition)

• UML intentionally does not specify when or whether pre/post


conditions are tested (design time, runtime, etc.)
• UML also does not define what the runtime effect of a failed
pre/post condition should be (error that stops execution,
warning, no action)

14
Pre & post condition (2)

15
SendSignalAction
• Creates a signal instance from its inputs, and transmits it
to the target object (local or remote)
• A signal is an asynchronous stimulus that triggers a
reaction in the receiver in an asynchronous way and
without a reply
• Any reply message is ignored

16
Time triggers and Time events
• A Time trigger is a trigger that specifies when a time
event will be generated
• Time events occur at the instant when a specified point
in time has transpired
• This time may be relative or absolute
– Relative time trigger: is specified with the keyword ‘after’
followed by an expression that evaluates to a time value
– Absolute time trigger: is specified as an expression that
evaluates to a time value
after (5 seconds) Jan, 1, 2000, Noon

Relative time trigger Absolute time trigger 17


AcceptEventAction
• Waits for the occurrence of an event meeting specified conditions
• Two kinds of AcceptEventAction:
– Accept event action – accepts signal
Accept event action
events generated by a SendSignalAction
– Wait time action – accepts time events
Wait time action
The objects stored in
Personnel are only
retrieved when the join
succeeds (only once a
year)
19
InterruptibleActivityRegion
• Is an activity group (sets of nodes and edges) that supports
termination of tokens flowing into it
• When a token leaves an interruptible region via interrupting
edges, all tokens and behaviours in the region are terminated
• Token transfer is still atomic: a token transition is never
partial; it is either complete or it does not happen at all (also
for internal stream)
InterruptibleActivityRegion

Interrupting
edge

21
Exceptions (1)
• Exception handler - specifies the code to be executed when
the specified exception occurs during the execution of the
protected node
• When an exception occurs the set of execution handlers on
the action is examined to look for a handler that matches
(catches) the exception
• If the exception is not caught, it is propagated to the enclosing
protected node, if one exists
• If the exception propagates to the topmost level of the system
and is not caught, the behaviour of the system is unspecified;
profiles may specify what happens in such cases

22
Exceptions (2)
• When an exception is caught, is executed the exception body
instead of the protected node, and then the token is passed to all
the edges that go out from that protected node
• The exception body has no explicit input or output edges
• Exception body can resolve the problems that have caused the
exception or can abort the program
• We can put any activities nested in a protected node (in UML 2.0,
nesting activities is allowed)

Protected HandlerBody
node with node
two nested
activities

Successful end 23
ExpansionRegion (1)
• Nested region of an activity in which each input is a collection
of values
• The expansion region is executed once for each element (or
position) in the input collection
• On each execution of the region, an output value from the
region is inserted into an output collection at the same
position as the input elements

24
ExpansionRegion (2)
• There are three ways of interaction between the
executions:
– Parallel (concurrent): all the interactions are
independent
– Iterative: the interactions occur in the order of the
elements (the executions of the region must happen in
sequence, with one finishing before another can begin)
– Stream (streaming): there is a single execution of the
region, where the values in the input collection are
extracted and placed into the execution of the
expansion region as a stream (in order if the collection is
ordered)

25
Swim Lane
Activity diagrams describe the activities of a class. These
diagrams are similar to state chart diagrams and use similar
conventions, but activity diagrams describe the behavior of a
class in response to internal processing rather than external
events as in state chart diagram.
• Swim lanes, which represent responsibilities of one or more
objects for actions within an overall activity; that is, they divide
the activity states into groups and assign these groups to objects
that must perform the activities.

26
Activity Diagrams: Swim lanes
Actions may be grouped into swim lanes to denote the
object or subsystem that implements the actions.

Allocate Dispatcher
Resources

Open Coordinate Archive


Incident Resources Incident

FieldOfficer
Document
Incident

27
Finance Order Stock
Processing Manager
Receive Order Receive Supply

*for each
order item Choose Outstanding
Order Items
Authorize Check Order vertical lines
Payment Item are used to separate
* for each “swimlanes”
[in stock] chosen to show which
[failed] order item
Assign to Order activities are handled
Assign to Order by which part of the
system
[succeeded] Cancel Order
[need to reorder]
Reorder
item
[all outstanding order
items filled]
[stock assigned to all order items
and payment authorized]
Add Remainder
Dispatch to Stock
Order

28
Summary
• Object Nodes
– Activity Parameter, Pins, Central Buffer, Data Stores
– Multiplicities, upper bound, effect, ordering
• Activity Edges
– Labels, transformations, selection
• Activity partitioning
• Pre/Post conditions
• Event actions
– SendSignalAction, AcceptEventAction, WaitTimeAction, Time trigger and
time events
• Interruptible activity region
• Expansion region
• Swim lane diagrams

You might also like