<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=UML_Activity_Diagram</id>
	<title>UML Activity Diagram - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=UML_Activity_Diagram"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=UML_Activity_Diagram&amp;action=history"/>
	<updated>2026-04-14T21:21:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=UML_Activity_Diagram&amp;diff=65004&amp;oldid=prev</id>
		<title>Fstachecki: /* Decision⌘ */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=UML_Activity_Diagram&amp;diff=65004&amp;oldid=prev"/>
		<updated>2018-01-30T13:50:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Decision⌘&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:UML Diagrams]]&lt;br /&gt;
&lt;br /&gt;
==Activity Diagram⌘==&lt;br /&gt;
[[File:ActivityDiagramENExample.png]]&lt;br /&gt;
*Describes the workflow behavior of a system, focuses on flows.&lt;br /&gt;
* A Process describes a sequence or flow of Activities in an organization with the objective of carrying out work.&lt;br /&gt;
===Activity, Action⌘===&lt;br /&gt;
[[File:ActivityAction.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Activity&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*describes a &amp;#039;&amp;#039;&amp;#039;sequence of actions&amp;#039;&amp;#039;&amp;#039; based on control models and object flow models&lt;br /&gt;
*contains edges and activity nodes (e.g. actions)&lt;br /&gt;
*represented by a rectangle with rounded corners&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* is a fundamental unit of executable functionality contained within an Activity&lt;br /&gt;
* represents a &amp;#039;&amp;#039;&amp;#039;single step&amp;#039;&amp;#039;&amp;#039; within an activity&lt;br /&gt;
&lt;br /&gt;
===Activity ⌘===&lt;br /&gt;
Activity contains &amp;#039;&amp;#039;&amp;#039;nodes&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* Action&lt;br /&gt;
* Object&lt;br /&gt;
* Control Node&lt;br /&gt;
and &amp;#039;&amp;#039;&amp;#039;edges&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*Control Flow&lt;br /&gt;
*Object Flow&lt;br /&gt;
[[File:ActivityNode.png]]&lt;br /&gt;
&lt;br /&gt;
=====Control Flow⌘=====&lt;br /&gt;
[[File:ActivityControlFlow.png]]&lt;br /&gt;
* A control flow is an edge that starts an activity node after the previous one is finished&lt;br /&gt;
=====Object Flow⌘=====&lt;br /&gt;
[[File:ObjectFlow.png|333px]] &amp;#039;&amp;#039;&amp;#039;OR&amp;#039;&amp;#039;&amp;#039; [[File:ObjectFlow2.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:ObjectFlow3.png]]&lt;br /&gt;
* An object flow is an activity edge that can have objects or data passing along it&lt;br /&gt;
&lt;br /&gt;
===Objects⌘===&lt;br /&gt;
[[File:ActivityParameter.png]]&lt;br /&gt;
&lt;br /&gt;
*Incoming or outgoing objects are parameters&lt;br /&gt;
*Placed (as rectangles) on the border&lt;br /&gt;
[[File:ActionPin2.png]]&lt;br /&gt;
*Or as small rectangle, called a pin (&amp;#039;&amp;#039;&amp;#039;input&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;output&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
===Token⌘===&lt;br /&gt;
*The semantics of an activity is based on a token flow&lt;br /&gt;
*Control tokens and object tokens flow &amp;#039;&amp;#039;&amp;#039;between&amp;#039;&amp;#039;&amp;#039; nodes &amp;#039;&amp;#039;&amp;#039;over&amp;#039;&amp;#039;&amp;#039; edges&lt;br /&gt;
&lt;br /&gt;
===Activity Example⌘===&lt;br /&gt;
[[File:ActivityExample.png]]&lt;br /&gt;
&lt;br /&gt;
===Initial Node⌘===&lt;br /&gt;
[[File:ActivityInitialNode.png]]&lt;br /&gt;
&lt;br /&gt;
* It has outgoing edges but no incoming edges&lt;br /&gt;
* An activity may have more than one initial node&lt;br /&gt;
** Each generates a concurrent flow&lt;br /&gt;
* An initial node can have more than one outgoing edge&lt;br /&gt;
** Semantics: a control token at each outgoing edge&lt;br /&gt;
* Activity diagrams do not have to have initial nodes&lt;br /&gt;
* Notation: a filled circle&lt;br /&gt;
&lt;br /&gt;
===Final Node⌘===&lt;br /&gt;
[[File:ActivityFinalNode.png]]&lt;br /&gt;
&lt;br /&gt;
*An activity may have more than one activity final node&lt;br /&gt;
*The first one reached stops all flows in the activity&lt;br /&gt;
** Regardless of the number of tokens in activity&lt;br /&gt;
* At least one incoming edge and no outgoing edges&lt;br /&gt;
* If several incoming edges only one must carry a token&lt;br /&gt;
* Activity diagrams do not have to have final nodes&lt;br /&gt;
* Notation: a filled circle with an outer ring&lt;br /&gt;
&lt;br /&gt;
===Decision⌘===&lt;br /&gt;
[[File:ActivityDecision.png]]&lt;br /&gt;
* is a control node that chooses between outgoing flows&lt;br /&gt;
* One incoming edge and several outgoing edges&lt;br /&gt;
* When a token is supplied guards on outgoing edges are evaluated&lt;br /&gt;
** Token goes to first true outgoing&lt;br /&gt;
* Notation: a rhombus&lt;br /&gt;
&lt;br /&gt;
===Merge⌘===&lt;br /&gt;
[[File:ActivityMerge.png|350px]]&lt;br /&gt;
* A merge node is a control node that brings together multiple alternate flows&lt;br /&gt;
**It is not used to synchronize concurrent flows&lt;br /&gt;
*Several incoming edges, one outgoing edge&lt;br /&gt;
*Nothing calculated, nothing expected&lt;br /&gt;
*Notation: an empty rhombus&lt;br /&gt;
&lt;br /&gt;
===Fork, Join⌘===&lt;br /&gt;
[[File:ActivityForkJoin.png|350px]]&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Fork&amp;#039;&amp;#039;&amp;#039; – one incoming edge and multiple outgoing edges&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Join&amp;#039;&amp;#039;&amp;#039; – multiple incoming edges and one outgoing edge&lt;br /&gt;
&lt;br /&gt;
===Implicit splitting⌘===&lt;br /&gt;
[[File:ImplicitSplitting.png]]&lt;br /&gt;
&lt;br /&gt;
Once action A terminates&lt;br /&gt;
* a control token is available at both outgoing edges&lt;br /&gt;
* actions B and C start concurrently&lt;br /&gt;
===Implicit synchronization⌘===&lt;br /&gt;
[[File:ImplicitSynchronization.png]]&lt;br /&gt;
&lt;br /&gt;
Action F doesn&amp;#039;t start until tokens are available at both incoming edges - actions D and E have to terminate&lt;br /&gt;
&lt;br /&gt;
===Implicit split/synchronization - object flow⌘===&lt;br /&gt;
[[File:ImplicitObjectFlow.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;AND&amp;#039;&amp;#039;&amp;#039; semantics for object flows&lt;br /&gt;
*Once action A terminates it provides two object nodes&lt;br /&gt;
*Action F doesn&amp;#039;t start until object tokens are available at both incoming edges - actions D and E have to terminate&lt;/div&gt;</summary>
		<author><name>Fstachecki</name></author>
	</entry>
</feed>