Multi-view refactoring of class and activity diagrams 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 an existing system by changing its internal structure without altering the external behavior. The majority of existing refactoring work focuses 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 multi-objective evolutionary algorithm to find a trade-off between improving the quality of class 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]  Indrakshi Ray,et al.  Analyzing Behavioral Refactoring of Class Models , 2013, ME@MoDELS.

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

[3]  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.

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

[5]  Audris Mockus,et al.  Quantifying the Effect of Code Smells on Maintenance Effort , 2013, IEEE Transactions on Software Engineering.

[6]  Shari Lawrence Pfleeger,et al.  Software metrics (2nd ed.): a rigorous and practical approach , 1997 .

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

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

[9]  Michelle L. Crane,et al.  Towards a Formal Account of a Foundational Subset for Executable UML Models , 2008, MoDELS.

[10]  Khaled Ghédira,et al.  Classification of Model Refactoring Approaches , 2009, J. Object Technol..

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

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

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

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

[15]  Conrad E. Bock,et al.  UML 2 Activity and Action Models, Part 2 , 2003, J. Object Technol..

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

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

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

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

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

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

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

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

[24]  Tom Mens,et al.  Towards Automating Source-Consistent UML Refactorings , 2003, UML.

[25]  Deepak Goyal,et al.  A hierarchical model for object-oriented design quality assessment , 2015 .

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

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

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

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

[30]  Olivier Barais,et al.  Generic Model Refactorings , 2009, MoDELS.

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

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

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

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

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

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

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

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

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

[40]  Marouane Kessentini,et al.  Model Refactoring Using Interactive Genetic Algorithm , 2013, SSBSE.

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

[42]  Antonio Vallecillo,et al.  Change Management in Multi-Viewpoint System Using ASP , 2008, 2008 12th Enterprise Distributed Object Computing Conference Workshops.

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

[44]  Conrad Bock UML 2 Activity and Action Models, Part 2 , 2003, J. Object Technol..

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

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

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

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