# Business Process Configuration according to Data Dependency Specification
## 4 Conf-BP Framework: A Configurable System to Create Imperative BP
### Conf-BP Imperative Modelling (ConfM-BP)  
Once the declarative model is described, it can be possible to obtain an imperative model that satisfies the data dependencies. Between the different options, we propose the most optimal, according to the execution time of the instances of the process. To model the BP work-flow in an imperative way, the standard BPMN [47] is chosen, since it is supported by several commercial BPMS. The activities will be combined in a sub-process that starts and ends with the corresponding events. The various order combination of the activities will be represented with a sequence or by means of the control flows: parallel, exclusive or inclusive execution.  
Figure 4 shows how the imperative configuration obtained from the declarative description is included in a business process model. The activity _\"Supply Input Data Values\"_ provides the input data values used during the process execution. As was commented before, sometimes the most appropriate input data to optimize the business product are unknown at design time, since it depends  
on each instance. The used example, the trip planner, has these characteristics, since the dates and city airport must be found, as detailed in [15]. The sub-process _\"Execute sub-process\"_ represents the imperative model that should be created according to the data dependencies described and detailed in the following sections. This sub-process is formed of the set of activities involved in the declarative model by means of the BPMN connections and gateways as detailed in Section 4.3. Several possible imperative models exist that satisfy the data dependencies, but our objective is to find the optimal model with respect to execution time of any instantiation of the BP.  
A simplification of the possibilities of the problem are shown in Figure 5, where only the activities _\"Flight Search\"_ and _\"Car Rental 1 Search\"_ are considered for the modelling configuration. Analyzing the five possibilities we can find out that: (a) and (b) describe a sequence relation between two activities that can mean that one of the activities has priority order over the another activity, for the example it will be used if 'Car Rental 1' cannot be executed until 'Flight Search' ends or vice versa, and; (c), (d) and (e) represent the execution of one (XOR gateway), more than one (or gateway), or every activities at the same time. For the example it will be used if there not exists an order dependency between the activities. Therefore, which is the best model option to satisfy our trip problem?  
Figure 4: Imperative Representation of the Declarative Model.  
Figure 5: _“Flight Search”_ and _“Car Rental 1 Search”_ Model Possibilities.  
This modelling combination and analysis increase considerably as soon as the number of activities grows. Hitherto, this configuration has been made by human experts, we propose obtain it automatically in the Conf-BP Framework. Therefore, in order to transform this declarative model into an imperative model that supports any value of input variables of the process by considering the data dependencies, we propose the use of the Constraint Programming paradigm, as explained in Section 4.3.