Multi-View Model Refactoring using a Multi-Objective Evolutionary Algorithm

To improve the quality of software systems, one of the widely used techniques is refactoring defined as the process of improving the design of existing system by changing its internal structure without altering the external behavior. The majority of existing refactoring works focus mainly on the source code level. The suggestion of refactorings at the model level is more challenging due to the difficulty to evaluate: a) the impact of the suggested refactorings applied to a diagram on other related diagrams to improve the overall system quality, b) their feasibility, and c) interdiagram consistency. We propose, in this paper, a novel framework that enables software designers to apply refactoring at the model level. To this end, we used a multiobjective evolutionary algorithm to find a trade-off between improving the quality of different diagrams at the same time such as class diagrams and activity diagrams. The proposed multi-objective approach provides a multi-view for software designers to evaluate the impact of suggested refactorings applied to class diagrams on related activity diagrams in order to evaluate the overall quality, and check their feasibility and behavior preservation. The statistical evaluation performed on models extracted from four open source systems confirms the efficiency of our approach.

[1]  Friedrich Steimann,et al.  Model/code co-refactoring: An MDE approach , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[2]  Indrakshi Ray,et al.  Analyzing Behavioral Refactoring of Class Models , 2013, ME@MoDELS.

[3]  Gabriele Taentzer,et al.  A tool environment for quality assurance based on the Eclipse Modeling Framework , 2012, Automated Software Engineering.

[4]  Vittorio Cortellessa,et al.  Antipattern-based model refactoring for software performance improvement , 2012, QoSA '12.

[5]  Antonio Vallecillo,et al.  Viewpoint Co-evolution through Coarse-Grained Changes and Coupled Transformations , 2012, TOOLS.

[6]  Iman Hemati Moghadam,et al.  Automated Refactoring Using Design Differencing , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[7]  Hartmut Ehrig,et al.  From state- to delta-based bidirectional model transformations: the symmetric case , 2011, MODELS'11.

[8]  Friedrich Steimann Constraint-based model refactoring , 2011, MODELS'11.

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

[10]  Dániel Varró,et al.  Change-driven model transformations , 2009, Software & Systems Modeling.

[11]  Krzysztof Czarnecki,et al.  From State- to Delta-Based Bidirectional Model Transformations: the Asymmetric Case , 2011, J. Object Technol..

[12]  Uwe Aßmann,et al.  Role-based generic model refactoring , 2010, MODELS'10.

[13]  Krzysztof Czarnecki,et al.  Specifying overlaps of heterogeneous models for global consistency checking , 2010, MDI '10.

[14]  Lily Rachmawati,et al.  Multiobjective Evolutionary Algorithm With Controllable Focus on the Knees of the Pareto Front , 2009, IEEE Transactions on Evolutionary Computation.

[15]  Antonio Cicchetti,et al.  Managing Dependent Changes in Coupled Evolution , 2009, ICMT@TOOLS.

[16]  Benjamin C. Pierce,et al.  Quotient lenses , 2008, ICFP.

[17]  Richard F. Paige,et al.  Update Transformations in the Small with the Epsilon Wizard Language , 2007, J. Object Technol..

[18]  Tom Mens,et al.  Analysing refactoring dependencies using graph transformation , 2007, Software & Systems Modeling.

[19]  Gabriele Taentzer,et al.  Graphical definition of in-place transformations in the eclipse modeling framework , 2006, MoDELS'06.

[20]  Jan Mendling,et al.  A Discourse on Complexity of Process Models , 2006, Business Process Management Workshops.

[21]  Ragnhild Van Der Straeten,et al.  Model refactorings through rule-based inconsistency resolution , 2006, SAC.

[22]  Thomas Baar,et al.  Refactoring OCL annotated UML class diagrams , 2005, MoDELS'05.

[23]  Ivan Porres,et al.  Rule-based update transformations and their application to model refactorings , 2005, Software & Systems Modeling.

[24]  Derrick G. Kourie,et al.  Towards proving preservation of behaviour of refactoring of UML models , 2005 .

[25]  Tom Mens,et al.  On the Use of Graph Transformations for Model Refactoring , 2005, GTTSE.

[26]  Tom Mens,et al.  Formalizing refactorings with graph transformations , 2005, J. Softw. Maintenance Res. Pract..

[27]  Jeffrey G. Gray,et al.  Generic and Domain-Specific Model Refactoring Using a Model Transformation Engine , 2005, Model-Driven Software Development.

[28]  Lu Zhang,et al.  Applying OO Metrics to Assess UML Meta-models , 2004, UML.

[29]  Cláudia Maria Lima Werner,et al.  Applying Refactoring Techniques to UML/OCL Models , 2004, UML.

[30]  Tom Mens,et al.  Supporting Model Refactorings Through Behaviour Inheritance Consistencies , 2004, UML.

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

[32]  Gabriele Taentzer,et al.  Specifying Integrated Refactoring with Distributed Graph Transformations , 2003, AGTIVE.

[33]  Robert B. France,et al.  A Metamodeling Approach to Pattern-Based Model Refactoring , 2003, IEEE Softw..

[34]  Thorsten Sturm,et al.  Refactoring Browser for UML , 2002, NetObjectDays.

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

[36]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

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

[38]  John C. Grundy,et al.  Inconsistency Management for Multiple-View Software Development Environments , 1998, IEEE Trans. Software Eng..

[39]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[40]  D. Gabbay,et al.  Inconsistency Handling in Multiperspective Specifications , 1994 .

[41]  Dov M. Gabbay,et al.  Inconsistency Handling in Multi-Perspective Specifications , 1993, ESEC.

[42]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .