Activity Diagram - Otto von Guericke University...
Transcript of Activity Diagram - Otto von Guericke University...
Business Informatics GroupInstitute of Software Technology and Interactive Systems Vienna University of TechnologyFavoritenstraße 9-11/188-3, 1040 Vienna, Austriaphone: +43 (1) 58801-18804 (secretary), fax: +43 (1) [email protected], www.big.tuwien.ac.at
Object-Oriented Modeling
Activity Diagram
Slides accompanying UML@ClassroomVersion 1.0
© BIG / TU Wien
Literature
The lecture is based on the following book:
Use Case DiagramStructure ModelingState Machine DiagramSequence DiagramActivity Diagram
UML @ Classroom: An Introduction to Object-Oriented ModelingMartina Seidl, Marion Scholz, Christian Huemer and Gerti Kappel
Springer Publishing, 2015
ISBN 3319127411
2
© BIG / TU Wien
Content
IntroductionActivitiesActionsEdges
Control flowObject flow
Initial node, activity final node, flow final nodeAlternative pathsConcurrent pathsObject nodes Event-based actions and call behavior actionsPartitionsException handling
3
© BIG / TU Wien
Introduction
Focus of activity diagram: procedural processing aspectsFlow-oriented language conceptsBased on
languages for defining business processesestablished concepts for describing concurrent communicating processes (token concept as found in petri nets)
Concepts and notation variants cover broad area of applicationsModeling of object-oriented and non-object-oriented systems
4
Activity
Specification of user-defined behavior at different levels of granularityExamples:
Definition of the behavior of an operation in the form of individual instructionsModeling the course of actions of a use caseModeling the functions of a business process
An activity is a directed graphNodes: actions and activitiesEdges: for control and object flow
Control flow and object flow define the execution
Optional: ParameterPre- and postconditions
Inputparameter
Node Edge
Outputparameter
5
© BIG / TU Wien
Action
Basic element to specify user-defined behaviorAtomic but can be abortedNo specific rules for the description of an action
Definition in natural language or in any programming languageProcess input values to produce output valuesSpecial notation for predefined types of actions, most importantly
Event-based actionsCall behavior actions
6
© BIG / TU Wien
Connect activities and actions to one anotherExpress the execution order Types
Control flow edgesDefine the order between nodes
Object flow edgesUsed to exchange data or objectsExpress a data/causal dependency between nodes
Guard (condition)Control and object flow only continue if guards in square brackets evaluate to true
Edges
Object flow
Control flow
7
© BIG / TU Wien
Token
Virtual coordination mechanism that describes the execution exactlyNo physical component of the diagramMechanism that grants the execution permission to actions
If an action receives a token, the action can be executedWhen the action has completed, it passes the token to a subsequent action and the execution of this action is triggeredGuards can prevent the passing of a token
Tokens are stored in previous node
Control token and object tokenControl token: “execution permission" for a nodeObject token: transport data + “execution permission”
8
© BIG / TU Wien
Beginning and Termination of Activities
Initial nodeStarts the execution of an activityProvides tokens at all outgoing edgesKeeps tokens until the successive nodes accept themMultiple initial nodes to model concurrency
Activity final nodeEnds all flows of an activityFirst token that reaches the activity final node terminates the entire activity
Concurrent subpaths includedOther control and object tokens are deleted
Exception: object tokens that are already present at the output parameters of the activity
Flow final nodeEnds one execution path of an activityAll other tokens of the activity remain unaffected
9
© BIG / TU Wien
Alternative Paths – Decision Node
To define alternative branches„Switch point“ for tokensOutgoing edges have guards
Syntax: [Boolean expression]Token takes one branchGuards must be mutually exclusivePredefined: [else]
Decision behaviorSpecify behavior that is necessary for the evaluation of the guardsExecution must not have side effects
10
© BIG / TU Wien
Alternative Paths – Merge Node
To bring alternative subpaths togetherPasses token to the next node
Combined decision and merge node
Decision and merge nodes can also be used to model loops:
11
© BIG / TU Wien
Concurrent Paths – Parallelization Node
To split path into concurrent subpathsDuplicates token for all outgoing edges
Example:
13
© BIG / TU Wien
Concurrent Paths – Synchronization Node
To merge concurrent subpathsToken processing
Waits until tokens are present at all incoming edgesMerges all control tokens into one token and passes it onPasses on all object tokens
Combined parallelization and synchronization node:
14
© BIG / TU Wien
Example: Create and Send Invitations to a Meeting
While invitations are printed, already printed invitations are addressed.When all invitations are addressed, then the invitations are sent.
16
… the first token that reaches the activity final node terminates the entire activity
… a parallelization node duplicates an incoming token for all outgoing edges
… a decision node passes the token to one outgoing edge (depending on the result of theevaluation of the guard)
… if all incoming edges of an action have a token, the action is activated and is ready for execution
… all outgoing edges of all initial nodes are assigned a token….
… a merge node individually passes each token it gets to its outgoing edge
… a synchronization node waits until all incoming edges have a token, merges them to a singletoken and passes it to its outgoing edge
… before the execution, the action consumes one token from every incoming edge; after the execution, the action passes one token to every outgoing edge
Example: Token (Control Flow)
x x x
x
x
x
xxx x
x
x
xx
x
x
xEnd !
x
x
18
Contains object tokensRepresents the exchange of data/objectsIs the source and target of an object flow edgeOptional information: type, state
Notation variant: object node as parameterFor activities
For actions (“pins”)
Object Node
Inputparameter
Outputparameter
19
© BIG / TU Wien
Central Buffer
For saving and passing on object tokensTransient memoryAccepts incoming object tokens from object nodes and passes them on to other object nodesWhen an object token is read from the central buffer, it is deleted from the central buffer and cannot be consumed again
21
© BIG / TU Wien
Data Store
For saving and passing on object tokensPermanent memorySaves object tokens permanently, passes copies to other nodes
22
© BIG / TU Wien
Weight of Edges
Minimal number of tokens that must be present for an action to be executedDefault: 1All tokens present have to be consumed: 0 (also all or *)
23
© BIG / TU Wien
Connector
Used if two consecutive actions are far apart in the diagram
Without connector:
With connector
24
Event-Based Actions
To send signalsSend signal action
To accept eventsAccept event action
Accept time event action
25
© BIG / TU Wien
Call Behavior Action
The execution of an action can call an activityContent of the called activity can be modeled elsewhereAdvantages:
Model becomes clearerReusability Name of the called activity
Inverted fork symbol
27
© BIG / TU Wien
Partition
“Swimlane”Graphically or textualAllows the grouping of nodes and edges of an activity due to responsibilitiesResponsibilities reflect organizational units or rolesMakes the diagram more structuredDoes not change the execution semanticsExample: partitions Student and Institute Employee (with subpartitions Professor and Secretary)
28
© BIG / TU Wien
Multidimensional Partitions
Graphical notation … or alternatively textual notation
30
Example: Issue Student ID on Paper (1/2)
State machine diagram of Student ID:
Activity diagram – control flow:
31
Example: Issue Student ID on Paper (2/2)
Control flow (green) and object flow (red) in one activity diagram
32
© BIG / TU Wien
Exception Handling – Exception Handler
Predefined exceptionsDefining how the system has to react in a specific error situationThe exception handler replaces the action where the error occurred
If the error e occurs…All tokens in Action A are deletedThe exception handler is activatedThe exception handler is executed instead of Action A
Execution then continues regularly
33
© BIG / TU Wien
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 executedException handling is activatedAll control tokens within the dashed rectangle (= within B and C) are deletedD is activated and executed
No “jumping back” to the regular execution!
35
© BIG / TU Wien
Name Notation Description
Action node
Activity node
Represents an action (atomic!)
Represents an activity (can be broken down further)
Initial node Start of the execution of an activity
Activity final node
End of ALL execution paths of anactivity
Notation Elements (1/5)
37
© BIG / TU Wien
Notation Elements (2/5)
Name Notation Description
Decision node
Merge node
Splitting of one execution pathinto alternative execution paths
Merging of alternative executionpaths into one execution path
Parallelization node
Synchronization node
Splitting of one execution pathinto concurrent execution paths
Merging of concurrent executionpaths into one execution path
38
© BIG / TU Wien
Name Notation Description
Flow final nodeEnd of ONE execution path of anactivity
Edge Connection between the nodes ofan activity
Call behavioraction
Action A refers to an activity ofthe same name
Partition Grouping of nodes and edgeswithin an activity
Notation Elements (3/5)
39
© BIG / TU Wien
Notation Elements (4/5)
Name Notation Description
Send signal action
Transmission of a signal to a receiver
Asynchronous accept (timing) event action
Wait for an event E or a timeevent T
Object node Contains data or objects
Parameter for activities
Parameter for actions (pins)
Contains data and objects as inputand output parameters
40