Show simple item record

MORE: A multi‐objective refactoring recommendation approach to introducing design patterns and fixing code smells

dc.contributor.authorOuni, Ali
dc.contributor.authorKessentini, Marouane
dc.contributor.authorÓ cinnéide, Mel
dc.contributor.authorSahraoui, Houari
dc.contributor.authorDeb, Kalyanmoy
dc.contributor.authorInoue, Katsuro
dc.date.accessioned2017-06-16T20:15:51Z
dc.date.available2018-07-09T17:42:25Zen
dc.date.issued2017-05
dc.identifier.citationOuni, 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.issn2047-7473
dc.identifier.issn2047-7481
dc.identifier.urihttps://hdl.handle.net/2027.42/137556
dc.publisherJohn Wiley & Sons, Ltd
dc.subject.othersoftware quality
dc.subject.otherdesign patterns
dc.subject.othercode smells
dc.subject.otherrefactoring
dc.subject.othersearch‐based software engineering
dc.titleMORE: A multi‐objective refactoring recommendation approach to introducing design patterns and fixing code smells
dc.typeArticleen_US
dc.rights.robotsIndexNoFollow
dc.subject.hlbsecondlevelComputer Science
dc.subject.hlbtoplevelEngineering
dc.description.peerreviewedPeer Reviewed
dc.description.bitstreamurlhttps://deepblue.lib.umich.edu/bitstream/2027.42/137556/1/smr1843.pdf
dc.description.bitstreamurlhttps://deepblue.lib.umich.edu/bitstream/2027.42/137556/2/smr1843_am.pdf
dc.identifier.doi10.1002/smr.1843
dc.identifier.sourceJournal of Software: Evolution and Process
dc.identifier.citedreferenceOlbrich 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.citedreferenceFatiregun 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.citedreferenceSimons 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.citedreferenceFokaefs 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.citedreferenceTsantalis N, Chatzigeorgiou A. Identification of extract method refactoring opportunities for the decomposition of methods. J Syst Software. 2011; 84 ( 10 ): 1757 – 1782.
dc.identifier.citedreferenceBavota 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.citedreferenceOuni 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.citedreferenceOuni 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.citedreferenceOuni A, Salem Z, Inoue K, Soui M. SIM: an automated approach to improve web service interface modularization; 2016: 91 – 98.
dc.identifier.citedreferenceWang 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.citedreferencePoshyvanyk 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.citedreferenceMarcus 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.citedreferenceBavota 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.citedreferenceEden 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.citedreferenceEl Boussaidi G, Mili H. Understanding design patterns what is the problem? Software: Pract Experience. 2012; 42 ( 12 ): 1495 – 1529.
dc.identifier.citedreferenceMurphy‐Hill E, Black AP. Refactoring tools: Fitness for purpose. IEEE Software. 2008; 25 ( 5 ): 38 – 44.
dc.identifier.citedreferenceMurphy‐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.citedreferenceMurphy‐Hill E, Black A. Programmer‐friendly refactoring errors. IEEE Trans Software Eng. 2012; 38 ( 6 ): 1417 – 1431.
dc.identifier.citedreferenceGe 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.citedreferenceMens 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.citedreferenceBavota 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.citedreferenceVerbaere 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.citedreferenceSteimann 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.citedreferenceDallal JA. Identifying refactoring opportunities in object‐oriented code: A systematic literature review. Inf Software Technol. 2015; 58: 231 – 249.
dc.identifier.citedreferenceLehman MM, Belady LA. Program Evolution: Processes of Software Change. San Diego, CA, USA: Academic Press Professional, Inc.; 1985.
dc.identifier.citedreferenceFowler M. Refactoring: Improving the design of existing code. Boston, MA, USA: Addison‐Wesley Longman Publishing Co., Inc.; 1999.
dc.identifier.citedreferenceKerievsky J. Refactoring to Patterns. Einbeck, Germany: Pearson Deutschland GmbH; 2005.
dc.identifier.citedreferenceMurphy‐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.citedreferenceGe 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.citedreferenceHarman 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.citedreferenceOKeeffe M, Cinnéide MO. Search‐based refactoring for software maintenance. J Syst Software. 2008; 81 ( 4 ): 502 – 516.
dc.identifier.citedreferenceOuni 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.citedreferenceNegara 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.citedreferenceKim 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.citedreferenceSeng 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.citedreferenceBavota 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.citedreferenceBrown WJ, McCormick HW, Mowbray TJ, Malveau RC. Antipatterns: Refactoring Software, Architectures, and Projects in Crisis. New York: Wiley; 1998.
dc.identifier.citedreferenceGamma E, Helm R, Johnson R, Vlissides J. Design Patterns: Elements of Reusable object‐Oriented Software. USA: Pearson Education; 1994.
dc.identifier.citedreferenceCinnéide MO. Automated application of design patterns: a refactoring approach. Ph.D. Thesis, 2001.
dc.identifier.citedreferenceKim 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.citedreferenceCinné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.citedreferenceJensen 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.citedreferenceKhomh F, Gueheneuc YG. Do design patterns impact software quality positively? 12th European Conference on Software Maintenance and Reengineering (CSMR); 2008: 274 – 278.
dc.identifier.citedreferenceVervers 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.citedreferenceSoetens 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.citedreferenceStroggylos 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.citedreferenceKannangara 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.citedreferenceWilking D, Khan U, Kowalewski S. An Empirical Evaluation of Refactoring. E‐Inf Software Eng J. 2007; 1 ( 1 ): 27 – 42.
dc.identifier.citedreferenceCounsell 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.citedreferenceChatzigeorgiou 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.citedreferenceOuni 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.citedreferenceDeb 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.citedreferenceDeb 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.citedreferenceBansiya J, Davis CG. A hierarchical model for object‐oriented design quality assessment. IEEE Trans Software Eng. 2002; 28 ( 1 ): 4 – 17.
dc.identifier.citedreferenceOpdyke 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.citedreferenceOpdyke WF. Refactoring object‐oriented frameworks. Ph.D. Thesis, 1992.
dc.identifier.citedreferenceMens T, Tourwé T. A survey of software refactoring. IEEE Trans Software Eng. 2004; 30 ( 2 ): 126 – 139.
dc.identifier.citedreferenceMantyla 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.citedreferenceOuni 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.citedreferenceOuni 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.citedreferenceFokaefs 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.citedreferenceLi 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.citedreferenceWirfs‐Brock R, McKean A. Object Design: Roles, Responsibilities, and Collaborations. Boston, USA: Addison‐Wesley Professional; 2003.
dc.identifier.citedreferenceRiel AJ. Object‐Oriented Design Heuristics, vol. 338. Switzerland: Addison‐Wesley Reading; 1996.
dc.identifier.citedreferenceHarman M, Jones BF. Search‐based software engineering. Inf Software Technol. 2001; 43 ( 14 ): 833 – 839.
dc.identifier.citedreferenceHarman M. The current state and future of search based software engineering. Future of software engineering (fose). IEEE, Dubrovnik, Croatia; 2007: 342 – 357.
dc.identifier.citedreferenceHarman M, Mansouri SA, Zhang Y. Search‐based software engineering: Trends, techniques and applications. ACM Comput Surv. 2012; 45 ( 1 ): 1 – 61.
dc.identifier.citedreferenceHarman 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.citedreferenceLam 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.citedreferenceHeuzeroth 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.citedreferenceAjouli 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.citedreferenceAjouli A. Vues et transformations de programmes pour la modularité des évolutions. Ph.D. Thesis, 2013.
dc.identifier.citedreferenceOuni 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.citedreferenceHarman M, Mansouri SA, Zhang Y. Search‐based software engineering: Trends, techniques and applications. ACM Comput Surv (CSUR). 2012; 45 ( 1 ): 11.
dc.identifier.citedreferenceBavota 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.citedreferenceDean 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.citedreferenceRattan D, Bhatia R, Singh M. Software clone detection: A systematic review. Inf Software Technol. 2013; 55 ( 7 ): 1165 – 1199.
dc.identifier.citedreferenceBacon 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.citedreferenceDas 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.citedreferenceKarnopp DC. Random search techniques for optimization problems. Automatica. 1963; 1 ( 2 ): 111 – 121.
dc.identifier.citedreferenceLi 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.citedreferenceVan Veldhuizen DA, Lamont GB. Multiobjective evolutionary algorithm research: A history and analysis; 1998.
dc.identifier.citedreferenceCoello CAC, Cortés NC. Solving multiobjective optimization problems using an artificial immune system. Genet Program Evolvable Mach. 2005; 6 ( 2 ): 163 – 190.
dc.identifier.citedreferenceChisnall PM. Questionnaire design, interviewing and attitude measurement. J Market Res Soc. 1993; 35 ( 4 ): 392 – 393.
dc.identifier.citedreferenceKessentini 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.citedreferenceDeb 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.citedreferenceArcuri 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.citedreferenceEiben AE, Smit SK. Parameter tuning for configuring and analyzing evolutionary algorithms. Swarm Evol Comput. 2011; 1 ( 1 ): 19 – 31.
dc.identifier.citedreferenceDemšar J. Statistical comparisons of classifiers over multiple data sets. J Mach Learn Res. 2006; 7: 1 – 30.
dc.identifier.citedreferenceCohen J. Statistical Power Analysis for the Behavioral Sciences. New York, New York, USA: Academic press; 1988.
dc.identifier.citedreferenceNakagawa S. A farewell to bonferroni: the problems of low statistical power and publication bias. Behav Ecol. 2004; 15 ( 6 ): 1044 – 1045.
dc.identifier.citedreferenceCliff N. Dominance statistics: Ordinal analyses to answer ordinal questions. Psychological Bull. 1993; 114 ( 3 ): 494.
dc.identifier.citedreferenceWendorff 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.citedreferenceKessentini 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.citedreferenceOuni 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.citedreferenceO’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.owningcollnameInterdisciplinary and Peer-Reviewed


Files in this item

Show simple item record

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.