UML AD Evaluation Results

Evaluation results for UML Activity Diagrams version 2.0 against the workflow control-flow patterns

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.

Evaluation results for UML Activity Diagrams version 2.0 against the workflow data patterns

Pattern

Rating

Motivation

Task Data +/- Indirectly supported where a local action language is utilised which provides action-specific variables
Block Data + Directly supported through parameters to activities which are accessible to all activity components.
Scope Data - Not supported
Multiple Instance Data + Directly supported through the Expansion Kind and data objects.
Case Data - Not supported
Folder Data - Not supported
Workflow Data + Directly supported through Object-Nodes which are potentially accessible to all of the components in a UML 2.0 AD
Environment Data - Not supported
Task to Task + Directly supported by the ObjectNode construct.
Block Task to SubWorkflow Decomposition + Supported by parameter passing between the block task and the decomposition.
SubWorkflow Decomposition to Block Task + Directly supported by the ExpansionRegion construct (where the ExpansionKind mode is set to parallel)
To Multiple Instance Task + Directly supported by the ExpansionRegion construct (where the ExpansionKind mode is set to parallel).
From Multiple Instance Task + Directly supported by the ExpansionRegion construct (where the ExpansionKing mode is set to parallel)
Case to Case - Not supported
Task to Environment - Push-Oriented - Not supported
Environment to Task - Pull-Oriented - Not supported
Environment to Task - Push-Oriented - Not supported
Task to Environment - Pull-Oriented - Not supported
Case to Environment - Push-Oriented - Not supported
Environment to Case - Pull-Oriented - Not supported
Environment to Case - Push-Oriented - Not supported
Case to Environment - Pull-Oriented - Not supported

Workflow to Environment - Push-Oriented

-

Not supported

Environment to Workflow - Pull-Oriented - Not supported
Environment to Workflow - Push-Oriented - Not supported
Workflow to Environment - Pull-Oriented - Not supported
Data Transfer by Value - Incoming - Not supported
Data Transfer by Value - Outgoing - Not supported
Data Transfer - Copy In/Copy Out - Not supported
Data Transfer by Reference - Unlocked - Not supported
Data Transfer by Reference - With Lock + Directly supported. The standard means of passing data elements to an activity is via parameters based on data tokens.
Data Transformation - Input + Supported by the ObjectFlow transformation behaviour which allows transformation functions to be applied to data tokens as they are passed along connecting edges between activities.
Data Transformation - Output + Supported by the ObjectFlow transformation behaviour which allows transformation functions to be applied to data tokens as they are passed along connecting edges between activities.
Task Precondition - Data Existence + Directly supported. Both action and activity constructs include local preconditions based on logical expressions framed in OCL.
Task Precondition - Data Value + Directly supported. Both action and activity constructs include local preconditions and postconditions based on logical expressions framed in OCL.
Task Postcondition - Data Existence + Directly supported. Both action and activity constructs include local preconditions and postconditions based on logical expressions framed in OCL.
Task Postconditon - Data Value + Directly supported. Both action and activity constructs include local preconditions and postconditions based on logical expressions framed in OCL.
Event-Based Task Trigger + Supported by the AcceptEventAction construct.
Data-Based Task Trigger - Not supported
Data-Based Routing + Supported via the DecisionNode construct and guard conditions on ActivityEdges

Evaluation results for UML Activity Diagrams version 2.0 against the workflow resource patterns

Pattern

Rating

Motivation

Direct Allocation + Directly supported by basing a partition on a single object (resource) instance.
Role-Based Allocation + Directly supported via classifiers on partitions.
Deferred Allocation - Not supported
Authorisation - Not supported

Seperation of Duties

- Not supported
Case Handling - Not supported
Retain Familiar - Not supported
Capability Based Allocation - Not supported
History Based Allocation - Not supported
Organisational Allocation - Not supported
Automatic Execution + Directly supported
Distribution by Offer - Single Resource - Not supported
Distribution by Offer - Multiple Resources - Not supported
Distribution by Allocation - Single Resource + Resource allocation is immediate once an action is triggered.
Random Allocation - Not supported
Round Robin Allocation - Not supported
Shortest Queue - Not supported
Early Distribution - Not supported
Distribution on Enablement + Directly supported. All actions in a partition are associated with the resource responsible for the partition when they are triggered.
Late Distribution - Not supported
Resource-Initiated Allocation - Not supported
Resource-Initated Execution - Allocated Work Item - Not supported
Resource-Initiated Execution - Offered Work Item - Not supported

System Determined Work Queue Content

- Not supported
Resource-Determined Work Queue Content - Not supported
Selection Autonomy - Not supported
Delegation - Not supported
Escalation - Not supported
Deallocation - Not supported
Stateful Reallocation - Not supported
Stateless Reallocation - Not supported
Suspension/Resumption - Not supported
Skip - Not supported
Redo - Not supported
Pre-Do - Not supported
Commencement on Creation + Directly supported. An action is assumed to be live as soon as it receives a control-flow token
Commencement on Allocation - Not supported
Piled Execution - Not supported
Chained Execution + Directly supported. Once an action is completed, subsequent actions receive a control-flow token and are triggered immediately.
Configurable Unallocated Work Item Visibility - Not supported
Configurable Allocated Work Item Visibility - Not supported
Simultaneous Execution + Directly supported.
Additional Resources - Not supported