The following diagram shows an action with local pre and post conditions. Control Flow. A control flow shows the flow of control from one action to the next. Its notation is a line with an arrowhead. Initial Node. An initial or start node is depicted by a large black spot, as shown below. Final Node. There are two types of final node activity and flow final nodes. The activity final node is depicted as a circle with a dot inside. The flow final node is depicted as a circle with a cross inside. The difference between the two node types is that the flow final node denotes the end of a single control flow the activity final node denotes the end of all control flows within the activity. Objects and Object Flows. An object flow is a path along which objects or data can pass. An object is shown as a rectangle. An object flow is shown as a connector with an arrowhead denoting the direction the object is being passed. An object flow must have an object on at least one of its ends. A shorthand notation for the above diagram would be to use input and output pins. A data store is shown as an object with the datastore keyword. Decision and Merge Nodes. Decision nodes and merge nodes have the same notation a diamond shape. They can both be named. Accounting Software Data Flow Diagram' title='Accounting Software Data Flow Diagram' />The control flows coming away from a decision node will have guard conditions which will allow control to flow if the guard condition is met. The following diagram shows use of a decision node and a merge node. Fork and Join Nodes. Forks and joins have the same notation either a horizontal or vertical bar the orientation is dependent on whether the control flow is running left to right or top to bottom. They indicate the start and end of concurrent threads of control. The following diagram shows an example of their use. A join is different from a merge in that the join synchronizes two inflows and produces a single outflow. The outflow from a join cannot execute until all inflows have been received. A merge passes any control flows straight through it. If two or more inflows are received by a merge symbol, the action pointed to by its outflow is executed two or more times. Expansion Region. An expansion region is a structured activity region that executes multiple times. Input and output expansion nodes are drawn as a group of three boxes representing a multiple selection of items. The keyword iterative, parallel or stream is shown in the top left corner of the region. Exception Handlers. Exception Handlers can be modelled on activity diagrams as in the example below. Interruptible Activity Region. An interruptible activity region surrounds a group of actions that can be interrupted. In the very simple example below, the Process Order action will execute until completion, when it will pass control to the Close Order action, unless a Cancel Request interrupt is received, which will pass control to the Cancel Order action. Partition. An activity partition is shown as either a horizontal or vertical swimlane. In the following diagram, the partitions are used to separate actions within an activity into those performed by the accounting department and those performed by the customer.