MOMM: Multi-objective model merging

Abstract 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.

[1]  Miryung Kim,et al.  A field study of refactoring challenges and benefits , 2012, SIGSOFT FSE.

[2]  Marouane Kessentini,et al.  Search-based model merging , 2013, GECCO '13.

[3]  Stuart H. Zweben,et al.  Measuring the quality of structured designs , 1981, J. Syst. Softw..

[4]  Qingfu Zhang,et al.  Objective Reduction in Many-Objective Optimization: Linear and Nonlinear Algorithms , 2013, IEEE Transactions on Evolutionary Computation.

[5]  Enrique Alba,et al.  Evolutionary algorithms for the multi‐objective test data generation problem , 2012, Softw. Pract. Exp..

[6]  Gerti Kappel,et al.  Turning Conflicts into Collaboration , 2012, Computer Supported Cooperative Work (CSCW).

[7]  Federico Divina,et al.  A NSGA-II Algorithm for the Residue-Residue Contact Prediction , 2012, EvoBIO.

[8]  C. Schneider CoObRA - a small step for development tools to collaborative environments , 2004, ICSE 2004.

[9]  S. Bandyopadhyay,et al.  Solving multi-objective parallel machine scheduling problem by a modified NSGA-II , 2013 .

[10]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[11]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[12]  Yang Li,et al.  Comparing State- and Operation-Based Change Tracking on Models , 2010, 2010 14th IEEE International Enterprise Distributed Object Computing Conference.

[13]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[14]  Houari A. Sahraoui,et al.  Design Defects Detection and Correction by Example , 2011, 2011 IEEE 19th International Conference on Program Comprehension.

[15]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[16]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[17]  Khaled Ghédira,et al.  Estimating nadir point in multi-objective optimization using mobile reference points , 2010, IEEE Congress on Evolutionary Computation.

[18]  Udo Kelter,et al.  History-based merging of models , 2009, 2009 ICSE Workshop on Comparison and Versioning of Software Models.

[19]  Ivan Porres,et al.  Difference and Union of Models , 2003, UML.

[20]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[21]  Yuanyuan Zhang,et al.  Search-based software engineering: Trends, techniques and applications , 2012, CSUR.

[22]  W. Keith Edwards,et al.  Flexible conflict detection and management in collaborative applications , 1997, UIST '97.

[23]  Prasun Dewan,et al.  A flexible object merging framework , 1994, CSCW '94.

[24]  Antonio Cicchetti,et al.  Managing Model Conflicts in Distributed Development , 2008, MoDELS.

[25]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[26]  Mark Kent O'Keeffe,et al.  Search-based refactoring for software maintenance , 2008, J. Syst. Softw..

[27]  Jordi Cabot,et al.  Model-Driven Software Engineering in Practice , 2017, Synthesis Lectures on Software Engineering.

[28]  Marouane Kessentini,et al.  Search-based detection of high-level model changes , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[29]  Mario Piattini,et al.  A Survey of Metrics for UML Class Diagrams , 2005, J. Object Technol..

[30]  Sander Vermolen,et al.  An Extensive Catalog of Operators for the Coupled Evolution of Metamodels and Models , 2010, SLE.

[31]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[32]  Claudia-Lavinia Ignat,et al.  Operation-based versus State-based Merging in Asynchronous Graphical Collaborative Editing , 2004 .

[33]  Xiaodong Li,et al.  A Non-dominated Sorting Particle Swarm Optimizer for Multiobjective Optimization , 2003, GECCO.

[34]  Jean Bézivin,et al.  On the unification power of models , 2005, Software & Systems Modeling.

[35]  A. E. Eiben,et al.  Parameter tuning for configuring and analyzing evolutionary algorithms , 2011, Swarm Evol. Comput..

[36]  Ernst Lippe,et al.  Operation-based merging , 1992 .

[37]  Ujjwal Maulik,et al.  A Survey of Multiobjective Evolutionary Algorithms for Data Mining: Part I , 2014, IEEE Transactions on Evolutionary Computation.

[38]  Gregory Butler,et al.  Table-Driven Detection and Resolution of Operation-Based Merge Conflicts with Mirador , 2011, ECMFA.

[39]  Johannes Stammel,et al.  Search-based determination of refactorings for improving the class structure of object-oriented systems , 2006, GECCO.

[40]  Tom Mens,et al.  A State-of-the-Art Survey on Software Merging , 2002, IEEE Trans. Software Eng..

[41]  Qingfu Zhang,et al.  Multiobjective evolutionary algorithms: A survey of the state of the art , 2011, Swarm Evol. Comput..

[42]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[43]  Gerti Kappel,et al.  A posteriori operation detection in evolving software models , 2013, J. Syst. Softw..

[44]  Marie-Pierre Gervais,et al.  D-Praxis : A Peer-to-Peer Collaborative Model Editing Framework , 2009, DAIS.

[45]  Torbjörn Ekman,et al.  Refactoring-aware versioning in Eclipse , 2004, Electron. Notes Theor. Comput. Sci..

[46]  Markus Herrmannsdoerfer,et al.  Collaborative model merging , 2010, SPLASH/OOPSLA Companion.

[47]  Mark Harman,et al.  Not going to take this anymore: Multi-objective overtime planning for Software Engineering projects , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[48]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[49]  L. Briand,et al.  Theoretical and Empirical Validation of Software Product Measures , 1995 .

[50]  Manuel Wimmer,et al.  The Past, Present, and Future of Model Versioning , 2012 .

[51]  Marco Laumanns,et al.  Performance assessment of multiobjective optimizers: an analysis and review , 2003, IEEE Trans. Evol. Comput..

[52]  Taïcir Loukil,et al.  Multiple crossover genetic algorithm for the multiobjective traveling salesman problem , 2010, Electron. Notes Discret. Math..

[53]  Gregor Engels,et al.  Detection and resolution of conflicting change operations in version management of process models , 2011, Software & Systems Modeling.

[54]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[55]  Ralph E. Johnson,et al.  Effective Software Merging in the Presence of Object-Oriented Refactorings , 2008, IEEE Transactions on Software Engineering.

[56]  Jacob Cohen Statistical Power Analysis for the Behavioral Sciences , 1969, The SAGE Encyclopedia of Research Design.

[57]  Gerti Kappel,et al.  An Introduction to Model Versioning , 2012, SFM.

[58]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[59]  Reidar Conradi,et al.  Impact of software engineering research on the practice of software configuration management , 2005, TSEM.

[60]  Mark Harman,et al.  Pareto optimal search based refactoring at the design level , 2007, GECCO '07.

[61]  Carlos A. Brizuela,et al.  A survey on multi-objective evolutionary algorithms for many-objective problems , 2014, Comput. Optim. Appl..

[62]  Nicolas Jozefowiez,et al.  Enhancements of NSGA II and Its Application to the Vehicle Routing Problem with Route Balancing , 2005, Artificial Evolution.