Previous UML Classes Table of Contents UML Packages Next


12.3.8 ActivityNode

BasicActivities , CompleteActivities , FundamentalActivities , IntermediateActivities , CompleteStructuredActivities


   An activity node is an abstract class for points in the flow of an activity connected by edges.

*Generalizations

*Description

   An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes.

   (BasicActivities ) Nodes can be replaced in generalization and (CompleteActivities ) be contained in interruptible regions.

*Attributes

   No additional attributes

*Associations

   Package FundamentalActivities

Issue 8215 - add subsets constraint

   Package BasicActivities

   • incoming : ActivityEdge [0..*] Edges that have the node as target. • outgoing : ActivityEdge [0..*] Edges that have the node as source.

   Issue 8215 -add redefines constraint 9090 -rename as ‘redefinedNode’ and adjust constraint

   • redefinedNode : ActivityNode [0..*] Inherited nodes replaced by this node in a specialization of the activity. {Subsets RedefinableElement ::redefinedElement}

   Package IntermediateActivities

Issue 8215 -add subsets constraint

   • inPartition : Partition [0..*] Partitions containing the node. {Subsets ActivityNode::inGroup}

   Issue 8215 - move inStructuredNode to CompleteActivities package list (remove package header for

   StructuredActivities) and add subsets constraints

   Package CompleteActivities

*Constraints

   [1] Activity nodes can only be owned by activities or groups.

   Package StructuredActivities

   [1] Activity nodes may be owned by at most one structured node.

*Semantics

   Nodes can be named, however, nodes are not required to have unique names within an activity to support multiple invocations of the same behavior or multiple uses of the same action. See Action, which is a kind of node. The fact that Activity is a Namespace , inherited through Behavior, does not affect this, because the containment of nodes is through ownedElement, the general ownership metaassociation for Element that does not imply unique names, rather than ownedMember. Other than naming, and functionality added by the complete version of activities, an activity node is only a point in an activity at this level of abstraction. See the children of ActivityNode for additional semantics.

   Package BasicActivities

   Nodes inherited from more general activities can be replaced. See RedefinableElement for more information on overriding inherited elements, and Activity for more information on activity generalization. See children of ActivityNode for additional semantics.

*Notation

   The notations for activity nodes are illustrated below. There are three kinds of nodes: action node, object node, and control node. See these classes for more information.




   Action node Object node Control nodes

   Figure 12.50 - Activity node notation

*Examples

   This figure illustrates the following kinds of activity node: action nodes (e.g., Receive Order, Fill Order), object nodes (Invoice), and control nodes (the initial node before Receive Order, the decision node after Receive Order, and the fork node and Join node around Ship Order, merge node before Close Order, and activity final after Close Order).

   [order


   [order accepted]



   Invoice

   Figure 12.51 - Activity node example (where the arrowed lines are only the non-activity node symbols)

   Activity nodes are introduced to provide a general class for nodes connected by activity edges.

*Changes from previous UML

   ActivityNode replaces the use of StateVertex and its children for activity modeling in UML 1.5.