Structured Activity elements are used in Activity diagrams. A Structured Activity is an activity node that can have subordinate nodes as an independent Activity Group. No other Activities or their side effects should interfere with this Activity's processing.
Enterprise Architect provides two forms of Structured Activity - basic and specialized. It also applies the mechanism for creating Structured Activities to creating composite Activity elements quickly and simply.
The two basic Structured Activities are:
- Structured Activity Node - represents an ordered arrangement of executable Activity nodes (Actions, Decisions, Merges and so on) that can include branched and nested nodes; this is the base element from which the other types of Structured Activity are derived
- Sequential Node - represents a sequential arrangement of executable Activity nodes.
The two specialized Structured Activities are used to effectively model discreet patterns within an activity graph, defined in Clauses or Partitions:
- Conditional node - represents an arrangement of Actions and Activities where choice determines which Activities are performed
- Loop node - represents a sequence of Actions and Activities that are - or can be - repeated on the same object.
All four Structured Activity Nodes are created as composite elements. However, for the Loop Node and Conditional Node elements you must create the child element structure on the parent diagram within the node element itself, as for a Composite State. You cannot develop the partitioned structure of the nodes on a child diagram.
For this reason, the Show Composite Diagram facility is not available for the Loop Node and Conditional Node. It is also not available on the Structured Activity Node, as this is the base element for the Loop and Conditional Nodes. You can, however, use the two basic nodes as composite elements, and display the child diagram structure on the parent Sequential node.
When you create a Structured Activity, by selecting the icon from the Activity page of the Toolbox, the following context menu displays:
The first two options specifically create a Loop or Conditional Node. The Other option displays the New Structured Activity dialog, on which you can select to create any of the four nodes, or a simple Composite Activity element.
OMG UML Specification
Structured Activity Node
The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 409) states:
A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an ActivityGroup. The subordinate nodes must belong to only one structured activity node, although they may be nested.
A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting.
The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 408) states:
A sequence node is a structured activity node that executes its actions in order.
The OMG UML specification (UML Superstructure Specification, v2.1.1, pp. 384-385) states:
A loop node is a structured activity node that represents a loop with setup, test, and body sections.
Each section is a well-nested subregion of the activity whose nodes follow any predecessors of the loop and precede any successors of the loop. The test section may precede or follow the body section. The setup section is executed once on entry to the loop, and the test and body sections are executed repeatedly until the test produces a false value. The results of the final execution of the test or body are available after completion of execution of the loop.
The OMG UML specification (UML Superstructure Specification, v2.1.1, p.355) states:
A conditional node is a structured activity node that represents an exclusive choice among some number of alternatives.
A conditional node consists of one or more clauses. Each clause consists of a test section and a body section. When the conditional node begins execution, the test sections of the clauses are executed. If one or more test sections yield a true value, one of the corresponding body sections will be executed. If more than one test section yields a true value, only one body section will be executed. The choice is nondeterministic unless the test sequence of clauses is specified. If no test section yields a true value, then no body section is executed; this may be a semantic error if output values are expected from the conditional node.