Sayyed Mohammad-Sajad Kasaei received his B.Sc. in Computer Engineering (Software) from Shahreza University, Isfahan, Iran.
Software development is a team effort and most of the life cycle activities, such as modeling, are performed by a team of individuals. Since models are the central artifacts in model-driven engineering (MDE), in this approach collaborative modeling is inevitable. The key challenge in collaborative modeling is how to integrate multiple versions of a model into a unified yet consistent model. To cope with this problem, several approaches have been proposed that apply the integration of N versions based on a pairwise merging. This pairwise merging suffers from both integration complexity and the order by which the pairs are selected. N-way model merging is a key technique for integrating N concurrent model versions into one which tries to solve the pairwise merging problems. However, techniques for N-way merging have hardly been addressed and they do not cover the whole integration process which consists of comparing and merging. Some of these techniques focus on identifying common elements, while others focus on building an integrated version.
In this research, to address the aforementioned challenges, a framework for the integration of N versions based on a model-driven approach is presented. In the proposed framework, similar elements are identified using the proposed comparison algorithm. Then, the proposed integration algorithm constructs an integrated version based on merge rules. Also, the consistency of the integrated version can check according to the consistency rules. The proposed framework consists of an N-way merging language, an N-way merging engine, and a text editor. The proposed N-way merging language provides a flexible merging algorithm and generates a merged model based on user opinions.
The evaluation of our proposed approach is threefold. First, the applicability and correctness of the proposed approach are shown via a case study. The results approve the full coverage of all merging situations, the applicability of NML when dealing with the arbitrary number of input models, and the correctness of the merged model. Second, to evaluate the usability of the proposed language, we conducted an experimental evaluation consisting of an online workshop. The results of the evaluation advocate the usability of NML. Third, the performance and scalability of the proposed framework have been evaluated in comparison with similar methods. The evaluation results confirm the improvement in merging time.