MORE: A multi‐objective refactoring recommendation approach to introducing design patterns and fixing code smells
dc.contributor.author | Ouni, Ali | |
dc.contributor.author | Kessentini, Marouane | |
dc.contributor.author | Ó cinnéide, Mel | |
dc.contributor.author | Sahraoui, Houari | |
dc.contributor.author | Deb, Kalyanmoy | |
dc.contributor.author | Inoue, Katsuro | |
dc.date.accessioned | 2017-06-16T20:15:51Z | |
dc.date.available | 2018-07-09T17:42:25Z | en |
dc.date.issued | 2017-05 | |
dc.identifier.citation | Ouni, Ali; Kessentini, Marouane; Ó cinnéide, Mel ; Sahraoui, Houari; Deb, Kalyanmoy; Inoue, Katsuro (2017). "MORE: A multi‐objective refactoring recommendation approach to introducing design patterns and fixing code smells." Journal of Software: Evolution and Process 29(5): n/a-n/a. | |
dc.identifier.issn | 2047-7473 | |
dc.identifier.issn | 2047-7481 | |
dc.identifier.uri | https://hdl.handle.net/2027.42/137556 | |
dc.publisher | John Wiley & Sons, Ltd | |
dc.subject.other | software quality | |
dc.subject.other | design patterns | |
dc.subject.other | code smells | |
dc.subject.other | refactoring | |
dc.subject.other | search‐based software engineering | |
dc.title | MORE: A multi‐objective refactoring recommendation approach to introducing design patterns and fixing code smells | |
dc.type | Article | en_US |
dc.rights.robots | IndexNoFollow | |
dc.subject.hlbsecondlevel | Computer Science | |
dc.subject.hlbtoplevel | Engineering | |
dc.description.peerreviewed | Peer Reviewed | |
dc.description.bitstreamurl | https://deepblue.lib.umich.edu/bitstream/2027.42/137556/1/smr1843.pdf | |
dc.description.bitstreamurl | https://deepblue.lib.umich.edu/bitstream/2027.42/137556/2/smr1843_am.pdf | |
dc.identifier.doi | 10.1002/smr.1843 | |
dc.identifier.source | Journal of Software: Evolution and Process | |
dc.identifier.citedreference | Olbrich S, Cruzes DS, Basili V, Zazworka N. The evolution and impact of code smells: A case study of two open source systems. 3rd International Symposium on Empirical Software Engineering and Measurement; 2009: 390 – 400. | |
dc.identifier.citedreference | Fatiregun D, Harman M, Hierons R. Evolving transformation sequences using genetic algorithms. 4th International Workshop on Source Code Analysis and Manipulation, SCAM ’04, Los Alamitos, California, USA; 2004: 65 – 74. | |
dc.identifier.citedreference | Simons C, Singer J, White DR. Search‐based refactoring: Metrics are not enough.. In: Barros Márcio, Labiche Yvan, eds. Search‐based software engineering, Lecture Notes in Computer Science, vol. 9275: Springer International Publishing, Bergamo, Italy; 2015: 47 – 61. | |
dc.identifier.citedreference | Fokaefs M, Tsantalis N, Chatzigeorgiou A. Jdeodorant: Identification and removal of feature envy bad smells. IEEE International Conference on Software Maintenance (ICSM); 2007: 519 – 520. | |
dc.identifier.citedreference | Tsantalis N, Chatzigeorgiou A. Identification of extract method refactoring opportunities for the decomposition of methods. J Syst Software. 2011; 84 ( 10 ): 1757 – 1782. | |
dc.identifier.citedreference | Bavota G, Lucia A, Marcus A, Oliveto R. Automating extract class refactoring: an improved method and its evaluation. Empirical Software Eng. 2014; 19 ( 6 ): 1617 – 1664. | |
dc.identifier.citedreference | Ouni A, Kessentini M, Inoue K, O Cinneide M. Search‐based web service antipatterns detection. IEEE Trans Serv Comput. 2015; PP ( 99 ): 14 (to appear). | |
dc.identifier.citedreference | Ouni A, Gaikovina Kula R, Kessentini M, Inoue K. Web service antipatterns detection using genetic programming. Genetic and evolutionary computation conference, GECCO’15, ACM, Madrid, Spain; 2015: 1351 – 1358. | |
dc.identifier.citedreference | Ouni A, Salem Z, Inoue K, Soui M. SIM: an automated approach to improve web service interface modularization; 2016: 91 – 98. | |
dc.identifier.citedreference | Wang H, Kessentini M, Ouni A. Bi‐level identification of web service defects. 14th International Conference on Service‐Oriented Computing ICSOC, Springer International Publishing, Banff, AB, Canada; 2016: 352 – 368. | |
dc.identifier.citedreference | Poshyvanyk D, Marcus A. The conceptual coupling metrics for object‐oriented systems. 22nd IEEE International Conference on Software Maintenance (ICSM), Washington, DC, USA; 2006: 469 – 478. | |
dc.identifier.citedreference | Marcus A, Poshyvanyk D, Ferenc R. Using the conceptual cohesion of classes for fault prediction in object‐oriented systems. IEEE Trans Software Eng. 2008; 34 ( 2 ): 287 – 300. | |
dc.identifier.citedreference | Bavota G, Dit B, Oliveto R, Di Penta M, Poshyvanyk D, De Lucia A. An empirical study on the developers’ perception of software coupling. International Conference on Software Engineering (ICSE); 2013: 692 – 701. | |
dc.identifier.citedreference | Eden AH, Yehudai A, Gil J. Precise specification and automatic application of design patterns. 12th International Conference on Automated Software Engineering (Formerly: KBSE), ASE ’97. Washington, DC, USA: IEEE Computer Society; 1997: 143 –. | |
dc.identifier.citedreference | El Boussaidi G, Mili H. Understanding design patterns what is the problem? Software: Pract Experience. 2012; 42 ( 12 ): 1495 – 1529. | |
dc.identifier.citedreference | Murphy‐Hill E, Black AP. Refactoring tools: Fitness for purpose. IEEE Software. 2008; 25 ( 5 ): 38 – 44. | |
dc.identifier.citedreference | Murphy‐Hill E, Black AP. Breaking the barriers to successful refactoring: Observations and tools for extract method. 30th International Conference on Software Engineering (ICSE), ICSE ’08. New York, NY, USA: ACM; 2008: 421 – 430. | |
dc.identifier.citedreference | Murphy‐Hill E, Black A. Programmer‐friendly refactoring errors. IEEE Trans Software Eng. 2012; 38 ( 6 ): 1417 – 1431. | |
dc.identifier.citedreference | Ge X, Murphy‐Hill E. Manual refactoring changes with automated refactoring validation. 36th International Conference on Software Engineering (ICSE), New York, NY, USA; 2014: 1095 – 1105. | |
dc.identifier.citedreference | Mens T, Van Eetvelde N, Demeyer S, Janssens D. Formalizing refactorings with graph transformations: Research articles. J Software Maintenance Evol. 2005; 17 ( 4 ): 247 – 276. | |
dc.identifier.citedreference | Bavota G, De Lucia A, Marcus A, Oliveto R. A two‐step technique for extract class refactoring. IEEE/ACM International Conference on Automated Software Engineering. New York, NY, USA: ACM; 2010: 151 – 154. | |
dc.identifier.citedreference | Verbaere M, Ettinger R, de Moor O. Jungl: a scripting language for refactoring. 28th International Conference on Software Engineering (ICSE). New York, NY, USA: ACM Press; 2006: 172181. | |
dc.identifier.citedreference | Steimann F, Kollee C, von Pilgrim J. A refactoring constraint language and its application to eiffel. 25th European Conference on Object‐Oriented Programming (ECOOP). Berlin, Heidelberg: Springer‐Verlag; 2011: 255 – 280. | |
dc.identifier.citedreference | Dallal JA. Identifying refactoring opportunities in object‐oriented code: A systematic literature review. Inf Software Technol. 2015; 58: 231 – 249. | |
dc.identifier.citedreference | Lehman MM, Belady LA. Program Evolution: Processes of Software Change. San Diego, CA, USA: Academic Press Professional, Inc.; 1985. | |
dc.identifier.citedreference | Fowler M. Refactoring: Improving the design of existing code. Boston, MA, USA: Addison‐Wesley Longman Publishing Co., Inc.; 1999. | |
dc.identifier.citedreference | Kerievsky J. Refactoring to Patterns. Einbeck, Germany: Pearson Deutschland GmbH; 2005. | |
dc.identifier.citedreference | Murphy‐Hill E, Parnin C, Black AP. How we refactor, and how we know it. IEEE Trans Software Eng. 2012; 38 ( 1 ): 5 – 18. | |
dc.identifier.citedreference | Ge X, Murphy‐Hill E. Benefactor: a flexible refactoring tool for eclipse. ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion; 2011: 19 – 20. | |
dc.identifier.citedreference | Harman M, Tratt L. Pareto optimal search based refactoring at the design level. 9th Annual Conference on Genetic and Evolutionary Computation; 2007: 1106 – 1113. | |
dc.identifier.citedreference | OKeeffe M, Cinnéide MO. Search‐based refactoring for software maintenance. J Syst Software. 2008; 81 ( 4 ): 502 – 516. | |
dc.identifier.citedreference | Ouni A, Kessentini M, Sahraoui H, Inoue K, Hamdi MS. Improving multi‐objective code‐smells correction using development history. J Syst Software. 2015; 105 ( 0 ): 18 – 39. | |
dc.identifier.citedreference | Negara S, Chen N, Vakilian M, Johnson RE, Dig D. A comparative study of manual and automated refactorings. Object‐Oriented Programming (ECOOP): Springer, Montpellier, France; 2013: 552 – 576. | |
dc.identifier.citedreference | Kim M, Zimmermann T, Nagappan N. A field study of refactoring challenges and benefits. ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering; 2012: 50. | |
dc.identifier.citedreference | Seng O, Stammel J, Burkhart D. Search‐based determination of refactorings for improving the class structure of object‐oriented systems. 8th Annual Conference on Genetic and Evolutionary Computation; 2006: 1909 – 1916. | |
dc.identifier.citedreference | Bavota G, De Lucia A, Marcus A, Oliveto R, Palomba F. Supporting extract class refactoring in eclipse: the aries project. 34th International Conference on Software Engineering (ICSE); 2012: 1419 – 1422. | |
dc.identifier.citedreference | Brown WJ, McCormick HW, Mowbray TJ, Malveau RC. Antipatterns: Refactoring Software, Architectures, and Projects in Crisis. New York: Wiley; 1998. | |
dc.identifier.citedreference | Gamma E, Helm R, Johnson R, Vlissides J. Design Patterns: Elements of Reusable object‐Oriented Software. USA: Pearson Education; 1994. | |
dc.identifier.citedreference | Cinnéide MO. Automated application of design patterns: a refactoring approach. Ph.D. Thesis, 2001. | |
dc.identifier.citedreference | Kim J, Batory D, Dig D. Scripting parametric refactorings in java to retrofit design patterns. IEEE International Conference on Software Maintenance and Evolution (ICSME); 2015: 211 – 220. | |
dc.identifier.citedreference | Cinnéide M, Nixon P. A methodology for the automated introduction of design patterns. IEEE International Conference on Software Maintenance (ICSM); 1999: 463 – 472. | |
dc.identifier.citedreference | Jensen AC, Cheng BH. On the use of genetic programming for automated refactoring and the introduction of design patterns. 12th Annual Conference on Genetic and Evolutionary Computation; 2010: 1341 – 1348. | |
dc.identifier.citedreference | Khomh F, Gueheneuc YG. Do design patterns impact software quality positively? 12th European Conference on Software Maintenance and Reengineering (CSMR); 2008: 274 – 278. | |
dc.identifier.citedreference | Ververs F, Pronk C. On the interaction between metrics and patterns. Proceedings of the International Conference on Object Oriented Information Systems. Dublin: IEEE Computer Society; 1995: 303 – 314. | |
dc.identifier.citedreference | Soetens Q, Demeyer S. Studying the effect of refactorings: A complexity metrics perspective. Seventh International Conference on the Quality of Information and Communications Technology (QUATIC’2010); 2010: 313 – 318. | |
dc.identifier.citedreference | Stroggylos K, Spinellis D. Refactoring–does it improve software quality? 5th International Workshop on Software Quality, WoSQ ’07, IEEE Computer Society, Minneapolis, MN, USA; 2007: 10 – 10. | |
dc.identifier.citedreference | Kannangara SH, Wijayanayake W. An Empirical Evaluation of Impact of Refactoring on Internal and External Measures of Code Quality. Int J Software Engineer Appl. 2015; 6 ( 1 ): 51 – 67. | |
dc.identifier.citedreference | Wilking D, Khan U, Kowalewski S. An Empirical Evaluation of Refactoring. E‐Inf Software Eng J. 2007; 1 ( 1 ): 27 – 42. | |
dc.identifier.citedreference | Counsell S, Hierons RM, Hamza H, Black S, Durrand M. Exploring the Eradication of Code Smells: An Empirical and Theoretical Perspective. Adv Software Eng. 2010; 2010: 1 – 12. | |
dc.identifier.citedreference | Chatzigeorgiou A, Manakos A. Investigating the Evolution of Bad Smells in Object‐Oriented Code. International Conference on the Quality of Information and Communications Technology (QUATIC); 2010: 106 – 115. | |
dc.identifier.citedreference | Ó Cinnéide M, Tratt L, Harman M, Counsell S, Hemati Moghadam I. Experimental assessment of software metrics using automated refactoring. International Symposium on Empirical Software Engineering and Measurement, ESEM ’12; 2012: 49 – 58. | |
dc.identifier.citedreference | Ouni A, Kessentini M, Sahraoui H, Ó Cinnéide M, Deb K, Inoue K. A multi‐objective refactoring approach to introduce design patterns and fix anti‐patterns. 2015 North American Search Based Software Engineering Symposium (NasBASE); 2015. | |
dc.identifier.citedreference | Deb K, Pratap A, Agarwal S, Meyarivan TAMT. A fast and elitist multiobjective genetic algorithm: Nsga‐ii. IEEE Trans Evol Comput. 2002; 6 ( 2 ): 182 – 197. | |
dc.identifier.citedreference | Deb K, Jain H. An evolutionary many‐objective optimization algorithm using reference‐point‐based nondominated sorting approach, part i: Solving problems with box constraints. IEEE Trans Evol Comput. 2014; 18 ( 4 ): 577 – 601. | |
dc.identifier.citedreference | Bansiya J, Davis CG. A hierarchical model for object‐oriented design quality assessment. IEEE Trans Software Eng. 2002; 28 ( 1 ): 4 – 17. | |
dc.identifier.citedreference | Opdyke WF. Refactoring: An aid in designing application frameworks and evolving object‐oriented systems. Symposium on Object‐Oriented Programming Emphasizing Practical Applications (SOOPPA); 1990. | |
dc.identifier.citedreference | Opdyke WF. Refactoring object‐oriented frameworks. Ph.D. Thesis, 1992. | |
dc.identifier.citedreference | Mens T, Tourwé T. A survey of software refactoring. IEEE Trans Software Eng. 2004; 30 ( 2 ): 126 – 139. | |
dc.identifier.citedreference | Mantyla M, Vanhanen J, Lassenius C. A taxonomy and an initial empirical study of bad smells in code. IEEE International Conference on Software Maintenance (ICSM); 2003. | |
dc.identifier.citedreference | Ouni A, Kessentini M, Sahraoui H, Inoue K, Deb K. Multi‐criteria code refactoring using search‐based software engineering: An industrial case study. ACM Trans Software Eng Method. 2016; 25 ( 3 ): 23:1 – 23:53. | |
dc.identifier.citedreference | Ouni A, Kessentini M, Sahraoui H, Boukadoum M. Maintainability defects detection and correction: a multi‐objective approach. Autom Software Eng. 2013; 20 ( 1 ): 47 – 79. | |
dc.identifier.citedreference | Fokaefs M, Tsantalis N, Stroulia E, Chatzigeorgiou A. Jdeodorant: identification and application of extract class refactorings. 33rd International Conference on Software Engineering (ICSE); 2011: 1037 – 1039. | |
dc.identifier.citedreference | Li W, Shatnawi R. An empirical study of the bad smells and class error probability in the post‐release object‐oriented system evolution. J Sys Software. 2007; 80 ( 7 ): 1120 – 1128. | |
dc.identifier.citedreference | Wirfs‐Brock R, McKean A. Object Design: Roles, Responsibilities, and Collaborations. Boston, USA: Addison‐Wesley Professional; 2003. | |
dc.identifier.citedreference | Riel AJ. Object‐Oriented Design Heuristics, vol. 338. Switzerland: Addison‐Wesley Reading; 1996. | |
dc.identifier.citedreference | Harman M, Jones BF. Search‐based software engineering. Inf Software Technol. 2001; 43 ( 14 ): 833 – 839. | |
dc.identifier.citedreference | Harman M. The current state and future of search based software engineering. Future of software engineering (fose). IEEE, Dubrovnik, Croatia; 2007: 342 – 357. | |
dc.identifier.citedreference | Harman M, Mansouri SA, Zhang Y. Search‐based software engineering: Trends, techniques and applications. ACM Comput Surv. 2012; 45 ( 1 ): 1 – 61. | |
dc.identifier.citedreference | Harman M, Mansouri S, Zhang Y. Search based software engineering: A comprehensive analysis and review of trends techniques and applications, Kings College, London, UK, Tech. Rep. TR‐09‐03; 2009. | |
dc.identifier.citedreference | Lam P, Bodden E, Lhoták O, Hendren L. The soot framework for java program analysis: a retrospective. Cetus users and Compiler Infastructure Workshop (CETUS), IEEE, Portland, Oregon, USA; 2011: 8. | |
dc.identifier.citedreference | Heuzeroth D, Holl T, Hogstrom G, Lowe W. Automatic design pattern detection. Program Comprehension, 2003. 11th IEEE International Workshop on, IEEE, Portland, Oregon, USA; 2003: 94 – 103. | |
dc.identifier.citedreference | Ajouli A, Cohen J, Royer JC. Transformations between composite and visitor implementations in java. 39th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA); 2013: 25 – 32. | |
dc.identifier.citedreference | Ajouli A. Vues et transformations de programmes pour la modularité des évolutions. Ph.D. Thesis, 2013. | |
dc.identifier.citedreference | Ouni A, Kessentini M, Sahraoui H, Hamdi MS. Search‐based refactoring: Towards semantics preservation. 28th IEEE International Conference on Software Maintenance (ICSM); 2012: 347 – 356. | |
dc.identifier.citedreference | Harman M, Mansouri SA, Zhang Y. Search‐based software engineering: Trends, techniques and applications. ACM Comput Surv (CSUR). 2012; 45 ( 1 ): 11. | |
dc.identifier.citedreference | Bavota G, Oliveto R, Gethers M, Poshyvanyk D, De Lucia A. Methodbook: Recommending move method refactorings via relational topic models. IEEE Trans Software Eng. 2014; 40 ( 7 ): 671 – 694. | |
dc.identifier.citedreference | Dean J, Grove D, Chambers C. Optimization of object‐oriented programs using static class hierarchy analysis. 9th European Conference on Object‐Oriented Programming (ECOOP); 1995: 77 – 101. | |
dc.identifier.citedreference | Rattan D, Bhatia R, Singh M. Software clone detection: A systematic review. Inf Software Technol. 2013; 55 ( 7 ): 1165 – 1199. | |
dc.identifier.citedreference | Bacon DF, Sweeney PF. Fast static analysis of c++ virtual function calls. 11th ACM SIGPLAN Conference on Object‐Oriented Programming, Systems, Languages, and Applications (OOPSLA); 1996: 324 – 341. | |
dc.identifier.citedreference | Das I, Dennis JE. Normal‐boundary intersection: A new method for generating the pareto surface in nonlinear multicriteria optimization problems. SIAM J Optim. 1998; 8 ( 3 ): 631 – 657. | |
dc.identifier.citedreference | Karnopp DC. Random search techniques for optimization problems. Automatica. 1963; 1 ( 2 ): 111 – 121. | |
dc.identifier.citedreference | Li H, Zhang Q. Multiobjective optimization problems with complicated pareto sets, moea/d and nsga‐ii. IEEE Trans Evol Comput. 2009; 13 ( 2 ): 284 – 302. | |
dc.identifier.citedreference | Van Veldhuizen DA, Lamont GB. Multiobjective evolutionary algorithm research: A history and analysis; 1998. | |
dc.identifier.citedreference | Coello CAC, Cortés NC. Solving multiobjective optimization problems using an artificial immune system. Genet Program Evolvable Mach. 2005; 6 ( 2 ): 163 – 190. | |
dc.identifier.citedreference | Chisnall PM. Questionnaire design, interviewing and attitude measurement. J Market Res Soc. 1993; 35 ( 4 ): 392 – 393. | |
dc.identifier.citedreference | Kessentini M, Kessentini W, Sahraoui H, Boukadoum M, Ouni A. Design defects detection and correction by example. 19th International Conference on Program Comprehension (ICPC); 2011: 81 – 90. | |
dc.identifier.citedreference | Deb K, Goel T. Controlled elitist non‐dominated sorting genetic algorithms for better convergence. Evolutionary multi‐criterion optimization: Springer, Zurich, Switzerland; 2001: 67 – 81. | |
dc.identifier.citedreference | Arcuri A, Briand L. A practical guide for using statistical tests to assess randomized algorithms in software engineering. 33rd International Conference on Software Engineering (ICSE): IEEE, Zurich, Switzerland; 2011: 1 – 10. | |
dc.identifier.citedreference | Eiben AE, Smit SK. Parameter tuning for configuring and analyzing evolutionary algorithms. Swarm Evol Comput. 2011; 1 ( 1 ): 19 – 31. | |
dc.identifier.citedreference | Demšar J. Statistical comparisons of classifiers over multiple data sets. J Mach Learn Res. 2006; 7: 1 – 30. | |
dc.identifier.citedreference | Cohen J. Statistical Power Analysis for the Behavioral Sciences. New York, New York, USA: Academic press; 1988. | |
dc.identifier.citedreference | Nakagawa S. A farewell to bonferroni: the problems of low statistical power and publication bias. Behav Ecol. 2004; 15 ( 6 ): 1044 – 1045. | |
dc.identifier.citedreference | Cliff N. Dominance statistics: Ordinal analyses to answer ordinal questions. Psychological Bull. 1993; 114 ( 3 ): 494. | |
dc.identifier.citedreference | Wendorff P. Assessment of design patterns during software reengineering: lessons learned from a large commercial project. 5th European Conference on Software Maintenance and Reengineering (CSMR); 2001: 77 – 84. | |
dc.identifier.citedreference | Kessentini W, Kessentini M, Sahraoui H, Bechikh S, Ouni A. A Cooperative Parallel Search‐Based Software Engineering Approach for Code‐Smells Detection. IEEE Trans Software Eng. 2014; 40 ( 9 ): 841 – 861. | |
dc.identifier.citedreference | Ouni A, Kessentini M, Sahraoui H, Inoue K, Hamdi MS. Improving multi‐objective code‐smells correction using development history. J Syst Software. 2015; 105: 18 – 39. | |
dc.identifier.citedreference | O’Keeffe M, Ó Cinnéide M. A stochastic approach to automated design improvement. 2nd International Conference on Principles and Practice of Programming in Java, Computer Science Press, Inc.; 2003: 59 – 62. | |
dc.owningcollname | Interdisciplinary and Peer-Reviewed |
Files in this item
Remediation of Harmful Language
The University of Michigan Library aims to describe library materials in a way that respects the people and communities who create, use, and are represented in our collections. Report harmful or offensive language in catalog records, finding aids, or elsewhere in our collections anonymously through our metadata feedback form. More information at Remediation of Harmful Language.
Accessibility
If you are unable to use this file in its current format, please select the Contact Us link and we can modify it to make it more accessible to you.