# Business Process Configuration according to Data Dependency Specification
## 1 Introduction  
A business process, henceforth referred to as BP, consists of a set of activities that are executed in coordination within an organizational and technical environment. These activities jointly attain a business goal [1]. Several languages propose an imperative representation of business processes, whose specification allows business experts to describe an explicit order of execution between activities, and to transform the process into an executable model (for example, that activities A, B and C are executed sequentially, or activities D and E are executed in parallel) [2; 3; 4; 5; 6]. Sometimes the order of the activities is therefore derived from the data dependencies, since these dependencies allow different configurations. In those cases, the imperative languages fail in the consideration of the data dependencies between activities. Configurable work-flows permit to include a degree of freedom about how the activities are related according to their data dependencies. Configurable models tend to use a declarative representation of the configurable aspects. Although the imperative process models are significantly more understandable than declarative models [7; 8], it is sometimes very difficult or even impossible to describe a problem in an imperative way [9; 10]. One of the cases in business processes, where this difficulty can be found, is when the data relation can determine different activities order. The variation of the model is the reason several authors have proposed languages for the definition of BPs as declarative models [11; 12; 13; 14]. Unfortunately, the data dependencies and its relation with declarative description has not been faced up. This paper develops two ideas: (1) propose a declarative description of the activities that form a BP, including the data dependencies between them; (2) based on this declarative model, the declarative BP is automatically transformed into an imperative model where the work-flow is defined to minimize the execution time of the instances when the process is executed, and keeping the data dependencies relations. To obtain the imperative model, we propose the use of Constraint Programming, an Artificial Intelligence technique. The analysis of the data interchanged during the process execution can affect to two aspects to optimize a BP: (i) attainment of a better business product, for example, by reducing the costs or satisfying customers' preferences; and, (ii) the reduction of the execution time of the instances. The problem of determining the best product in terms of the input and output data of the activities is presented in [15]. In these studies only the first type of aspect is solved, specifically, the way in which the input data can influence the successful execution of a process is analyzed in order to find an optimized product. On the other hand, in the proposal presented in this paper, these previous works are extended to include the second aspect, the optimization of the execution of the instances regarding the data dependencies. How to order the activities by considering these data dependencies in an imperative representation is a hard and difficult task. It is a hard task because it requires an exhaustive analysis of the data dependencies, and it is a difficult task because the graphical representation of the process is not simple, being able to become a \"spaghetti\" process [16]. To support business experts in the design task, we propose an automatic transformation from the declarative model into an optimal imperative model where the execution time is minimized. The main reason of transforming declarative model into an imperative model is that imperative models are easier to implement in commercial Business Process Management Systems (BPMS). Therefore, the aim of this article is to present a framework capable of obtaining the model configuration of the imperative description from a declarative specification based on data dependencies using Constraint Programming.