BPMN (Business Process Modeling Notation) is the most recognized standard used by business users for an end-to-end business process modeling.
A process is an ordered set of activities performed within a company or organization. In BPMN, a process is depicted as a network of Flow Objects. Flow objects are a set of activities and control nodes. They are the main objects expressing the semantics of a process model and are represented by Events, Gateways and Activities (Tasks, Sub-Processes).
In a process context, a BPMN Task is an atomic activity, but executing a task implies in general the following steps:
- Start the activity (e.g. by sending an e-mail)
- Waiting for the end of the activity
- Handling the event (signal, message, etc.) that signifies the end of the activity.
Thus, we chose to map the BPMN specification directly to a UML state machine because the entry action, wait duration and signal reception of UML states correspond directly to the steps of a BPMN task explained above. Additionally, mapping BPMN tasks to UML states enables the process implementer to adapt the state engine to technical constraints given by the environment (see Mapping BPMN to UML).
Furthermore, since BPMN processes and pools can communicate with other BPMN processes and pools via messages only, pools and processes are mapped to UML state machine instances that interact via UML signals only.