2/5/2023
Content
Introduction
Activities
Actions
Edges
Control flow
Object flow
Initial node, activity final node, flow final node
Alternative paths
Concurrent paths
Object nodes
Event-based actions and call behavior actions
Partitions
Exception handling
2
1
Introduction Activity
Focus of activity diagram: procedural processing aspects Specification of user-defined behavior at different levels of granularity
Flow-oriented language concepts (các khái niệm về ngôn ngữ hướng Examples:
luồng) Definition of the behavior of an operation in the form of individual
Based on instructions
languages for defining business processes (ngôn ngữ để định nghĩa tiến Modeling the course of actions of a use case
trình kinh doanh) Modeling the functions of a business process
established concepts for describing concurrent communicating processes An activity is a directed graph Output
(các khái niệm để mô tả tiến trình giao tiếp đồng thời) Nodes: actions and activities parameter
Concepts and notation variants cover broad area of applications (khái Edges: for control and object flow
niệm và ký hiệu bao gồm nhiều lĩnh vực ứng dụng khác nhau) Control flow and object flow define
Modeling of object-oriented and non-object-oriented systems the execution
Input
Optional:
parameter
Parameter
Pre- and postconditions
Node Edge
3 4
1
2/5/2023
Action Edges
Basic element to specify user-defined behavior Connect activities and actions to one another
Atomic but can be aborted Express the execution order
No specific rules for the description of an action Types
Definition in natural language or in any programming language Control flow edges
Define the order between nodes Control flow
Process input values to produce output values
Object flow edges
Special notation for predefined types of actions, most importantly
Used to exchange data or objects
Event-based actions
Express a data/causal dependency between nodes
Call behavior actions
Guard (condition)
Control and object flow only continue if
guards in square brackets Object flow
evaluate to true
5 6
Token Beginning and Termination of Activities
Virtual coordination mechanism that describes the execution exactly Initial node
No physical component of the diagram Starts the execution of an activity
Mechanism that grants the execution permission to actions Provides tokens at all outgoing edges
Keeps tokens until the successive nodes accept them
Multiple initial nodes to model concurrency
If an action receives a token, the action can be executed Activity final node
When the action has completed, it passes the token to a subsequent Ends all flows of an activity
action and the execution of this action is triggered First token that reaches the activity final node terminates the entire activity
Guards can prevent the passing of a token Concurrent subpaths included
Tokens are stored in previous node Other control and object tokens are deleted
Exception: object tokens that are already present at the output parameters of the
activity
Control token and object token Flow final node
Control token: “execution permission" for a node Ends one execution path of an activity
Object token: transport data + “execution permission” All other tokens of the activity remain unaffected
7 8
2
2/5/2023
Alternative Paths – Decision Node Alternative Paths – Merge Node
To define alternative branches To bring alternative subpaths together
„Switch point“ for tokens Passes token to the next node
Outgoing edges have guards
Syntax: [Boolean expression] Combined decision and merge node
Token takes one branch
Guards must be mutually exclusive
Predefined: [else]
Decision behavior Decision and merge nodes can also be used to model loops:
Specify behavior that is necessary for the evaluation of the guards
Execution must not have side effects
9 10
Example: Alternative Paths Concurrent Paths – Parallelization Node
To split path into concurrent subpaths
Duplicates token for all outgoing edges
Example:
11 12
3
2/5/2023
Concurrent Paths – Synchronization Node Example: Equivalent Control Flow
To merge concurrent subpaths
Token processing
Waits until tokens are present at all incoming edges
Merges all control tokens into one token and passes it on
Passes on all object tokens
Combined parallelization and synchronization node: … equivalent to …
13 14
Example: Create and Send Invitations to a Meeting Example: Conduct Lecture (Student Perspective)
While invitations are printed, already printed invitations are addressed.
When all invitations are addressed, then the invitations are sent.
NOT equivalent … why?
15 16
4
2/5/2023
Example: Token (Control Flow) Object Node
x x Contains object tokens
x x x x x x x
Represents the exchange of data/objects
x x
Is the source and target of an object flow edge
Optional information: type, state
x x x
x
End !
x x
x x
Notation variant: object node as parameter
… all outgoing edges of all initial nodes are assigned a token…. For activities
… if all incoming edges of an action have a token, the action is activated and is ready for execution Input Output
… before the execution, the action consumes one token from every incoming edge; parameter parameter
after the execution, the action passes one token to every outgoing edge
… a decision node passes the token to one outgoing edge (depending on the result of the
evaluation of the guard)
… a merge node individually passes each token it gets to its outgoing edge
For actions (“pins”)
… a parallelization node duplicates an incoming token for all outgoing edges
… a synchronization node waits until all incoming edges have a token, merges them to a single
token and passes it to its outgoing edge
… the first token that reaches the activity final node terminates the entire activity
17 18
Example: Object Node Central Buffer
For saving and passing on object tokens
Transient memory
Accepts incoming object tokens from object nodes and passes them on
to other object nodes
When an object token is read from the central buffer, it is deleted from
the central buffer and cannot be consumed again
19 20
5
2/5/2023
Data Store Weight of Edges
For saving and passing on object tokens Minimal number of tokens that must be present for an action to be
Permanent memory executed
Saves object tokens permanently, passes copies to other nodes Default: 1
All tokens present have to be consumed: 0 (also all or *)
21 22
Connector Event-Based Actions
Used if two consecutive actions are far apart in the diagram To send signals
Send signal action
Without connector:
To accept events
With connector Accept event action
Accept time event action
23 24
6
2/5/2023
Example: Accept Event Action Call Behavior Action
The execution of an action can call an activity
Content of the called activity can be modeled elsewhere
Advantages:
Model becomes clearer
Reusability Name of the called activity
Inverted fork symbol
25 26
Partition Example: Partitions
“Swimlane”
Graphically or textual
Allows the grouping of nodes and edges of an activity due to
responsibilities
Responsibilities reflect organizational units or roles
Makes the diagram more structured
Does not change the execution semantics
Example: partitions Student and Institute Employee (with
subpartitions Professor and Secretary)
27 28
7
2/5/2023
Multidimensional Partitions Example: Issue Student ID on Paper (1/2)
Graphical notation … or alternatively textual notation State machine diagram of Student ID:
Activity diagram – control flow:
29 30
Example: Issue Student ID on Paper (2/2) Exception Handling – Exception Handler
Control flow (green) and object flow (red) in one activity diagram Predefined exceptions
Defining how the system has to react in a specific error situation
The exception handler replaces the action where the error occurred
If the error e occurs…
All tokens in Action A are deleted
The exception handler is activated
The exception handler is executed instead of
Action A
Execution then continues regularly
31 32
8
2/5/2023
Example: Exception Handler Exception Handling– Interruptible Activity Region
Defining a group of actions whose execution is to be terminated
immediately if a specific event occurs. In that case, some other
behavior is executed
If E occurs while B or C are executed
Exception handling is activated
All control tokens within the dashed rectangle (= within B and C) are
deleted
D is activated and executed
No “jumping back” to the regular execution!
33 34
Example: Interruptible Activity Region Notation Elements (1/5)
Name Notation Description
Represents an action (atomic!)
Action node
Represents an activity (can be
Activity node
broken down further)
Start of the execution of an
Initial node
activity
Activity final End of ALL execution paths of an
node activity
35 36
9
2/5/2023
Notation Elements (2/5) Notation Elements (3/5)
Name Notation Description Name Notation Description
Decision node Splitting of one execution path End of ONE execution path of an
into alternative execution paths Flow final node
activity
Merging of alternative execution
Merge node Connection between the nodes of
paths into one execution path Edge
an activity
Parallelization Splitting of one execution path Call behavior Action A refers to an activity of
node into concurrent execution paths action the same name
Synchronization Merging of concurrent execution
node paths into one execution path
Grouping of nodes and edges
Partition
within an activity
37 38
Notation Elements (4/5) Notation Elements (5/5)
Name Notation Description Name Notation Description
Send signal Transmission of a signal to a
action receiver Exception handler is executed
Exception
instead of the action in the event
Handler
of an error e
Asynchronous Wait for an event E or a time
accept (timing)
event T
event action
Interruptible Flow continues on a different
Object node Contains data or objects activity region path if event E is detected
Parameter for
activities
Contains data and objects as input
Parameter for and output parameters
actions (pins)
39 40
10
2/5/2023
41
11