Search-based detection of model level changes

Software models, defined as code abstractions, are iteratively refined, restructured, and evolved due to many reasons such as reflecting changes in requirements or modifying a design to enhance existing features. For understanding the evolution of a model a-posteriori, change detection approaches have been proposed for models. The majority of existing approaches are successful to detect atomic changes. However, composite changes, such as refactorings, are difficult to detect due to several possible combinations of atomic changes or eventually hidden changes in intermediate model versions that may be no longer available. Moreover, a multitude of refactoring sequences may be used to describe the same model evolution. In this paper, we propose a multi-objective approach to detect model changes as a sequence of refactorings. Our approach takes as input an exhaustive list of possible types of model refactoring operations, the initial model, and the revised model, and generates as output a list of refactoring applications representing a good compromise between the following two objectives (i) maximize the similarity between the expected revised model and the generated model after applying the refactoring sequence on the initial model, and (ii) minimize the number of atomic changes used to describe the evolution. In fact, minimizing the number of atomic changes can important since it is maybe easier for a designer to understand and analyze a sequence of refactorings (composite model changes) rather than an equivalent large list of atomic changes (Weissgerber and Diehl 2006). Due to the huge number of possible refactoring sequences, a metaheuristic search method is used to explore the space of possible solutions. To this end, we use the non-dominated sorting genetic algorithm (NSGA-II) to find the best trade-off between our two objectives. The paper reports on the results of an empirical study of our multi-objective model changes detection technique as applied on various versions of real-world models taken from open source projects and one industrial project. We compared our approach to the simple deterministic greedy algorithm, multi-objective particle swarm optimization (MOPSO), an existing mono-objective changes detection approach, and two model changes detection tools not based on computational search. The statistical test results provide evidence to support the claim that our proposal enables the generation of changes detection solutions with correctness higher than 85 %, in average, using a variety of real-world scenarios.

[1]  Miryung Kim,et al.  Template-based reconstruction of complex refactorings , 2010, 2010 IEEE International Conference on Software Maintenance.

[2]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[3]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[4]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[5]  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).

[6]  Yann-Gaël Guéhéneuc,et al.  DECOR: A Method for the Specification and Detection of Code and Design Smells , 2010, IEEE Transactions on Software Engineering.

[7]  Romain Robbes Mining a Change-Based Software Repository , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

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

[9]  Ivan Porres,et al.  Model Refactorings as Rule-Based Update Transformations , 2003, UML.

[10]  Don Roberts,et al.  Practical analysis for refactoring , 1999 .

[11]  Mel Ó Cinnéide Automated application of design patterns : a refactoring approach , 2001 .

[12]  C. Fonseca,et al.  GENETIC ALGORITHMS FOR MULTI-OBJECTIVE OPTIMIZATION: FORMULATION, DISCUSSION, AND GENERALIZATION , 1993 .

[13]  Ralph E. Johnson,et al.  Automated Detection of Refactorings in Evolving Components , 2006, ECOOP.

[14]  Miryung Kim,et al.  Identifying and Summarizing Systematic Code Changes via Rule Inference , 2013, IEEE Transactions on Software Engineering.

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

[16]  Oscar Nierstrasz,et al.  Finding refactorings via change metrics , 2000, OOPSLA '00.

[17]  Cédric Brun Obeo,et al.  MODEL DIFFERENCES IN THE ECLIPSE MODELING FRAMEWORK , 2008 .

[18]  Mark Harman,et al.  Experimental assessment of software metrics using automated refactoring , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

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

[20]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.

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

[22]  Gerti Kappel,et al.  Conflict Visualization for Evolving UML Models , 2012, J. Object Technol..

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

[24]  Dragan Gasevic,et al.  Model Driven Engineering , 2009 .

[25]  Udo Kelter,et al.  Understanding model evolution through semantically lifting model differences with SiLift , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

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

[27]  Jeffrey G. Gray,et al.  DSMDiff: a differentiation tool for domain-specific models , 2007 .

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

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

[30]  Peter J. Fleming,et al.  Genetic Algorithms for Multiobjective Optimization: FormulationDiscussion and Generalization , 1993, ICGA.

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

[32]  Eleni Stroulia,et al.  Refactoring Detection based on UMLDiff Change-Facts Queries , 2006, 2006 13th Working Conference on Reverse Engineering.

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

[34]  Vladan Devedzic,et al.  Model Driven Engineering and Ontology Development (2. ed.) , 2009 .

[35]  Antonio Vallecillo,et al.  Representing and Operating with Model Differences , 2008, TOOLS.

[36]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[37]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

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

[39]  Thomas Stützle,et al.  A simple and effective iterated greedy algorithm for the permutation flowshop scheduling problem , 2007, Eur. J. Oper. Res..

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

[41]  Stéphane Ducasse,et al.  Modeling history to analyze software evolution , 2006, J. Softw. Maintenance Res. Pract..

[42]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[43]  Yuanyuan Zhang,et al.  Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications , 2009 .

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

[45]  J. Paris Performance assessment. , 1998, Journal of public health medicine.

[46]  Gregor Engels,et al.  Detecting and Resolving Process Model Differences in the Absence of a Change Log , 2008, BPM.

[47]  Lionel C. Briand,et al.  Automating impact analysis and regression test selection based on UML designs , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[48]  Gerti Kappel,et al.  An Example Is Worth a Thousand Words: Composite Operation Modeling By-Example , 2009, MoDELS.

[49]  Kalyanmoy Deb,et al.  MOMM: Multi-objective model merging , 2015, J. Syst. Softw..

[50]  M. Friedman The Use of Ranks to Avoid the Assumption of Normality Implicit in the Analysis of Variance , 1937 .

[51]  Sander Vermolen,et al.  Reconstructing Complex Metamodel Evolution , 2011, SLE.

[52]  Houari A. Sahraoui,et al.  The use of development history in software refactoring using a multi-objective evolutionary algorithm , 2013, GECCO '13.

[53]  Antonio Cicchetti,et al.  A Metamodel Independent Approach to Difference Representation , 2007, J. Object Technol..

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

[55]  Stephan Diehl,et al.  Identifying Refactorings from Source-Code Changes , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[56]  Stéphane Ducasse,et al.  Modeling history to analyze software evolution: Research Articles , 2006 .

[57]  Udo Kelter,et al.  A rule-based approach to the semantic lifting of model differences in the context of model versioning , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[58]  Bernhard Rumpe,et al.  A Manifesto for Semantic Model Differencing , 2010, MoDELS.

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

[60]  Mark Harman,et al.  Search-based software engineering , 2001, Inf. Softw. Technol..

[61]  Mehrdad Sabetzadeh,et al.  Matching and Merging of Statecharts Specifications , 2007, 29th International Conference on Software Engineering (ICSE'07).

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

[63]  H. Sahraoui,et al.  Model Transformation as an Optimization Problem , 2008, MoDELS.

[64]  Zhendong Niu,et al.  Facilitating software refactoring with appropriate resolution order of bad smells , 2009, ESEC/FSE '09.

[65]  Orest Pilskalns,et al.  Regression Testing UML Designs , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[66]  Harald C. Gall,et al.  Change Distilling:Tree Differencing for Fine-Grained Source Code Change Extraction , 2007, IEEE Transactions on Software Engineering.

[67]  Kalyanmoy Deb,et al.  Model transformation testing: a bi‐level search‐based software engineering approach , 2015, J. Softw. Evol. Process..