On the use of many quality attributes for software refactoring: a many-objective search-based software engineering approach

Search-based software engineering (SBSE) solutions are still not scalable enough to handle high-dimensional objectives space. The majority of existing work treats software engineering problems from a single or bi-objective point of view, where the main goal is to maximize or minimize one or two objectives. However, most software engineering problems are naturally complex in which many conflicting objectives need to be optimized. Software refactoring is one of these problems involving finding a compromise between several quality attributes to improve the quality of the system while preserving the behavior. To this end, we propose a novel representation of the refactoring problem as a many-objective one where every quality attribute to improve is considered as an independent objective to be optimized. In our approach based on the recent NSGA-III algorithm, the refactoring solutions are evaluated using a set of 8 distinct objectives. We evaluated this approach on one industrial project and seven open source systems. We compared our findings to: several other many-objective techniques (IBEA, MOEA/D, GrEA, and DBEA-Eps), an existing multi-objective approach a mono-objective technique and an existing refactoring technique not based on heuristic search. Statistical analysis of our experiments over 31 runs shows the efficiency of our approach.

[1]  Marcelo Soares Pimenta,et al.  Detecting Bad Smells in AspectJ , 2006, J. Univers. Comput. Sci..

[2]  Xin Yao,et al.  Software Module Clustering as a Multi-Objective Search Problem , 2011, IEEE Transactions on Software Engineering.

[3]  William G. Griswold,et al.  Automated support for program refactoring using invariants , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[4]  Filomena Ferrucci,et al.  Single and Multi Objective Genetic Programming for software development effort estimation , 2012, SAC '12.

[5]  Radu Marinescu,et al.  InCode: Continuous Quality Assessment and Improvement , 2010, 2010 14th European Conference on Software Maintenance and Reengineering.

[6]  Carlos A. Coello Coello,et al.  Effective ranking + speciation = Many-objective optimization , 2011, 2011 IEEE Congress of Evolutionary Computation (CEC).

[7]  Tapabrata Ray,et al.  A Pareto Corner Search Evolutionary Algorithm and Dimensionality Reduction in Many-Objective Optimization Problems , 2011, IEEE Transactions on Evolutionary Computation.

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

[9]  David Grove,et al.  Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis , 1995, ECOOP.

[10]  Tim Menzies,et al.  Scalable product line configuration: A straw to break the camel's back , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[11]  Eckart Zitzler,et al.  Indicator-Based Selection in Multiobjective Search , 2004, PPSN.

[12]  Robert M. Hierons,et al.  The Effectiveness of Refactoring, Based on a Compatibility Testing Taxonomy and a Dependency Graph , 2006, Testing: Academic & Industrial Conference - Practice And Research Techniques (TAIC PART'06).

[13]  Mohamed Wiem Mkaouer,et al.  High dimensional search-based software engineering: finding tradeoffs among 15 objectives for automating software refactoring using NSGA-III , 2014, GECCO.

[14]  Tim Menzies,et al.  On the value of user preferences in search-based software engineering: A case study in software product lines , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[15]  Kalyanmoy Deb,et al.  An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point Based Nondominated Sorting Approach, Part II: Handling Constraints and Extending to an Adaptive Approach , 2014, IEEE Transactions on Evolutionary Computation.

[16]  Adnan Shaout,et al.  Many-Objective Software Remodularization Using NSGA-III , 2015, TSEM.

[17]  Soon-Thiam Khu,et al.  An Investigation on Preference Order Ranking Scheme for Multiobjective Evolutionary Optimization , 2007, IEEE Transactions on Evolutionary Computation.

[18]  Tapabrata Ray,et al.  A Decomposition Based Evolutionary Algorithm for Many Objective Optimization with Systematic Sampling and Adaptive Epsilon Control , 2013, EMO.

[19]  Kalyanmoy Deb,et al.  Multi-objective optimization using evolutionary algorithms , 2001, Wiley-Interscience series in systems and optimization.

[20]  Xin Yao,et al.  Some Recent Work on Multi-objective Approaches to Search-Based Software Engineering , 2013, SSBSE.

[21]  Shengxiang Yang,et al.  A Grid-Based Evolutionary Algorithm for Many-Objective Optimization , 2013, IEEE Transactions on Evolutionary Computation.

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

[23]  Han Tao,et al.  Solving Multi-Objective and Fuzzy Multi-Attributive Integrated Technique for QoS-Aware Web Service Selection , 2007, 2007 International Conference on Wireless Communications, Networking and Mobile Computing.

[24]  Gordon Fraser,et al.  Parameter tuning or default values? An empirical investigation in search-based software engineering , 2013, Empirical Software Engineering.

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

[26]  Carlos A. Coello Coello,et al.  Online Objective Reduction to Deal with Many-Objective Problems , 2009, EMO.

[27]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[28]  Marouane Kessentini,et al.  Preference-Based Many-Objective Evolutionary Testing Generates Harder Test Cases for Autonomous Agents , 2013, SSBSE.

[29]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[30]  Walter Olthoff ECOOP’95 — Object-Oriented Programming, 9th European Conference, Åarhus, Denmark, August 7–11, 1995 , 2000, Lecture Notes in Computer Science.

[31]  Raed Shatnawi,et al.  An Empirical Assessment of Refactoring Impact on Software Quality Using a Hierarchical Quality Model , 2011 .

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

[33]  Khaled Ghédira,et al.  Searching for knee regions of the Pareto front using mobile reference points , 2011, Soft Comput..

[34]  Mark Harman,et al.  Software engineering: an ideal set of challenges for evolutionary computation , 2013, GECCO.

[35]  Houari A. Sahraoui,et al.  Search-based refactoring: Towards semantics preservation , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[36]  M. Barros An analysis of the effects of composite objectives in multiobjective software module clustering , 2012, GECCO '12.

[37]  Panita Meananeatra,et al.  Identifying refactoring sequences for improving software maintainability , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[38]  Danny Dig A Refactoring Approach to Parallelism , 2011, IEEE Software.

[39]  Emerson R. Murphy-Hill Improving usability of refactoring tools , 2006, OOPSLA '06.

[40]  Derek Rayside,et al.  Comparison of exact and approximate multi-objective optimization for software product lines , 2014, SPLC.

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

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

[43]  William G. Griswold,et al.  WitchDoctor: IDE support for real-time auto-completion of refactorings , 2012, 2012 34th International Conference on Software Engineering (ICSE).

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

[45]  Emerson R. Murphy-Hill,et al.  BeneFactor: a flexible refactoring tool for eclipse , 2011, OOPSLA Companion.

[46]  Miryung Kim,et al.  Ref-Finder: a refactoring reconstruction tool based on logic query templates , 2010, FSE '10.

[47]  Leon Moonen,et al.  Java quality assurance by detecting code smells , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[48]  Qingfu Zhang,et al.  MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition , 2007, IEEE Transactions on Evolutionary Computation.

[49]  David Chen,et al.  Design Principles and Patterns for Decisional Interoperability , 2005 .

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

[51]  Kalyanmoy Deb,et al.  Handling many-objective problems using an improved NSGA-II procedure , 2012, 2012 IEEE Congress on Evolutionary Computation.

[52]  Kalyanmoy Deb,et al.  An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Nondominated Sorting Approach, Part I: Solving Problems With Box Constraints , 2014, IEEE Transactions on Evolutionary Computation.

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

[54]  Lionel C. Briand,et al.  Solving the Class Responsibility Assignment Problem in Object-Oriented Analysis with Multi-Objective Genetic Algorithms , 2010, IEEE Transactions on Software Engineering.

[55]  Thelma Elita Colanzi,et al.  Applying Search Based Optimization to Software Product Line Architectures: Lessons Learned , 2012, SSBSE.

[56]  V. Basili Software modeling and measurement: the Goal/Question/Metric paradigm , 1992 .

[57]  Alexander Chatzigeorgiou,et al.  JDeodorant: Identification and Removal of Type-Checking Bad Smells , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[58]  John Mylopoulos,et al.  Quality-driven software re-engineering , 2003, J. Syst. Softw..

[59]  Norhan Abd Rahman,et al.  Simulation of Flood Extent Mapping by InfoWorks RS-Case Study for Tropical Catchment , 2011 .

[60]  Jouni Lampinen,et al.  Ranking-Dominance and Many-Objective Optimization , 2007, 2007 IEEE Congress on Evolutionary Computation.

[61]  Mohammad Alshayeb,et al.  Empirical investigation of refactoring effect on software quality , 2009, Inf. Softw. Technol..

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

[63]  Rachel Harrison,et al.  Multiobjective simulation optimisation in software project management , 2011, GECCO '11.

[64]  Rubén Saborido,et al.  A preference-based evolutionary algorithm for multiobjective optimization: the weighting achievement scalarizing function genetic algorithm , 2015, J. Glob. Optim..

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

[66]  Junichi Suzuki,et al.  Multiobjective Optimization of SLA-Aware Service Composition , 2008, 2008 IEEE Congress on Services - Part I.

[67]  Radu Marinescu,et al.  Detection strategies: metrics-based rules for detecting design flaws , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[68]  Houari A. Sahraoui,et al.  Maintainability defects detection and correction: a multi-objective approach , 2013, Automated Software Engineering.

[69]  Kalyanmoy Deb,et al.  Reference point based multi-objective optimization using evolutionary algorithms , 2006, GECCO.

[70]  Emerson R. Murphy-Hill,et al.  Manual refactoring changes with automated refactoring validation , 2014, ICSE.

[71]  Bart Du Bois,et al.  Describing the impact of refactoring on internal program quality , 2003 .

[72]  Gabriele Bavota,et al.  Detecting bad smells in source code using change history information , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[73]  Jan Verelst,et al.  Refactoring - improving coupling and cohesion of existing code , 2004, 11th Working Conference on Reverse Engineering.

[74]  Khaled Ghédira,et al.  The r-Dominance: A New Dominance Relation for Interactive Evolutionary Multicriteria Decision Making , 2010, IEEE Transactions on Evolutionary Computation.

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

[76]  Sergio Di Martino,et al.  LINSEN: An efficient approach to split identifiers and expand abbreviations , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

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

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

[79]  Stefan Biffl,et al.  Applied Soft Computing Software Project Portfolio Optimization with Advanced Multiobjective Evolutionary Algorithms , 2022 .

[80]  Sebastián Ventura,et al.  On the performance of multiple objective evolutionary algorithms for software architecture discovery , 2014, GECCO.

[81]  Marco Platzner,et al.  Exploiting Parallelism in Constraint Satisfaction for Qualitative Simulation , 1996 .

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

[83]  Mika Mäntylä,et al.  A taxonomy and an initial empirical study of bad smells in code , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[84]  Peter J. Fleming,et al.  Preference-Inspired Coevolutionary Algorithms for Many-Objective Optimization , 2013, IEEE Transactions on Evolutionary Computation.

[85]  Eckart Zitzler,et al.  HypE: An Algorithm for Fast Hypervolume-Based Many-Objective Optimization , 2011, Evolutionary Computation.