Skip to main content
Log in

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

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

References

  • Abreu F-B (1995) The MOOD Metrics Set, Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Workshop on Metrics, Vol. 95, p. 267

  • Alshayeb M (2009) Empirical investigation of refactoring effect on software quality. Inf Softw Technol 51(9):1319–1326

    Article  Google Scholar 

  • Arcuri A, Fraser G (2013) Parameter tuning or default values? An empirical investigation in search-based software engineering. Empir Softw Eng 18(3):594–623

    Article  Google Scholar 

  • Asafuddoula M, Ray T, Sarker R (2013) A decomposition based evolutionary algorithm for many objective optimization with systematic sampling and adaptive epsilon control. Evol Multi-Criterion Optim 7811:413–427

    Article  Google Scholar 

  • Bader J, Zitzler E (2011) HypE: an algorithm for fast hypervolume-based many-objective optimization. Evol Comput 19(1):45–76

    Article  Google Scholar 

  • Bansiya J, Davis C-G (2002) A hierarchical model for object-oriented design quality assessment. IEEE Trans Softw Eng 28(1):4–17. doi:10.1109/32.979986

    Article  Google Scholar 

  • Barros M-O (2012) An analysis of the effects of composite objectives in multiobjective software module clustering. In Proceedings of the 14th annual conference on Genetic and evolutionary computation (GECCO ’12), T Soule (Ed.). ACM, New York, NY, USA, 1205–1212. Doi: 10.1145/2330163.2330330

  • Basili V-R (1992) Software modeling and measurement: the Goal/Question/Metric paradigm. Technical Report. University of Maryland at College Park, College Park, MD, USA

  • Bechikh, S., Ben Said, L., & Ghedira, K. (2010). Estimating nadir point in multi-objective optimization using mobile reference points. In Evolutionary computation (CEC), 2010 I.E. congress on (pp. 1-9). IEEE

  • Bechikh S, Ben Said L, Ghédira K (2011) Searching for knee regions of the Pareto front using mobile reference points. Soft computing. Soft Comput Fusion Found, Methodologies Appl 15(9):1807–1823

    Google Scholar 

  • Ben Said L, Bechikh S, Ghédira K (2010) The r-dominance: a new dominance relation for interactive evolutionary multicriteria decision making. Proc IEEE Trans Evol Comput 14(5):801–818

    Article  Google Scholar 

  • Bowman M, Briand L-C, Labiche Y (2010) Solving the class responsibility assignment problem in object-oriented analysis with multi-objective genetic algorithms. Softw Eng, IEEE Trans 36(6):817–837. doi:10.1109/TSE.2010.70

    Article  Google Scholar 

  • Brown, W. J., Malveau, R. C., Brown, W. H., and Mowbray, T-J (1998) Anti-Patterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley, 1st Ed

  • Chidamber S-R, Kemerer C-F (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493

    Article  Google Scholar 

  • Colanzi T-E, Vergilio S-R (2012) Applying search based optimization to software product line architectures: lessons learned. In Proceedings of the 4th international conference on Search Based Software Engineering (SSBSE’12), Gordon Fraser and Jerffeson T. Souza de (Ed). Springer-Verlag, Berlin, Heidelberg, 259–266. Doi: 10.1007/978-3-642-33119-0_19

  • Corazza A, Di Martino S, Maggio V (2012) LINSEN: an efficient approach to split identifiers and expand abbreviations. In Proceedings of IEEE International Conference on Software Maintenance, pp.233–242

  • Counsell S, Hierons R-M, Najjar R, Loizou, G, Hassoun Y (2006) The effectiveness of refactoring, Based on a compatibility testing taxonomy and a dependency graph. Practice and research techniques, In Testing: Academic and Industrial Conference-Practice and Research Techniques, 2006. TAIC PART 2006. Proceedings, 181–192

  • Dean J, Grove D, Chambers G (1995) Optimization of object-oriented programs using static class hierarchy analysis, Proceedings of the 9th European Conference on Object-Oriented Programming, p.77–101

  • Deb K (2001) Multiobjective otpimization using evolutionary algorithms. Wiley, New York

    Google Scholar 

  • Deb K, Jain H (2012) Handling many-objective problems using an improved NSGA-II procedure. In Proceedings of IEEE Congress on Evolutionary Computation. 1–8

  • Deb K, Jain H (2013) An evolutionary many-objective optimization algorithm using reference-point based Non-dominated sorting approach, part I: solving problems with Box constraints. Evol Comput, IEEE Trans 18(4):577–601

    Article  Google Scholar 

  • Deb K, Saxena D-K (2006) Searching for pareto-optimal solutions through dimensionality reduction for certain large-dimensional multiobjective optimization problems. In Proceedings of IEEE Congress on Evolutionary Computation. 3353–3360

  • Deb K, Pratap A, Agarwal S, Meyarivan T (2002) A fast and elitist multiobjective genetic algorithm: NSGA-II. In proceedings of. IEEE Trans Evol Comput 6(2):182–197

    Article  Google Scholar 

  • Deb K, Sundar J, Uday N, Chaudhuri S (2006) Reference point based multi-objective optimization using evolutionary algorithms. Int J Comput Intell Res (IJCIR’06) 2(6):273–286

    MathSciNet  Google Scholar 

  • di Pierro F, Khu S-T, Savic D-A (2007) An investigation on preference order ranking scheme for multiobjective evolutionary optimization. Proc IEEE Trans Evol Comput 11(1):17–45

    Article  Google Scholar 

  • Dig D (2011) A refactoring approach to parallelism. IEEE Softw 28(1):17–22

    Article  Google Scholar 

  • Du Bois B, Mens T (2003) Describing the impact of refactoring on internal program quality. In International Workshop on Evolution of Large-scale Industrial Software Applications, 37–48

  • Du Bois B, Demeyer S, Verelst J (2004) Refactoring—Improving coupling and cohesion of existing code, Proceedings of the 11th Working Conference on Reverse Engineering. pp. 144–151

  • Foster S-R, Griswold W-G, Lerner S (2012, June) WitchDoctor: IDE support for real-time auto-completion of refactorings. In Proceedings of the 34th International Conference on Software Engineering, 222–232

  • Fowler M, Beck K, Brant J, Opdyke W, Roberts D (1999) Refactoring – Improving the Design of Existing Code. 1st ed. Addison-Wesley

  • Garza-Fabre M, Toscano-Pulido G, Coello Coello C-A, Rodriguez-Tello E (2011) Effective ranking + speciation = Many-objective optimization, In Evolutionary Computation (CEC), 2011 I.E. Congress on pp. 2115–2122

  • Ge X, Murphy-Hill E (2011) BeneFactor: a flexible refactoring tool for eclipse. In Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion (OOPSLA ’11). ACM, New York, NY, USA, 19–20. Doi: 10.1145/2048147.2048157

  • Ge X, Murphy-Hill E (2014) Manual refactoring changes with automated refactoring validation. In Proceedings of the 36th International Conference on Software Engineering (ICSE 2014). ACM, New York, NY, USA, 1095–1105. Doi: 10.1145/2568225.2568280

  • Harman M (2013) Software Engineering: An Ideal Set of Challenges for Evolutionary Computation, In GECCO ’13, 1759–1760

  • Harman M, Jones BF (2001) Search-based software engineering. Inf Softw Technol 43(14):833–839

    Article  Google Scholar 

  • Harman M, Tratt L (2007) Pareto optimal search based refactoring at the design level. In GECCO’07. 1106–1113

  • Harman M, Mansouri S-A, Zhang Y (2012) Search-based software engineering: trends, techniques and applications. ACM Comput Surv (CSUR) 45(1):11

    Article  Google Scholar 

  • Jaimes A-L, Coello Coello, C-A, Barrientos J-E-U. (2009). Online Objective Reduction to Deal with Many-objective Problems. In the 5th international conference on Evolutionary Multicriterion Optimization. 423–437

  • Jain H, Deb K (2014). An evolutionary many-objective optimization algorithm using reference-point based non-dominated sorting approach, part II: handling constraints and extending to an adaptive approach. In Proceedings of IEEE Trans Evol Comput 18(4):602--622

  • Kalboussi S, Bechikh S, Kessentini M, Ben Said L (2013) Preference-based Many-objective Evolutionary Testing Generates Harder Test Cases for Autonomous Agents, in Proc. 5th International Symposium on Search-Based Software Engineering 2013 (SSBSE’13), 245–250

  • Kataoka Y, Notkin D, Ernst M-D, Griswold W-G. (2001) Automated support for program refactoring using invariants. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM’01) 736

  • Kessentini M, Kessentini W, Sahraoui H, Boukadoum M, Ouni A (2011) Design defects detection and correction by example. In ICPC’11. 81–90

  • Kim M, Gee M, Loh A, Rachatasumrit N (2010) Ref-Finder: a refactoring reconstruction tool based on logic query templates. In Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering (FSE ’10). ACM, New York, NY, USA, 371–372. Doi: 10.1145/1882291.1882353

  • Kremmel T, Kubalík J, Biffl S (2011) Software project portfolio optimization with advanced multiobjective evolutionary algorithms. Appl Soft Comput 11(1):1416–1426

    Article  Google Scholar 

  • Kukkonen S, Lampinen J (2007) Ranking-dominance and many-objective optimization. In Proceedings of IEEE Congress on Evolutionary Computation (CEC), 3983–3990

  • Lorenz M, Kidd J (1994) Object-oriented software metrics: a practical guide. Prentice-Hall, Inc

  • Mäntylä L, Vanhanen J, Lassenius C (2003) A Taxonomy and an Initial Empirical Study of Bad Smells in Code. In Proceedings of the International Conference on Software Maintenance (ICSM ’03). IEEE Computer Society, Washington, DC, USA, 381–384

  • Marinescu R (2004) Detection Strategies: Metrics-Based Rules for Detecting Design Flaws. In Proceedings of the 20th IEEE International Conference on Software Maintenance (ICSM ’04). IEEE Computer Society, Washington, DC, USA, 350–359

  • Marinescu R, Ganea G, Verebi I (2010) InCode: continuous quality assessment and improvement. In Software Maintenance and Reengineering (CSMR), 2010 14th European Conference on, 274–275

  • Martin R-C (2000) Design principles and design patterns. Object Mentor 1:34

    Google Scholar 

  • Meananeatra P (2012) Identifying refactoring sequences for improving software maintainability. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE 2012). ACM, New York, NY, USA, 406–409. Doi: 10.1145/2351676.2351760

  • Mkaouer M-W, Kessentini M, Bechikh S, Deb K, Ó Cinnéide M (2014). High Dimensional Search-Based Software Engineering: Finding Tradeoffs Among 15 objectives for Automated Software Refactoring using NSGA-III, In Proc. Genetic and Evolutionary Computation Conference (GECCO’14), 1263–1270

  • Mkaouer M-W, Kessentini M, Shaout A, Koligheu P, Bechikh S, Deb K, Ouni A (2015) Many-objective software remodularization using NSGA-III. ACM Trans Softw Eng Methodol (TOSEM) 24(3):17

    Article  Google Scholar 

  • Moha N, Guéhéneuc Y-G, Duchien L, Le Meur A.-F (2009) DECOR: A Method for the Specification and Detection of Code and Design Smells. In TSE, vol 12, 20–36

  • Murphy-Hill E (2006) Improving usability of refactoring tools. In Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications (OOPSLA ’06). ACM, New York, NY, USA, 746–747. Doi: 10.1145/1176617.1176705

  • Ó Cinnéide M, Tratt L, Harman M, Counsell S, Moghadam I-H (2012). Experimental Assessment of Software Metrics Using Automated Refactoring. In ESEM’12, 49–58

  • O’Keeffe M-K, Ó Cinnéide M (2008) Search-based refactoring for software maintenance. J Syst Softw 81(4):502–516

    Article  Google Scholar 

  • Olaechea R, Rayside D, Guo J, Czarnecki K (2014) Comparison of exact and approximate multi-objective optimization for software product lines. In Proceedings of the 18th International Software Product Line Conference - Volume 1 (SPLC ’14), Stefania Gnesi, Alessandro Fantechi, Patrick Heymans, Julia Rubin, Krzysztof Czarnecki, and Deepak Dhungana (Eds.), Vol. 1. ACM, New York, NY, USA, 92–101. Doi: 10.1145/2648511.2648521

  • Ouni A, Kessentini M, Sahraoui H, Boukadoum M (2012a) Maintainability defects detection and correction: a multi-objective approach. J Autom Softw Eng 20:47–79

    Article  Google Scholar 

  • Ouni A, Kessentini M, Sahraoui H A, Hamdi MS (2012) Search-based refactoring: Towards semantics preservation. ICSM 347–356

  • Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A, Poshyvanyk D (2013) Detecting Bad Smells in Source Code Using Change History Information. IEEE/ACM 28th International Conference on Automated Software Engineering (ASE), 268–278

  • Piveta E-K, Pimenta M-S, Araújo J, Moreira A, Guerreiro P, Price R-T (2006) Detecting bad smells in aspectJ. J UCS 12(7):811–827

    Google Scholar 

  • Praditwong K, Harman M, Yao X (2010) Software module clustering as a multi-objective search problem. Softw Eng IEEE Trans 37(2):264–282. doi:10.1109/TSE.2010.26

    Article  Google Scholar 

  • Rachmawati L, Srinivasan D (2009) Multiobjective evolutionary algorithm with controllable focus on the knees of the Pareto front. IEEE Trans Evol Comput 13(4):810–824

    Article  Google Scholar 

  • Ramírez A, Romero J-R, Ventura S (2014) On the performance of multiple objective evolutionary algorithms for software architecture discovery. In Proceedings of the 2014 Conference on Genetic and Evolutionary Computation (GECCO ’14). ACM, New York, NY, USA, 1287–1294. doi: 10.1145/2576768.2598310

  • Rodriguez D, Ruiz M, Riquelme J-C, Harrison R (2011) Multiobjective simulation optimisation in software project management. In Proceedings of the 13th annual conference on Genetic and evolutionary computation (GECCO ’11), Natalio Krasnogor (Ed.). ACM, New York, NY, USA, 1883–1890

  • Sarro F, Ferrucci F, Gravino C (2012) Single and Multi Objective Genetic Programming for software development effort estimation. In Proceedings of the 27th Annual ACM Symposium on Applied Computing (SAC ’12). ACM, New York, NY, USA, 1221-1226. Doi: 10.1145/2245276.2231968

  • Sayyad A, Menzies T, Ammar H (2013) On the value of user preferences in search-based software engineering: a case study in software product lines. In ICSE ’13. 492–501

  • Sayyad A-S, Ingram J, Menzies T, Ammar H (2013) Scalable product line configuration: A straw to break the camel’s back, Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on, vol., no., pp.465–474, 2013. doi: 10.1109/ASE.2013.6693104

  • Seng O, Stammel J, Burkhart D (2006) Search-based determination of refactorings for improving the class structure of object-oriented systems. In GECCO’06. 1909–1916

  • Shatnawi R, Li W (2011) An empirical assessment of refactoring impact on software quality using a hierarchical quality model. Int J Softw Eng Appl 5(4):127–149

    Google Scholar 

  • Singh H-K, Isaacs A, Ray T (2011) A Pareto corner search evolutionary algorithm and dimensionality reduction in many-objective optimization problems. Proc IEEE Trans Evol Comput 99:1–18

    Google Scholar 

  • Tahvildari L, Kontogiannis K, Mylopoulos J (2003) Quality-driven software re-engineering. J Syst Softw 66(3):225–239. doi:10.1016/S0164-1212(02)00082-1

    Article  Google Scholar 

  • Thiele L, Miettinen K, Korhonen P-J, Luque J-M (2009) A preference-based evolutionary algorithm for multi-objective optimization. Evol Comput 17(3):411–436

    Article  Google Scholar 

  • Tsantalis N, Chaikalis T, Chatzigeorgiou A (2008) JDeodorant: Identification and Removal of Type-Checking Bad Smells. In Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering (CSMR ’08). IEEE Computer Society, Washington, DC, USA, 329–331. Doi: 10.1109/CSMR.2008.4493342

  • Van Emden E, Moonen L (2002) Java Quality Assurance by Detecting Code Smells. In Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE ’02). IEEE Computer Society, Washington, DC, USA, 97

  • Wada H, Champrasert P, Suzuki J, Oba K (2008, July) Multiobjective optimization of sla-aware service composition. In Services-Part I, 2008. IEEE Congress on, 368–375 doi: 10.1109/SERVICES-1.2008.77

  • Wang R, Purshouse R-C, Fleming P-J (2013) Preference-inspired coevolutionary algorithms for many-objective optimization. Proc IEEE Trans Evol Comput 17(4):474–494

    Article  Google Scholar 

  • Yang S, Li M, Liu X, Zheng J (2013) A grid-based evolutionary algorithm for many-objective optimization. Evol Comput, IEEE Trans 17(5):721–736

    Article  Google Scholar 

  • Yao X (2013) Some Recent Work on Multi-objective Approaches to Search-Based Software Engineering In Proc. 5th Symp. on Search Based Software Engineering (SSBSE), vol. 8084, 4–15

  • Zhang Q, Li H (2007) MOEA/D: a multiobjective evolutionary algorithm based on decomposition. Proc IEEE Trans Evol Comput 11(6):712–731

    Article  Google Scholar 

  • Zhuang L, HeQing G, Dong L, Tao H, Juan Juan Z (2007) Solving Multi-Objective and Fuzzy Multi-Attributive Integrated Technique for QoS-Aware Web Service Selection, In Wireless Communications, Networking and Mobile Computing, 2007. WiCom 2007. International Conference on, 735–739 doi: 10.1109/WICOM.2007.190

  • Zitzler E, Künzli S (2004) Indicator-based selection in multiobjective search Parallel Problem Solving from Nature. In Parallel Problem Solving from Nature-PPSN VIII, 832–842, Springer: Berlin Heidelberg

Download references

Acknowledgments

This work was supported, in part, by the Institute for Advanced Vehicle Systems-Michigan grant, the UM-Ford Alliance Program and the Science Foundation Ireland grant 10/CE/I1855 to Lero - the Irish Software Engineering Research Centre.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohamed Wiem Mkaouer.

Additional information

Communicated by: Marouane Kessentini and Guenther Ruhe

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Mkaouer, M.W., Kessentini, M., Bechikh, S. et al. On the use of many quality attributes for software refactoring: a many-objective search-based software engineering approach. Empir Software Eng 21, 2503–2545 (2016). https://doi.org/10.1007/s10664-015-9414-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-015-9414-4

Keywords

Navigation