Pattern |
Rating |
Motivation |
| Sequence |
+ |
Directly supported by directed arcs between nodes. |
| Parallel Split |
+ |
Supported by the ForkNode construct. It may also be represented implicitly by joining an action or activity to several subsequent actions or activities. |
| Synchronization |
+ |
Supported by the JoinNode construct. It can also be implicitly represented. |
| Exclusive Choice |
+ |
Supported by the DecisionNode construct where the guard conditions on the outgoing edges are exclusive. |
Simple Merge |
+ |
Supported by the MergeNode construct. |
| Multi-Choice |
+ |
Supported by the ForkNode construct with guard conditions on the outgoing edges. |
| Structured Synchronizing Merge |
- |
Not supported. The specific configuration of the Join-Spec condition to achieve this is unclear. |
| Multi-Merge |
+ |
Supported by the MergeNode construct. |
| Structured Discriminator |
+/- |
The specific configuration of the Join-Spec condition to achieve this is unclear. |
| Arbitrary Cycles |
+ |
Unstructured cycles can be captured in UML 2.0 ADs. |
| Implicit Termination |
+ |
Supported via the FlowFinalNode construct |
| Multiple Instances without Synchronization |
+ |
Supported by spawning off new activity instances in a loop. |
| Multiple Instances with a Priori Design-Time Knowledge |
+ |
Supported through the use of the ExpansionRegion construct. |
| Multiple Instances with a Priori Run-Time Knowledge |
+ |
Supported through the use of the ExpansionRegion construct. |
| Multiple Instances without a Priori Run-Time Knowledge |
- |
Not supported. No means of adding addtional activity instances after commencement. |
| Deferred Choice |
+ |
Supported through a ForkNode and a set of AcceptSignal actions, one preceding each action in the choice. |
| Interleaved Parallel Routing |
- |
Not supported. No notion of state within UML 2.0 ADs. |
| Milestone |
- |
Not supported. No notion of state within UML 2.0 ADs. |
| Cancel Activity |
+ |
Supported by incorporating the activity in an interruptible region triggered either by a signal or execution of another activity. |
| Cancel Case |
+ |
Supported by incorporating all of the activities in an interruptible region triggered either by a signal or execution of another activity. |
| Structured Loop |
+ |
Supported via the LoopNode construct. |
| Recursion |
- |
Not supported. No means of specifying recursive composition with a process model. |
| Transient Trigger |
+ |
Supported using the AcceptEventAction construct for singal processing with explicit enablement. |
Persistent Trigger |
+ |
Supported via signals. |
| Cancel Region |
+ |
Supported by the InterruptibleActivityRegion construct. |
| Cancel Multiple Instance Activity |
+ |
Supported by including the activity in an interruptible region. |
| Complete Multiple Instance Activity |
- |
No means of cancelling remaining activity instances once a multiple instance activity has commenced. |
| Blocking Discriminator |
+/- |
The specific configuration of the JoinSpec condition to achieve this is unclear. |
| Cancelling Discriminator |
+ |
Supported by incorporating the incoming branches to the join in an interruptible region. The join has an outgoing weight of 1 from the interruptible region to the subsequent activity effectively cancelling all other branches when the first branch reaches the join. |
| Structured N-out-of-M Join |
+/- |
The specific configuration of the JoinSpec condition to achieve this is unclear. |
| Blocking N-out-of-M Join |
+/- |
The specific configuration of the JoinSpec condition to achieve this is unclear. |
| Cancelling N-out-of-M Join |
+ |
Supported by incorporating the incoming branches to the join in an interruptible region. The join has an outgoing weight of N from the interruptible region to the subsequent activity effectively cancelling all other branches when the Nth branch reaches the join. |
| Generalised AND-Join |
- |
Not supported. JoinNode semantics prevent this situation from arising. |
| Static Partial Join for Multiple Instances |
- |
Not supported. A MI activity can only complete when all N instances specified in the ExpansionRegion have completed. |
| Cancelling Partial Join for Multiple Instances |
- |
Not supported. A MI activity can only complete when all N instances specified in the ExpansionRegion have completed. |
| Dynamic Partial Join for Multiple Instances |
- |
Not supported. A MI activity can only complete when all N instances specified in the ExpansionRegion have completed. |
| Acyclic Synchronizing Merge |
+/- |
The specific configuration of the JoinSpec condition to achieve this is unclear. |
| General Synchronizing Merge |
- |
Not supported. No means of determining when a join should fire based on evaluation of the overall state of the process instance. |
| Critical Section |
- |
Not supported. No means of preventing concurrent execution of a set of activities. |
| Interleaved Routing |
- |
Not supported. No notion of state within UML 2.0 ADs. |
| Thread Merge |
+ |
Supported by including a weighted edge after the MI activity to any subsequent activity. |
| Thread Split |
+ |
Supported by linking multiple outgoing arcs from an activity (one for each execution thread required) to a MergeNode which then directs the various initiated threads of control down the same branch. |
| Explicit Termination |
+ |
Supported via the ActivityFinalNode construct. |