On Maintaining Consistency of Process Model Variants - Springer Link

17 downloads 28559 Views 284KB Size Report
Keywords: Business process design, Reuse, Querying business processes, Pro- cess variants. ... We call this models partial process models. For the concrete ...
On Maintaining Consistency of Process Model Variants Emilian Pascalau1 , Ahmed Awad1 , Sherif Sakr2 , and Mathias Weske1 1 Hasso-Plattner-Institute University of Potsdam, Germany {emilian.pascalau,ahmed.awad,mathias.weske}@hpi.uni-potsdam.de 2 National ICT Australia (NICTA) University of New South Wales, Australia [email protected]

Abstract. Today’s enterprises are dynamic where many variances of business process models can exist due to several reasons such as: the need to target different customer types, rely on particular IT systems or comply with specific country regulations. Automated maintenance of the consistency between process variants is an important goal that saves the time and efforts of process modelers. In this paper, we present a query-based approach to maintain consistency among process variants. We maintain the link between the variant process models by means of defining process model views. These views are defined using, BPMN-Q, a visual query language for business process models. Therefore, dynamic evaluation for the defined queries of the process views guarantee that the process modeler is able to get up-to-date and consistent status of the process model. In addition, our view-based approach allows the building of a holistic view of related variants of the same process model. Keywords: Business process design, Reuse, Querying business processes, Process variants.

1 Introduction Business Process Management (BPM) [1] aims at the automated support and coordination of business in an integrated manner by capturing, modeling, implementing and controlling all activities taking place in an environment that defines the enterprise. Business processes enable a better understanding of the business by facilitating communication between business analysts and IT experts. Business processes, like many information systems, do not exist only under a single version which covers all the issues or the whole market. Instead, many variants of a process exist which are specialized for particular customer types, or for particular IT systems, or some country-specific regulations. However, business process customization and management is done mainly in a manual way which is error prone and time consuming. Multinational companies have to keep variants of business processes in order to be compliant with local regulations or domain specific settings. We can establish an analogy between process variants on the one hand and object oriented inheritance on the other hand. A process variant is like a child class, where a process variant (child) extends or overrides the behavior of the parent process. Usually, these variants are maintained manually. A direct result of this manual maintenance is the risk of inconsistency. M. zur Muehlen and J. Su (Eds.): BPM 2010 Workshops, LNBIP 66, pp. 289–300, 2011. c Springer-Verlag Berlin Heidelberg 2011 

290

E. Pascalau et al.

Inconsistency appears when a parent process’s behavior is updated without updating the child’s behavior accordingly. In this paper we present a query-based approach to maintain consistency among process variants. We define our approach in the context of a real life context (eBay) that has a set of innovative and special characteristics. Rather than the manual save-as style of processes to create variants, we keep the link between child and parent processes by means of defining views in child processes on the behavior of parent processes. These views are created by means of queries. Thus, a process variant combines concrete activities that are meant to provide the behavior specific to the new variation and queries that inherit behavior from parent processes. We call this models partial process models. For the concrete part of the variant, ordinary process modeling constructs are used, e.g., BPMN constructs. For the view part, we rely on BPMN-Q notations, a visual language for querying business processes models [2,3]. In particular, each time a child process is invoked for editing or execution, the view is evaluated against the parent processes and an up-to-date result is returned to the modeler. This view based approach has a two fold meaning: (1) To maintain consistency between variants of process models and (2) To extract variants from holistic process models and partially address the creation of holistic process models from variants. The remainder of this paper is organized as follows: We discuss some background knowledge about business process models and BPMN-Q in Section 2. To illustrate the problem, we introduce a real-world use case scenario in Section 3. Section 4 describes the details of our approach regarding the maintenance of variants consistency through the definition of process model views. An architectural framework that realizes the implementation of our approach is presented in Section 5. The related work is discussed in Section 6 before we conclude the paper in Section 7.

2 Preliminaries This section formally introduces process modeling and querying, which forms the groundwork for our approach. 2.1 Business Process Modeling Currently, there is a number of graph-based business process modeling languages, e.g. BPMN [4], EPC [5], YAWL [6], and UML Activity Diagram [7]. Despite their variance in expressiveness and modeling notation, they all share the common concepts of tasks, events, gateways (or routing nodes), artifacts, and resources, as well as relations between them, such as control flow. Without loss of generality, we can abstract from particular node types as their execution semantics are not vital to structural query matching, which is rather based on the concept of a process graph. Definition 1 (Process Model). A process model P is a connected graph (N, E), where N is a non-empty set of control flow nodes and E ⊆ N × N a nonempty set of directed control flow edges where •n (n•) stands for the set of immediate predecessor (successor) nodes of n ∈ N .

On Maintaining Consistency of Process Model Variants

291

A process model has exactly one start event nstart ∈ N with no incoming and at least one outgoing control flow edge, i.e., | • nstart | = 0 ∧ |nstart • | ≥ 1, and exactly one end event nend ∈ N with at least one incoming and no outgoing control flow edge, i.e., | • nend | ≥ 1 ∧ |nend • | = 0. Each other control flow node n ∈ N \ {nstart , nend } is on a path from nstart to nend . A connected sub-graph of a process model is a process model fragment. We refer to a specific type of process model fragments that have a single entry node and a single exit node [8] as process model components. Definition 2 (Process Model Component). A connected subgraph (N  , E  ) of a process model (N, E), where N  ∈ N, E  ∈ E, is a process model component P C iff it has exactly one incoming boundary node nin ∈ N  , i.e., •nin ⊆ N \ N  and one outgoing boundary node nout ∈ N  , i.e., nout • ⊆ N \ N  . 2.2 Business Process Model Querying Based on the definition of process models and process model components, we introduce the concept of process model queries, as a means to obtain business process components from a collection of business processes by structurally matching a query to each of them. BPMN-Q is a visual process model query language designed to help business process designers access repositories of business process models [2]. The language supports querying all the control and artifact concepts of business process models. Moreover, it introduces a set of new abstraction concepts that are useful for different querying scenarios. Definition 3 (BPMN-Q Query). A BPMN-Q query is a tuple Q = (QC, QCF, QP ) where: – QC is a finite set of control flow nodes in a query, – QCF ⊆ QC × QC is the control flow relation between control nodes in a query, – QP ⊆ QC × QC is the path relation between control nodes in a query, BPMN-Q Constructs. A BPMN-Q model is called a query. A query declaratively describes a structural connectivity that must be satisfied by a matching process model. In addition to the core business process modeling concepts, BPMN-Q introduces a new concept of Path edges. A path edge connecting two control flow nodes represents an abstraction over an arbitrary set of control flow nodes that could exist in between the matching process model. Matching Queries to Processes. A BPMN-Q query is matched to a candidate process model via a set of refinements to the query. With each refinement node (edge) in a query is replaced with the corresponding node (edge) of the matching process model. If one node can have more than one possible replacement within the process model, a new refined copy of the query is created for each possible replacement. We call the replacement a resolution of an element of the query. Figure 1(a) illustrates a sample process model definition using the BPMN notations, Figure 1(b) illustrates a sample definition of a process model view using the BPMN-Q notations and that nodes and edges highlighted in grey in Figure 1(a) illustrate the matching part of the process model.

292

E. Pascalau et al.

D

A

B

E

C

(a) Sample business process model in BPMN notation A

//

D

(b) A BPMN-Q query Fig. 1. An example of process model and query

3 Scenario With more than 90 million active users globally, eBay is the world’s largest online marketplace. eBay connects individual buyers and sellers, as well as small businesses in 38 markets using 16 languages1. eBay has huge repositories of business processes. Though, many of these processes are variants of other processes. We can argue that variability is imposed on a vertical axis (represented by different departments within the organization) and on a horizontal axis (emphasized by different business elements and/or business aspects, i.e., regulations, IT infrastructure, for example different Customer Relationship Management systems, customer types, countries, payment methods). The number of possible process variations is determined by the degree of freedom the system has, i.e., the number of possible arrangements of different business contexts. A business process that is influenced by 6 business context elements {b1 ..b6 }, e.g., country, region, etc, that respectively have the following number of subtypes {8, 2, 5, 5, 3, 7}, will end up having more than 8000 variants. The required management to ensure the consistency of the process models in such a context is a very difficult and complex undertaking. Current approaches, based on reference process models [9,10], start with a holistic model that gets specialized through a configuration process. As already argued in [11] the management of such huge models is extremely difficult. The modeler is required to know the process beforehand and only predefined configuration (defined beforehand by means of specific configurable nodes, or nodes annotated with labels) can be extracted. To illustrate the case of inconsistency, we are going to use the two processes from Figure 2. These processes are two real life variants of an eBay process model in the context of customer support. As the labels in figure state one of the models is called a Parent process and the second one is called a Child process. A child process can reuse either parts or an entire parent process. The terminology of child and parent 1

http://www.ebayinc.com/who; June 6th 2010.

On Maintaining Consistency of Process Model Variants

293

Child process (eBay UK) route to intercept queue

end and track call take call

create case manually in iPop

ask for authentication data

authentify manually via CSI

add customer to case

Help or refer to hotline, end and track call ask for issue

ask for item ID and assign to case

end and track call take call

Parent process

create case

ask for authentication data

authentify manually via CSI add customer to case

ask for issue

Fig. 2. Parent process vs. Child process

is related to the inheritance concept, as the child (sub) process reuses behavior from the parent (super) process, similarly to how subclasses reuse (inherit) functionality from the superclasses. Any arbitrary process can be used as a parent process. Currently, a child process is derived by making a copy of the parent process and editing that copy, e.g., adding new activities or arbitrary control flow elements. At this point, there is no connectivity between the parent and the child processes. That is, a parent process could be edited by another modeler who might add new functionality without it being reflected on the child process, thus causing inconsistency between the child and parent processes. Moreover, the overriding of the behavior of the parent process is also not tracked. The second perspective that we want to address concerns that of holistic models. Normally, modelers start with holistic models that contain the configurable nodes [9] where variants correspond to specific configurations. In this case, the management of process variants by means of holistic models that can be configured requires basically two major things: (i) The existence of the holistic model and (ii) The beforehand knowledge about which elements can be configured and what will be the outcome of the configuration. However, in the eBay situation this is not the case. Due to the complexity of the context, it is hard to have a holistic model that comprises more than 8000 variants. Manual creation and configuration of such a holistic model would be almost impossible. In this context, it is rather easier to create variants one by one. Nevertheless, we still need to deal with the problem of managing such a large number of variants. An elegant solution would automatically update a holistic model each time a new variant is created. This solution would address the first point above, the existence of a holistic model. However, the point of configuration is still open. Figure 3 depicts two variants out of which a holistic model needs to be created. There are at least two possibilities to create holistic models from the variants of processes. One is to purely merge the variants, by simply ”overlapping processes” and keeping only one copy of the elements that are the same (type, label and position in the control flow) in all processes, and adding all other different elements. The holistic model obtained by such an approach would not guarantee the maintenance of the initial behavior from the variants. Figure 4 depicts the holistic model of the two variants from Figure 3, created by simple merge. The holistic model itself created using this approach does not maintain

294

E. Pascalau et al.

route to intercept queue

eBay (UK) Phone System

take call

take call

create case manually in IPop

create case in IPop

ask for authentication data

ask for item ID and assign to case

authentify manually via CSI

add customer to case

ask for issue

ask for item ID and assign to case

route to intercept queue

eBay (DE)

Help or refer to hotline, end and track call

end and track call CSR

eBay Inc.

Help or refer to hotline, end and track call

end and track call CSR

eBay Inc.

PhoneSystem

b)

ask for authentication data

take call

authentify manually via CSI

add customer to case

ask for issue

a)

Fig. 3. Variants example

route to intercept queue

take call

create case in iPop create case manually in iPop

ask for item ID and assign to case

take call

route to intercept queue

authentify manually via CSI

ask for authentication data

Help or refer to hotline, end and track call

end and track call

add customer to case

ask for item ID and assign to case

ask for issue

Fig. 4. Holistic model by simple merge of variants from Figure 3 route to intercept queue

create case manually in iPop

authentify manually via CSI

route to intercept queue

Help or refer to hotline, end and track call

end and track call

ask for issue take call create case in iPop

ask for item ID and assign to case

take call

ask for authentication data

add customer to case ask for item ID and assign to case

Fig. 5. Holistic model that maintains also initial behavior of variants from Figure 3

the initial behavior specified in the two separate variants but with the use of queries the variants can still be extracted. The second approach would be to add control flow elements that would allow the holistic model to maintain also the individual variants behavior. A holistic model of the same variants in is shown Figure 3, that also maintains the initial behavior which is presented in Figure 5. Also in this case queries can easily retrieve the initial variants, without requiring the modeler to know which elements can be configured and which not. In addition the modeler will not be required to go through the complete model for configuration, which in the case of a holistic model that comprises more than 8000 variants would be almost impossible.

On Maintaining Consistency of Process Model Variants

295

Q2

Q1 Help or refer to hotline, end and track call

//

Route to intercept queue

take call

create case manually in iPop

ask for authentication data //

ask for issue

ask for item ID and assign to case

Fig. 6. A partial process model to express inheritance among process variants

4 Process Model Views to Manage Variants In Section 3, we explained two problems that stem from process variants management and configurable processes which are: variants consistency and deriving variants from holistic processes. In this section, we explain our approach to address these two problems by means of defining queries on process models. In this sense, we see process queries as a means to support reuse. We use BPMN-Q to create queries on other processes. To maintain the parent-child process consistency, we introduce the notion of partial process models, Definition 4, that describe a desired process model through a combination of process model fragments and process model queries. Thus, to derive a child process, instead of copying the parent process and then editing that copy, the modeler starts with a partial process model. In this partial process model, ordinary process modeling constructs, e.g., activities, events, are used to model the new behavior that distinguish the variant, we call these the concrete elements. On the other hand, to reuse behavior of the parent process, BPMN-Q queries are embedded within that partial process model. Each query declaratively describes the behavior to be inherited from a specific parent process. Next, queries and concrete parts of the process are connected via control flow edges. Definition 4 (Partial Process Model). A partial process model P = (F, Q, E) is a connected graph that consists of disjoint sets of process model fragments F and process model queries Q connected through directed edges E ⊆ (F × Q) ∪ (Q × F), where each outgoing boundary control flow node nout ∈ N of a process model fragment F ∈ F is connected to at least one incoming boundary control flow node nin ∈ QC of a process model query Q ∈ Q and vice versa. Figure 6 shows a partial process model that corresponds to the use case illustrated in Section 3. The partial process model is intended to show how the Child process of Figure 2 can be obtained and maintained from the Parent process, depicted in the same figure. In Figure 6, the parts with grey background represent new activities that are introduced on the child process. To keep the relationship with inherited behavior, queries are used. Q1 keeps the link with activity "take call" from the parent process model. Also, Q2 keeps the relationship with the behavior of the parent process between activity "ask for authentication data" on the one hand and a termination possibility and activity "ask for issue" on the other hand. Thus, if the parent process behavior is changed by means of, e.g., adding extra activities between

296

E. Pascalau et al.

"ask for authentication data" and the termination event or "ask for authentication data" and "ask for issue", this is updated automatically on the child process by evaluating the queries against the parent process. Once a partial process model is defined, it can be stored in the repository as a separate artifact that can be invoked in future. Indeed, there are two ways to invoke partial models. The first invocation is to view it. In this case, all queries in the partial model are matched to the respective parent processes. Matching parts are merged with concrete parts and the modeler is given an up-to-date view on how the child process looks like. In the view mode, the modeler might make changes to the process. In this case, if the change concerns overriding the behavior from the parent process, the modeler is warned and switched to the editing mode. In this sense, we partially address the problem of overriding behavior. The other invocation is to edit the partial process model. In that case, the modeler is allowed to arbitrarily edit query components or concrete components of the child process. The problem of deriving variants from holistic process models can also be addressed in the same way. We store the holistic process model and a set of partial process models that define how variants can be obtained. The step of obtaining the holistic model is out of the scope of this paper. Currently, we assume that we are able to obtain a holistic process model from a set of variants. Our approach addresses and supports the concerns of the steps after the process of obtaining the holistic model. That is, we keep only the holistic model and a set of partial process models that define the variants and get rid of the existing original variants.

5 Framework Architecture In this section, we envision an architecture for the partial process modeling of business processes, illustrated in Figure 7, which consists of the following main components. – Process Modeling, Querying, and Composition Environment provides the process designer with a graphical modeling interface [12]. Users express their intention by means of a partial process model (see Section 4). The query interface extracts the set of process model queries from the partial process model, and passes them on to the query processor. The matches returned by the set of queries will then be composed with the model fragments from the partial model through the model composer. – Process Model Repository is a central storage of business process models that is accessed in a uniform way [13]. – Query Processor The query processor evaluates the queries received from the query interface [3] and passes the resultant process views to the model composer. Some of the components of this framework do already exist. The client, particularly the model designer, is the Oryx editor, an extensible process modeling platform for research that has been designed to model and manage process models online [12]. Query interface and query processor for BPMN-Q [2] have been implemented as client-side and server-side plugins respectively to the Oryx editor2 and are able to run process model 2

http://bpt.hpi.uni-potsdam.de/Oryx

On Maintaining Consistency of Process Model Variants

297

Model Composer

current model

Client

R

Query Interface

Model Designer

R

HTTP

query result

R

R

Server

Query Processor

Internal storage R

R

HTTP

Repository Access

Repository

Fig. 7. Framework Architecture

queries against the Oryx process model repository. The model composer component that integrates the results of queries with the concrete parts of the partial process model is available only internally for the time being. Nevertheless, major releases of the Oryx platform will incorporate this one also.

6 Related Work The management of variants has been addressed in various domains, such as software configuration management [14,15,16] and feature diagrams [17,18,19]. For process models, different approaches have been defined: configurable reference process models, inheritance based and annotations based. Lu and Sadiq [20] presented a process modeling framework that is conducive to constrained variance by supporting user driven process adaptations. In [21] they described another approach for facilitating the discovery of preferred variants based on the notion of process similarity where multiple aspects of the process variants are compared according to specific query requirements. Compared to our approach, we address the issue of maintaining consistency among variants rather than deciding whether two or more processes are variants of each other. C-EPCs [9] allows the configuration of process models by distinguishing between choices that can be made at runtime and those that have to be made before, i.e., configuration time. Configurable nodes are used as the means to introduce configurability to EPCs. On the other hand aEPC [10] works on the principle of projection [11] and only elements that have a particular label are included in the extracted model. Inheritance of behavior in workflows [22,23] is a formal approach for tackling problems that are

298

E. Pascalau et al.

related to change. Four inheritance rules (protocol inheritance, projection inheritance, protocol/projection inheritance, life-cycle inheritance) are defined to tackle dynamic change. Opposed to the C-EPC or aEPC that deal with reference process models, our approach does not require the existence of an initial holistic model that can be later configured into specific variants, but it is able to create the holistic model on-the-fly from variants, based on a set of BPMN-Q queries that identify the variants. In addition, the query-based approach introduced here brings a new mechanism for consistency between processes. This mechanism is not a fully fledged inheritance mechanism but rather similar to it. Based on the associated queries, if a super process is updated, the updates are projected in a consistent manner on the sub-processes. While other approaches dealt either with workflow nets and EPCs, our approach deals with BPMN models. Annotations based approaches, e.g., the PESOA (Process Family Engineering in Service-Oriented Applications) project [24,25] defines so-called variant-rich process models as process models that are extended with stereotype annotations to accommodate variability. Both UML Activity Diagrams as well as BPMN models can be tackled with this approach. The places of a process where variability can occur are marked with the stereotype VarPoint. Several other stereo types , e.g., Variant, Default, Abstract, Alternative, Null, Optional) are used to specify different configuration options. Compared to our approach, we do not predetermine configuration points. Variants at execution time are addressed in [26]. The notion of process constraints is used to tackle the need for flexibility and dynamic change at execution time. Here a variant of a process is considered as an instance of a process. La Rosa et al. [27] defined a questionnaire based approach to extract variants from C-EPCs. However, to do so, one needs first the holistic model (the C-EPC), then it needs a questionnaire model and a mapping between the C-EPC and the questionnaire model. Our approach, however, does not require an additional mapping. Queries can be applied directly to the holistic models to derive variants. For us, a holistic or a specific model makes no difference. Because the queries are expressed with constructs similar to those in BPMN, the easiness introduced by the questionnaire approach to extract variants, we argue that it is also maintained here.

7 Conclusion In this paper, we introduced a new approach to maintain the consistency of process variants. Our approach is defined to address a specific setup, the eBay context. Consistency maintenance is a sort of reuse of process components in other processes. The approach is based on the idea of defining process models views by means of BPMNQ queries. Thus, the process modeler can define a new process model by specifying concrete parts in addition to queryable process views. Each time the defined model is invoked for viewing, the process views are evaluated, which guarantees returning the up-to-date and consistent model status for the process modeler. In addition, our viewbased approach can promise other benefits such as: 1) Extracting variants from holistic process models. Although it is not in our intention to fully address the problem of building holistic models out of related variants of the same process model, we have briefly

On Maintaining Consistency of Process Model Variants

299

underlined simple directions on how this could be done in a setup as the one described here. This holistic view reflects virtual global views on the components of the variant process models while keeping them autonomous. 2) Reusing existing business knowledge materialized in existing process models. The reuse is not only on the level of a whole process model, but rather on a fine grain level which is in the form of process model components. With this approach, we partially addressed the problem of process variants management. What remains open is the support of overriding inherited behavior from a parent process. One other direction for future work is the development of algorithms that generate holistic process models out of a set of variants.

Acknowledgements We would like to thank Clemens Rath from eBay’s European Center of Excellence, for his support.

References 1. Weske, M.: Business Process Management: Concepts, Languages, Architectures. Springer, Heidelberg (2007) 2. Awad, A.: BPMN-Q: A Language to Query Business Processes. In: Proceedings of the 2nd International Workshop on Enterprise Modelling and Information Systems Architecture (EMISA 2007). LNI, vol. P-119, pp. 115–128. GI (2007) 3. Sakr, S., Awad, A.: A framework for querying graph-based business process models. In: Proceedings of the 19th International World Wide Web Conference (WWW 2010), pp. 1297– 1300. ACM, New York (2010) 4. OMG: Business Process Modeling Notation 1.2 (BPMN 1.2) Specification, Final Adopted Specification. Technical report, OMG (2009) 5. Keller, G., N¨uttgens, M., Scheer, A.: Semantische Prozessmodellierung auf der Grundlage Ereignisgesteuerter Prozessketten (EPK). Technical Report 89, Institut f¨ur Wirtschaftsinformatik, Saarbr¨ucken (1992) 6. van der Aalst, W.M.P., ter Hofstede, A.H.M.: YAWL: yet another workflow language. Information Systems 30(4), 245–275 (2005) 7. OMG: UML 2.0 Superstructure Specification (August 2005), http://www.omg.org/spec/UML/2.0/Superstructure/PDF/ 8. Vanhatalo, J., V¨olzer, H., Koehler, J.: The refined process structure tree. In: Dumas, M., Reichert, M., Shan, M.-C. (eds.) BPM 2008. LNCS, vol. 5240, pp. 100–115. Springer, Heidelberg (2008) 9. Rosemann, M., van der Aalst, W.M.P.: A Configurable Reference Modelling Language. Information Systems 32(1), 1–23 (2007) 10. Reijers, H.A., Mans, R.S., van der Toorn, R.A.: Improved Model Management with Aggregated Business Process Models. Data Knowledge Engineering 68(2), 221–243 (2009) 11. Baier, T., Pascalau, E., Mendling, J.: On the suitability of aggregated and configurable business process models. In: Bider, I., Halpin, T., Krogstie, J., Nurcan, S., Proper, E., Schmidt, R., Ukor, R. (eds.) BPMDS 2010 and EMMSAD 2010. LNBIP, vol. 50, pp. 108–119. Springer, Heidelberg (2010) 12. Decker, G., Overdick, H., Weske, M.: Oryx – Sharing Conceptual Models on the Web. In: Li, Q., Spaccapietra, S., Yu, E., Oliv´e, A. (eds.) ER 2008. LNCS, vol. 5231, pp. 536–537. Springer, Heidelberg (2008)

300

E. Pascalau et al.

13. Rosa, M.L., Reijers, H., Aalst, W., Dijkman, R., Mendling, J., Dumas, M., Garcia-Banuelos, L.: Apromore: An advanced process model repository (2009), http://eprints.qut.edu.au/27448/ 14. Estublier, J., Casallas, R.: The Adele Software Configuration Manager. Configuration Management. Trends in Software (1994) 15. Tryggeseth, E., Gulla, B., Conradi, R.: Modelling Systems with Variability using the PROTEUS Configuration Language. In: Estublier, J. (ed.) ICSE-WS 1993/1995 and SCM 1993/1995. LNCS, vol. 1005, pp. 216–240. Springer, Heidelberg (1995) 16. Turkay, E., Gokhale, A.S., Natarajan, B.: Addressing the middleware configuration challenges using model-based techniques. In: ACM Southeast Regional Conference, pp. 166– 170. ACM, New York (2004) 17. Batory, D.S., Geraci, B.J.: Composition Validation and Subjectivity in GenVoca Generators. IEEE Trans. Software Engineering 23(2), 67–84 (1997) 18. Czarnecki, K., Helsen, S., Eisenecker, U.: Formalizing Cardinality-Based Feature Models and Their Specialization. Software Process: Improvement and Practice 10(1), 7–29 (2005) 19. Schobbens, P.Y., Heymans, P., Trigaux, J.C.: Feature Diagrams: A Survey and a Formal Semantics. In: Proceedings of the 14th IEEE International Requirements Engineering Conference (RE 2006), pp. 138–148 (2006), http://doi.ieeecomputersociety.org/10.1109/RE.2006.23 20. Lu, R., Sadiq, S.W.: Managing Process Variants as an Information Resource. In: Dustdar, S., Fiadeiro, J.L., Sheth, A.P. (eds.) BPM 2006. LNCS, vol. 4102, pp. 426–431. Springer, Heidelberg (2006) 21. Lu, R., Sadiq, S.W.: On the Discovery of Preferred Work Practice Through Business Process Variants. In: Parent, C., Schewe, K.-D., Storey, V.C., Thalheim, B. (eds.) ER 2007. LNCS, vol. 4801, pp. 165–180. Springer, Heidelberg (2007) 22. van der Aalst, W., Basten, T.: Inheritance of Workflows: An approach to tackling problems related to change. Computing Science Report 99(06) (1999), http://is.tm.tue.nl/staff/wvdaalst/publications/p85.pdf 23. Basten, T., van der Aalst, W.: Inheritance of Behavior. Computing Science Report 99(17) (1999), http://is.tm.tue.nl/staff/wvdaalst/publications/p93.pdf 24. Puhlmann, F., Schnieders, A., Weiland, J., Weske, M.: Variability mechanisms for process models. Technical Report 17/2005, Hasso-Plattner-Institut (June 2005) 25. Schnieders, A., Puhlmann, F.: Variability mechanisms in e-business process families. In: Proceedings of the International Conference on Business Information Systems (BIS 2006). LNI, vol. 85, pp. 583–601. GI (2006) 26. Lu, R., Sadiq, S.W., Governatori, G., Yang, X.: Defining Adaptation Constraints for Business Process Variants. In: Abramowicz, W. (ed.) BIS 2009. LNBIP, vol. 21, pp. 145–156. Springer, Heidelberg (2009) 27. Rosa, M.L., Lux, J., Seidel, S., Dumas, M., ter Hofstede, A.H.M.: Questionnaire-driven Configuration of Reference Process Models. In: Krogstie, J., Opdahl, A.L., Sindre, G. (eds.) CAiSE 2007 and WES 2007. LNCS, vol. 4495, pp. 424–438. Springer, Heidelberg (2007)