# Business Process Configuration according to Data Dependency Specification
## 4 Conf-BP Framework: A Configurable System to Create Imperative BP
### Conf-BP Declarative Specification (ConfD-BP). A Formalization of the Language
#### 4.1.4 Specification Applied to the Trip Planner Example  
In the trip planner example, the activities involved in the model share some data, being necessary to create a work-flow aware data input and output. Figure 3 shows the trip example following the formalization detailed in the previous section and the notation described in [15]. Hence, there are eight \(\mathbb{PDI}\) whose values are given by the customer:  
* **departingFrom:** city from where the customer departs. * **goingTo:** destination city. * **departDate:** the day that the customer prefers to depart. * **returnDate:** the day that the customer prefers to return. * **airportDepartingFrom:** the departure airport to catch the flight. * **airportGoingTo:** the arrival airport for the flight. Four different activities are combined in order to perform the package trip offered to customers. This package trip is composed of flights, hotel rooms and, if necessary, the renting of a car to drive to an alternative departure airport, or from the arrival airport to the destination city. Each activity  
Figure 3: Example of Trip Planner Formalization using DOOPT-DEC [15]. calculates the price as output of the activities for each data input. For the example, the activities (\(A_{i}\)) and their \(\mathbb{ADI}\) are:  
* Flight Search Activity (\(A_{F}\)) returns the price of flights for a tuple of values for the data input. \(\mathbb{DATA\_INPUT}(A_{F})=\{\text{departingFrom, goingTo, departDate, returnDate}\}\) \(\mathbb{DATA\_OUTPUT}(A_{F})=\{\text{flightPrice, flightInformation, DATA\_INPUT}(A_{F})\}\) where \(\text{flightInformation}=\{\text{outwardArrivalDate, returnArrivalDate, seat, number,...}\}\) The pre- and post-conditions of the activity \(A_{F}\) are: \(\mathbb{PRE}(A_{F})=\text{deparDate}\geq\text{SystemDate}\ AND\ returnDate\geq\text{deparDate}\ AND\ departingFrom\
eq\text{goingTo}\) \(\mathbb{POST}(A_{F})=flightInformation\
eq null\to priceFlight>0\)
* Hotel Search Activity (\(A_{H}\)) is employed to ascertain the cost of booking a hotel room. \(\mathbb{DATA\_INPUT}(A_{H})=\{\text{location, checkInDate, checkOutDate}\}\) \(\mathbb{DATA\_OUTPUT}(A_{H})=\{\text{hotelPrice, hotelInformation, DATA\_INPUT}(A_{H})\}\) The pre- and post-conditions of the activity \(\text{A}_{H}\) are: \(\mathbb{PRE}(A_{H})=\text{check}\geq\text{SystemDate}\ AND\ checkInDate<\text{checkOutDate}\) \(\mathbb{POST}(A_{H})=\text{hotelInformation}\
eq null\to hotelPrice>0\)
* Car Rental Search Activities (\(A_{CR1}\) and \(A_{CR2}\)) are employed to determine the price of renting a car. Two cars can be rented during the trip, one at the source (\(A_{CR1}\)) and another at the destination (\(A_{CR2}\)). Nevertheless, the price of renting both cars is represented by \(A_{CRx}\), where \(x=\{1\lor 2\}\), depends on these entries: \(\mathbb{DATA\_INPUT}(A_{CRx})=\{\text{departingFrom, goingTo, departDate, returnDate}\}\) \(\mathbb{DATA\_OUTPUT}(A_{CRx},A_{CRx})=\{\text{carRentalPrice, carRentalInformation, DATA\_INPUT}(A_{CRx})\}\) The pre- and post-conditions of the activity \(A_{CRx}\) are: \(\mathbb{PRE}(A_{CRx})=\text{deparDate}\geq\text{SystemDate}\ AND\ departDate<\text{returnDate}\) \(\mathbb{POST}(A_{CRx})=\text{carRentalInformation}\
eq null\to\text{carRentalPrice}>0\)  
Therefore, the output of the process, \(\mathbb{PDO}\), are the outputs of the activities, which contain the information about the various components of the trip, as well as the total price of the trip (_total Price_). The customer only provides data to the sub-process: the eight \(\mathbb{PDI}\). Then, each search activity only uses the necessary data, as detailed in its specification, for the searching. On the one hand, the sub-process can have input data that is not used by some search activity: for example, the Flight Search Activity takes the possible dates and cities given by the customer to the sub-process, meanwhile, the Hotel Search Activity takes the possible dates, the destination city and the preferences.