Previous UML Classes Table of Contents UML Packages Next


12.3.20 ControlNode

BasicActivities


   A control node is an abstract activity node that coordinates flows in an activity.

*Generalizations

   • ActivityNode (from BasicActivities , CompleteActivities , FundamentalActivities , IntermediateActivities , CompleteStructuredActivities ) on page 347.

*Description

   A control node is an activity node used to coordinate the flows between other nodes. It covers initial node, final node and its children, fork node, join node, decision node, and merge node.

*Attributes

   No additional attributes

*Associations

   No additional associations

*Constraints

   No additional constraints

*Semantics

   See semantics at Activity. See subclasses for the semantics of each kind of control node.

*Notation

   The notations for control nodes are illustrated below: decision node, initial node, activity final, and flow final.

   Fork node and join node are the same symbol, they have different semantics and are distinguished notationally by the way edges are used with them. For more information, see ForkNode and JoinNode below.


Figure 12.72 - Control node notations

*Examples

   The figure below contains examples of various kinds of control nodes. An initial node is depicted in the upper left as triggering the Receive Order action. A decision node after Received Order illustrates branching based on order rejected or order accepted conditions. Fill Order is followed by a fork node that passes control both to Send Invoice and Ship Order. The join node indicates that control will be passed to the merge when both Ship Order and Accept Payment are completed. Since a merge will just pass the token along, Close Order activity will be invoked. (Control is also passed to Close Order whenever an order is rejected.) When Close Order is completed, control passes to an activity final.

   [order

Figure 12.73 - Control node examples (with accompanying actions and control flows)

   Invoice

   Control nodes are introduced to provide a general class for nodes that coordinate flows in an activity.

*Changes from previous UML

   ControlNode replaces the use of PseudoState in UML 1.5 activity modeling.