U. Mansoor, M. Kessentini, P. Langer, M. Wimmer, S. Bechikh, K. Deb: MOMM: Multi-objective model merging, Journal of Systems and Software, 103 (2015), pages 423 - 439. doi: 10.1016/j.jss.2014.11.043
Nowadays, software systems are complex and large. To cope with this situation, teams of developers have to cooperate and work in parallel on software models. Thus, techniques to support the collaborative development of models are a must. To this end, several approaches exist to identify the change operations applied in parallel, to detect conflicts among them, as well as to construct a merged model by incorporating all non-conflicting operations. Conflicts often denote situations where the application of one operation disables the applicability of another one. Consequently, one operation has to be omitted to construct a valid merged model in such scenarios. When having to decide which operation to omit, the importance of its application has to be taken into account depending on the operation type and the application context. However, existing works treat the operations to merge with equal importance. We introduce in this paper, for the first time, a multi-objective formulation of the problem of model merging, based on NSGA-II, that aims to find the best trade-off between minimizing the number of omitted operations and maximizing the number of successfully applied important operations. We evaluated our approach using seven open source systems and compared it with different existing model merging approaches. The merging solutions obtained with our approach were found in all of the scenarios of our experiments to be comparable in terms of minimizing the number of conflicts to those suggested by existing approaches and to carry a high importance score of merged operations. Our results also revealed an interesting feature concerning the trade-off between the two conflicting objectives that demonstrates the practical value of taking the importance of operations into account in model merging tasks. In fact, the shape of the Pareto front represents an interesting guidance for developers to select best solutions based on their preferences.