A graph consists of an organised pattern of activities and their dependencies, as well as separate processes. In other words a graph is a visualisation of a set of numbers and their relation to one another in the form of e.g. curves and lines.
An activity is a process or a task in a workflow that describes something that a person must do in order for the activity to be fulfilled.
Activities can be linked together by connections to create dependencies. An activity can represent:
- The invocation of an operation.
- A step in a business process.
- An entire business process.
Activities can be decomposed into sub activities if necessary and does not have to be atomic.
The connections available in DCR Graph are:
||A condition between two activities ensures that the second activity cannot be executed unless the first is excluded or has been executed at least once.|
||A response, or goal, ensures that once the first activity has been executed the other activity becomes a goal, that must eventually be executed or excluded|
||The include relation includes other activities upon execution|
||The exclude relation excludes other activities upon execution|
||The milestone relations blocks the second activity if the first is currently a goal (response) and included|
||The spawn relation spawns a new sub-process|
The condition connection in DCR Graph ensures that an activity connected to another activity cannot happen before the first activity is executed or excluded in the graph. It can be seen as B cannot happen before A has been done (or excluded)
The response connection in DCR Graph is a response to an action taken. i.e. When an activity is executed and it has a response to another activity, it changes that activities state to pending meaning that the activity has to be executed (or excluded) in order to end the process. When A happens B must happen at some point
The include connection in DCR Graph is a connection that includes activities. This is used to include, excluded activities into the graph. I.e. When A is executed it includes B into the graph.
The exclude connection in DCR Graph is an connection that when executed excludes the activity it is connected to. This mean that when an exclude connection is between to activities and the first activity is executed, the second activity disappears and cannot be executed. I.e. When A happens B cannot be done.
Activities can be nested under other activities.
Every graph can be considered a process, but a graph can contain sub-processes. A sub-process can be either
- single-instance sub-process – meaning it is just a process embedded inside the parent graph
- multi-instance sub-process – which can be spawned to run separately of the parent graph
Sub-processes can either be created within the parent graph or created as it’s own graph and linked into the parent graph using the import graph capabilities.
DCR graphs can be simulated, either by one person playing all the roles or by several people each playing some of the roles found in the graph. This enables users to obtain a better understanding of how the graph works, simply by playing the graph as a computer game. The portal even offers “friends” that can be used to play certain roles, at the moment two friends are offered.
- Aggressive user – the aggressive user executes all activities that are enabled
- Lazy user – the lazy user only executes activities that are enabled and pending