Show simple item record

Model refactoring by example: A multi‐objective search based software engineering approach

dc.contributor.authorGhannem, Adnane
dc.contributor.authorKessentini, Marouane
dc.contributor.authorHamdi, Mohammad Salah
dc.contributor.authorEl Boussaidi, Ghizlane
dc.date.accessioned2018-05-15T20:16:01Z
dc.date.available2019-06-03T15:24:19Zen
dc.date.issued2018-04
dc.identifier.citationGhannem, Adnane; Kessentini, Marouane; Hamdi, Mohammad Salah; El Boussaidi, Ghizlane (2018). "Model refactoring by example: A multi‐objective search based software engineering approach." Journal of Software: Evolution and Process 30(4): n/a-n/a.
dc.identifier.issn2047-7473
dc.identifier.issn2047-7481
dc.identifier.urihttps://hdl.handle.net/2027.42/143783
dc.description.abstractDeclarative rules are frequently used in model refactoring in order to detect refactoring opportunities and to apply the appropriate ones. However, a large number of rules is required to obtain a complete specification of refactoring opportunities. Companies usually have accumulated examples of refactorings from past maintenance experiences. Based on these observations, we consider the model refactoring problem as a multi objective problem by suggesting refactoring sequences that aim to maximize both structural and textual similarity between a given model (the model to be refactored) and a set of poorly designed models in the base of examples (models that have undergone some refactorings) and minimize the structural similarity between a given model and a set of well‐designed models in the base of examples (models that do not need any refactoring). To this end, we use the Non‐dominated Sorting Genetic Algorithm (NSGA‐II) to find a set of representative Pareto optimal solutions that present the best trade‐off between structural and textual similarities of models. The validation results, based on 8 real world models taken from open‐source projects, confirm the effectiveness of our approach, yielding refactoring recommendations with an average correctness of over 80%. In addition, our approach outperforms 5 of the state‐of‐the‐art refactoring approaches.
dc.publisherAddison‐Wesley
dc.publisherWiley Periodicals, Inc.
dc.subject.othersoftware maintenance
dc.subject.otherrefactoring by example
dc.subject.otherPareto front
dc.subject.otherNSGA‐II
dc.subject.othermodel evolution
dc.titleModel refactoring by example: A multi‐objective search based software engineering approach
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/143783/1/smr1916.pdf
dc.description.bitstreamurlhttps://deepblue.lib.umich.edu/bitstream/2027.42/143783/2/smr1916_am.pdf
dc.identifier.doi10.1002/smr.1916
dc.identifier.sourceJournal of Software: Evolution and Process
dc.identifier.citedreferenceMariani T, Vergilio SR. A systematic review on search‐based refactoring. Inf Softw Technol. 2017; 83, C (March 2017): 14 ‐ 34. https://doi.org/10.1016/j.infsof.2016.11.009
dc.identifier.citedreferenceKessentini M, Langer P, Wimmer M. " Searching models, modeling search: On the synergies of SBSE and MDE." Proceedings of the 1st International Workshop on Combining Modelling and Search‐Based Software Engineering. IEEE Press, 2013.
dc.identifier.citedreferenceRapu D, et al. Using history information to improve design flaws detection. in Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings. Eighth European Conference on. 2004.
dc.identifier.citedreferenceYamashita A, Moonen L. Do code smells reflect important maintainability aspects? In 28th IEEE International Conference on Software Maintenance (ICSM). 2012.
dc.identifier.citedreferenceOuni A, Kessentini M, Sahraoui H. " Search‐based refactoring using recorded code changes." Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on. IEEE, 2013.
dc.identifier.citedreferenceOuni A, Kessentini M, Sahraoui H, Hamdi MS. Search‐based refactoring: Towards semantics preservation. On 28th IEEE International Conference in Software Maintenance (ICSM), 2012. https://doi.org/10.1109/ICSM.2012.6405292 2012
dc.identifier.citedreferenceO’ Cinnéide M, Tratt L, Harman M, Counsell S, Hemati MI. Experimental assessment of software metrics using automated refactoring. In: Proceedings of the ACM‐IEEE International Symposium on Empirical Software Engineering and Measurement. Lund, Sweden: ACM; 2012.
dc.identifier.citedreferenceHall M, Walkinshaw N, McMinn P. ‘ Supervised software modularization. 28th IEEE International Conference on Software Maintenance. pp. 23 ‐ 30.’ ( 2012. 2012)
dc.identifier.citedreferenceBavota G, Carnevale F. ‘ Putting the developer in a loop: An interactive GA for software re‐modularization. Search based software engineering, Lecture notes in computer science volume 7515. pp 75‐89’ ( 2012. 2012)
dc.identifier.citedreferenceLin Y, Peng X, Cai Y, Dig D, Zheng D, Zhao W. ‘ Interactive and guided architectural refactoring with search‐based recommendation ’, International Symposium on the Foundations of Software Engineering (FSE 2016), Accepted, 2016
dc.identifier.citedreferenceMkaouer MW, Kessentini M, Bechikh S, Deb K, Ó Cinnéide M. ‘ Recommendation system for software refactoring using innovization and interactive dynamic optimization ’. ASE 2014: 331 ‐ 336
dc.identifier.citedreferenceRagnhild VDS, Jonckers V, Mens T. A formal approach to model refactoring and model refinement. SoSyM. 2007; 6 ( 2 ): 139 ‐ 162.
dc.identifier.citedreferenceMarc Van Kempen M, Chaudron M, Kourie D, Boake A. Towards proving preservation of behaviour of refactoring of UML models. In: Proceedings of the 2005 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries (SAICSIT); 2005. South African Institute for Computer Scientists and Information Technologists, Republic of South Africa.
dc.identifier.citedreferenceMens T, Taentzer G, Runge O. Analysing refactoring dependencies using graph transformation. Software and Systems Modeling. 2007; 6 ( 3 ): 269 ‐ 285.
dc.identifier.citedreferenceBiermann E. EMF model transformation based on graph transformation: Formal foundation and tool environment. In: Proceedings of the 5th International Conference on Graph Transformations (ICGT). Enschede, The Netherlands: Springer‐Verlag; 2010.
dc.identifier.citedreferenceBrito e Abreu, F, Melo W. Evaluating the impact of object‐oriented design on software quality. In: Proceedings of the 3rd International Software Metrics Symposium, 1996.
dc.identifier.citedreferenceZhang M, Hall T, Baddoo N. Code Bad Smells: A review of current knowledge. J Softw Evol Proc. 2011; 23 ( 3 ): 179 ‐ 202.
dc.identifier.citedreferenceVan Emden E, Moonen L. Java quality assurance by detecting code smells. In: Proceedings of the Ninth Working Conference on Reverse Engineering. 2002.
dc.identifier.citedreferenceMäntylä MV, Lassenius C. Subjective evaluation of software evolvability using code smells: An empirical study. C Empir Software Eng. 2006; 11 ( 3 ): 395 ‐ 431.
dc.identifier.citedreferenceMonden A, Nakae D, Kamiya T, Sato S, Matsumoto K. Software quality analysis by code clones in industrial legacy software. In: the Proceedings of the Eighth IEEE Symposium on Software Metrics; 2002.
dc.identifier.citedreferenceDeligiannis I, Shepperd M, Roumeliotis M, Stamelosd I. An empirical investigation of an object‐oriented design heuristic for maintainability. J Syst Softw. 2003; 65 ( 2 ): 127 ‐ 139.
dc.identifier.citedreferenceAnda B. Assessing software system maintainability using structural measures and expert assessments. in Software Maintenance, 2007. ICSM 2007. IEEE International Conference on. 2007.
dc.identifier.citedreferenceMarinescu R. Detection strategies: metrics-based rules for detecting design flaws. In: Proceedings of the 20th IEEE International Conference on Software Maintenance, 2004.
dc.identifier.citedreferenceISO/IEC, International Standard—ISO/IEC 14764 IEEE Std 14764‐2006 Software Engineering; Software Life Cycle Processes &; Maintenance. ISO/IEC 14764:2006 (E) IEEE Std 14764‐2006 Revision of IEEE Std 1219‐1998), 2006: p. 01 ‐ 46.
dc.identifier.citedreferenceFowler M. Refactoring: Improving the Design of Existing Code. Boston, MA, USA: Addison‐Wesley; 1999.
dc.identifier.citedreferenceMens T, Tourwé T. A survey of software refactoring. IEEE Trans Softw Eng. 2004; 30 ( 2 ): 126 ‐ 139.
dc.identifier.citedreferenceOpdyke FW. Refactoring: A program restructuring aid in designing object‐oriented application frameworks. 1992, University of Illinois at Urbana‐Champaign.
dc.identifier.citedreferenceMoha N. DECOR: détection et correction des défauts dans les systèmes orientés objet. 2008, Université de Montréal & Université des Sciences et Technologies de Lille: Montréal. p. 157 ‐ 179.
dc.identifier.citedreferenceDu Bois B, Demeyer S, Verelst J. Refactoring‐improving coupling and cohesion of existing code. In: Proceedings of the 11th Working Conference on Reverse Engineering (WCRE). Delft University of Technology, Netherlands: IEEE Computer Society; 2004.
dc.identifier.citedreferenceEl‐Boussaidi G, Mili H. Understanding design patterns — what is the problem? Softw. Pract. Exper. 2011; 42: 1495 ‐ 1529.
dc.identifier.citedreferenceMens T, Taentzer G, Dirk M. Challenges in Model Refactoring. in Proceedings of the 1st Workshop on Refactoring Tools (WRT). Germany: University of Berlin; 2007.
dc.identifier.citedreferenceZhang J, Lin Y, Gray J. Generic and Domain‐Specific Model Refactoring Using a Model Transformation Engine. In: Beydeda S, Book M, Gruhn V, eds. Model‐Driven Software Development. Berlin, Heidelberg: Springer; 2005.
dc.identifier.citedreferenceBrown JW. AntiPatterns: Refactoring software, architectures, and projects in crisis. WILEY ed. 1998: 336.
dc.identifier.citedreferenceDouglas CS. Guest editor’s introduction: Model‐driven engineering. Comput. J. 2006; 39 ( 2 ): 41 ‐ 47.
dc.identifier.citedreferenceEl‐Boussaidi G, Mili H. Detecting patterns of poor design solutions using constraint propagation. In: Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems. Toulouse, France: Springer‐Verlag; 2008: 189 ‐ 203.
dc.identifier.citedreferenceKessentini M, Sahraoui H, Boukadoum M, Wimmer M. Search‐based design defects detection by example. In: Proceedings of the 14th international conference on Fundamental approaches to software engineering: Part of the joint European conferences on theory and practice of software. Saarbrücken, Germany: Springer‐Verlag; 2011.
dc.identifier.citedreferenceO’ Keeffe M, O’ Cinneide M. Search‐based software maintenance. In: Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR). Bari, Italy; 2006.
dc.identifier.citedreferenceSeng O, Stammel J, Burkhart D. Search‐based determination of refactorings for improving the class structure of object‐oriented systems. In: Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation. Seattle, Washington, USA: ACM; 2006.
dc.identifier.citedreferenceKessentini M, Sahraoui H, Boukadoum M. Model transformation as an optimization problem. In: Proceedings of the 11th International Conference on Model Driven Engineering Languages and Systems. Toulouse, France: Springer‐Verlag; 2008.
dc.identifier.citedreferenceGhannem A, El‐Boussaidi G, Kessentini M. Model refactoring using examples: A search‐based approach. J Softw Evol Proc. 2014; 26: 692 ‐ 713.
dc.identifier.citedreferenceOuni A, Kessentini M, Sahraoui H, Boukadoum M. Maintainability defects detection and correction: A multi‐objective approach. Journal of Automated Software Engineering, JASE. 2013; 20 ( 1 ): 47 ‐ 79.
dc.identifier.citedreferenceHarman M, Tratt L. Pareto optimal search based refactoring at the design level. In: Proceedings of the 9th Annual Conference on Genetic and Evolutionary Computation (GECCO). London, England, UK: ACM; 2007: 1106 ‐ 1113.
dc.identifier.citedreferenceGhannem A, ElBoussaidi G, Kessentini M. Example‐based model refactoring using multi‐objective optimization. In: North American Search Based Software Engineering Symposium. Michigan, Detroit, USA; 2015: 104 ‐ 127.
dc.identifier.citedreferenceDeb K, Pratap A, Agarwal S, Meyarivan T. A fast and elitist multiobjective genetic algorithm: NSGA‐II. IEEE Transactions on Evolutionary Computation. 2002; 6 ( 2 ): 182 ‐ 197.
dc.identifier.citedreferenceLi X. A non‐dominated sorting particle swarm optimizer for multiobjective optimization. In: Cantú‐Paz E et al., eds. Genetic and Evolutionary Computation — GECCO 2003. Berlin Heidelberg: Springer; 2003: 37 ‐ 48.
dc.identifier.citedreferenceKessentini M, Kessentini W, Sahraoui H, Boukadoum M, Ouni A. Design defects detection and correction by example. In: Proceedings of the 19th International Conference on Program Comprehension (ICPC). Kingston, ON, CANADA: IEEE Computer Society; 2011: 81 ‐ 90.
dc.identifier.citedreferenceHowe CD. RiTa: Creativity support for computational literature. In: Proceedings of the 7th ACM Conference on Creativity and Cognition. Berkeley, CA, USA: ACM; 2009: 205 ‐ 210.
dc.identifier.citedreferenceGenero M, Piattini M, Calero C. Empirical validation of class diagram metrics. in Proceedings of the International Symposium in Empirical Software Engineering (ISESE). 2002. Nara, Japan.
dc.identifier.citedreferenceMiryung K, Matthew G, Alex L, Napol R. Ref‐Finder: A refactoring reconstruction tool based on logic query templates. In: Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering. Santa Fe, New Mexico, USA: ACM; 2010: 371 ‐ 372.
dc.identifier.citedreferenceMoha N, Yann‐Gael G, Duchien L, Le Meur AF. DECOR: A method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 2010; 36 ( 1 ): 20 ‐ 36.
dc.identifier.citedreferenceGhannem A, Kessentini M, El‐Boussaidi G. Detecting model refactoring opportunities using heuristic search. In: Litoiu M, Stroulia E, MacKay S, eds. Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research (CASCON). Riverton, NJ, USA: IBM Corp; 2011.
dc.identifier.citedreferenceKessentini M, Vaucher S, Sahraoui HA. Deviance from perfection is a better criterion than closeness to evil when identifying risky code. ASE. 2010; 113 ‐ 122.
dc.identifier.citedreferenceKessentini M, Kessentini W, Sahraoui HA, Boukadoum M, Ouni A. Design defects detection and correction by example. ICPC. 2011; 81 ‐ 90.
dc.identifier.citedreferenceMansoor U, Kessentini M, Wimmer M, Deb K. Multi‐view refactoring of class and activity diagrams using a multi‐objective evolutionary algorithm. Software Quality Journal. 1 ‐ 29. to appear
dc.identifier.citedreferenceRachmawati L, Srinivasan D. Multiobjective evolutionary algorithm with controllable focus on the knees of the Pareto front. IEEE Trans. Evol. Comput. 2009; 13 ( 4 ): 810 ‐ 824.
dc.identifier.citedreferenceWilcoxon F. Individual comparisons by ranking methods. In: Kotz S, Johnson N, eds. Breakthroughs in Statistics. New York: Springer; 1992: 196 ‐ 202.
dc.identifier.citedreferenceO’ Keeffe M, O’ Cinnéide M. Search‐based refactoring: An empirical study. J. Softw. Evol. Process. 2008; 20 ( 5 ): 345 ‐ 364.
dc.identifier.citedreferenceQayum F, Heckel R. Local search‐based refactoring as graph transformation. In: Proceedings of the 1st International Symposium on Search Based Software Engineering (SSBSE). Springer Berlin Heidelberg: Cumberland Lodge, Windsor, UK; 2009.
dc.identifier.citedreferenceben Fadhel A, Kessentini M, Langer P, Wimmer M. 2012, September. Search‐based detection of high‐level model changes. In Software Maintenance (ICSM), 2012 28th IEEE International Conference on (pp. 212 ‐ 221 ). IEEE.
dc.identifier.citedreferenceGhannem A, El‐Boussaidi G, Kessentini M. Model refactoring using interactive genetic algorithm. In: Proceedings of the 5th Symposium on Search Based Software Engineering (SSBSE). Berlin Heidelberg: Springer; 2013.
dc.identifier.citedreferenceBechikh S, Kessentini M, Said LB, Ghédira K. Chapter four‐preference incorporation in evolutionary multiobjective optimization: A survey of the state‐of‐the‐art. Adv Comput. 2015; 98: 141 ‐ 207.
dc.identifier.citedreferenceKalboussi S, Bechikh S, Kessentini M, Said LB. Preference‐based many‐objective evolutionary testing generates harder test cases for autonomous agents. In: International Symposium on Search Based Software Engineering. Berlin, Heidelberg: Springer; 2013: 245 ‐ 250.
dc.identifier.citedreferenceKessentini M, Bouchoucha A, Sahraoui H, Boukadoum M. ( 2010 ). Example‐based sequence diagrams to colored petri nets transformation using heuristic Search. Modelling Foundations and Applications, 156‐172.
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.