## 2 Business Process Modeling with BPMN  
Business Process Management (BPM) [4] is a holistic approach to improving organization's workflow focusing on re-engineering of processes. Its goal is to optimize procedures and increase efficiency and effectiveness by constant process improvement. Thus, BPM is often considered as a legacy or the next step after workflows [5], which are often defined in terms of automation of business processes during which documents, information or tasks are passed from one participant to another for action. However, BPM supports business processes using methods, techniques and software in the design, execution, control and analysis of processes involving humans, organizations, applications, documents and other information sources [6]. As BPM is restricted to operational processes, excluding processes that cannot be made explicit, its key aspect is a business process [7]. A business process is often described as a collection of related activities transforming different kinds of inputs into outputs. The main output of the whole process is mainly considered as a product or service, which constitutes a customer value. Although there are many process modeling languages [8], Business Process Model and Notation (BPMN) [1], adopted and maintained by the OMGgroup, is one of the most widely-used notations for modeling processes. Business Process Model and Notation (BPMN) [1] contains a set of graphical elements for constructing diagrams depicting the components of the process and the way it should be executed. The present BPMN 2.0 version of the specification enables process engineers and business analysts to design process, choreography, as well as collaboration models. However, the most popular are process models [9], and these will be used in our approach. The basic subset of BPMN elements is presented in Figure 2. It contains activities that represent tasks executed within the process. This notation allows also for modeling data and control flow, including splits and joins of execution paths, conditional operations, loops, event-triggered actions, paths and communication processes. Activities, gateways and events constitute flow objects, which can be connected by sequence flows determining the order of task execution. Figure 2: A core subset of BPMN workflow model elements. There are various ways of modeling more advanced or complex constructs in BPMN, e.g., time issues [10; 11]. Sometimes, pure BPMN is not enough, and the notation has to be extended to represent modern concepts such as process tailoring [12], multiple process instances [13] or ubiquitousness [14]. However, regarding the routing of a process, five basic control-flow patterns can be distinguished [15], which include simple sequences, parallel splits, synchronization, exclusive choices and simple merges (see the examples shown in Figure 3):  
1. Sequence: simple succession of activities. 2. Parallel split: split in a single thread of control into multiple threads that can execute in parallel. 3. Synchronization: synchronization of multiple parallel branches into a single thread. 4. Exclusive choice: representation of a decision point in a process where one of several branches is chosen. 5. Simple merge: a point in a process where two or more alternative branches come together without synchronization. To distinguish business functions or parts of the system related to certain flow objects, the concept of swim lanes is usually used in BPMN notation. Business process participants, which can either be entities within an organization or different collaborators in a process [16], are represented by pools. Their sub-partitions, which represent specific objects or roles, are called lanes. For our approach, let us define a simple BPMN process model as a tuple: \(\mathbb{P}=(\mathbb{O},\mathbb{F})\), where:  
* \(\mathbb{O}\) is the set of flow objects,
* \(\mathbb{F}\subset\mathbb{O}\times\mathbb{O}\) is the set of sequence flows.