The BPMN diagrams should comply to the following rules:
All BPMN elements supported by the import are listed below.
BPMN Element | Comment |
---|---|
Pools & Lanes | Pools are supported and mapped to UML State Machines communicating via messages. |
Tasks | All tasks are mapped to UML. It is important to distinguish between User Tasks and all other tasks that can be executed automatically (Script Task, Service Task, Receive Task, etc.). |
Start / End Events | All start/end events are mapped to UML. |
Intermediate Events | All intermediate messages are mapped to UML events. |
Sequence Flows | All sequence flows are mapped to UML transitions. |
Message Flows | Can be used in the diagram but are ignored when being imported. |
Gateways | Or-Gateways are not supported yet, all other gateways are mapped to UML state machine elements. |
Subprocesses | Subprocesses are mapped to separate UML State Machines. |
Compensation | Limited support: Non-nested compensation associations are supported. |
Associations and Data Objects | Can be used in the diagram but are ignored when being imported. |
Process properties | Can be used in the diagram but are ignored when being imported. |
There is some severe critic on the purpose of BPMN (Reviewing BPMN 2.0, The seven fallacies of BPMN). Nevertheless, more and more people are using BPMN from sketching business processes to defining process architectures. It is even possible to see it as software specification language for architects.
However, the prerequisite that BPMN diagrams are usable as base (constraint) for executable UML models is:
BPMN pools must correspond to systems and/or human roles. One or more of these systems must be the BPMN platform (i.e. the E2E Bridge).
This requirement is crucial, because it defines what the BPMN engine can control and what it cannot. For example, many real live business processes involve tasks distributed over different organizations (even companies) and systems. A central BPMN- or workflow engine cannot generally control all involved parties. For instance, it is not possible to control a sequence of tasks executed in a backend system (e.g. SAP) or tasks solely executed by humans. |