Activities (OOM)

An activity is the invocation of a manual or automated action, such as "send a mail", or "increment a counter". When the activity gains control, it performs its action and then, depending on the result of the action, the transition (control flow) is passed to another activity.

An activity can be created in the following diagrams:

PowerDesigner's support for UML 2 allows you a great deal of flexibility in the level of detail you provide in your activity diagrams. You can simply link activities together to show the high-level control flow, or refine your model by specifying the:



In the example above, the ReceiveCheckLogin activity has an action type of "Accept call" (see Specifying Action Types), and passes the two output parameters "login" and "password" (see Specifying Activity Parameters) to a series of decisions that lead to the ReplyCheckLogin. This last activity has an input parameter called "Result" and an action type of Reply Call.

Atomic and Decomposed Activities

An activity can be atomic or decomposed. Decomposed activities contain sub-activities, which are represented in a sub-diagram. For more information, see Decomposed Activities and Sub-Activities.

A PowerDesigner activity is equivalent to a UML activity (ActionState or SubactivityState) and an activity graph. In UML, an ActionState represents the execution of an atomic action, and the SubactivityState is the execution of an activity graph (which is, in turn, the description of a complex action represented by sub-activities).

The following table lists the mappings between UML and PowerDesigner terminology and concepts:

UML Objects

PowerDesigner Objects

ActionState

Activity

SubactivityState

Composite activity

Activity Graph

Composite activity

PowerDesigner combines a SubactivityState and an activity graph into a decomposed activity so that you can define sub-activities directly under the parent without defining an additional object. If you do need to highlight the difference, you can create activities directly under the model or the package, and use activity shortcuts to detail the activity implementation, so that the SubactivityState corresponds to the shortcut of a decomposed activity.