Process patterns offer proven solutions to reuse in process modeling. This reuse can take many forms; however, we are particularly interested in the form where patterns are merged with already existing process models to enrich or to correct them to satisfy certain constraints or to increase their efficiency.We aim through the present work to propose an approach that proceeds the merging automatically. The difficulty is that some conflicts may arise between the pattern being reused and the model being modified, resulting in an incoherent process model. We start this work by studying possible conflicts (especially that of first order), which can be encountered when merging, and then we propose an algorithm ensuring the automatic reuse and managing these conflicts. We highlight through a comparison the benefits of our proposal.The difficulty of patterns reuse to modify existing models gives rise to very few works in the literature. Our approach aims to offer a possible solution that ensures conflicts management.Automating such form of reuse will enhance patterns exploitation within the software community, as well as it will open many perspectives based on process models merging.
KEYWORDSfirst-order conflict, model merging, pattern reuse, process model, process pattern 1 | INTRODUCTION Software products are becoming more and more rich and complex, and their use reaches more and more areas. The trend was summarized succinctly in Andreessen 1 : software is eating the world. The dual challenge of software engineering is that of quality and productivity. This creates a context where software patterns emerge as a powerful mean, offering reusable proven solutions to overcome these challenges. The scale of published patterns is however reaching a point where the need for tools to find, understand, and apply patterns becomes a critical requirement. 2 Among software patterns there are process patterns. The concept of process pattern was first introduced by Coplien 3 at the 1994 PLoP conference, 4-7 in the sense of patterns that capture process knowledge. Later, Ambler 8 defines a process pattern as follows: describing a proven, successful approach and/or series of actions for developing software.It is known in software engineering that to improve the developed product it is important to master its development process. [9][10][11] This leads the concept of process model to appear, such model is a detailed representation of software development real-world activities, using a process modeling language. Thus, "methods and processes along with the tools supporting them are at the heart of software engineering." 12 Besides, process improvement is nowadays a challenge to improve software quality and productivity, 13 and even small companies are interested in process models to keep up their competitiveness by improving their products quality. 14 Consequently, process patterns as they concern process models became relevant elements in software engineering. In the present work, we are interested in process patterns, which are called in...