Show simple item record

Model refactoring using examples: a search‐based approach

dc.contributor.authorGhannem, Adnaneen_US
dc.contributor.authorEl Boussaidi, Ghizlaneen_US
dc.contributor.authorKessentini, Marouaneen_US
dc.date.accessioned2014-08-06T16:50:01Z
dc.date.availableWITHHELD_12_MONTHSen_US
dc.date.available2014-08-06T16:50:01Z
dc.date.issued2014-07en_US
dc.identifier.citationGhannem, Adnane; El Boussaidi, Ghizlane; Kessentini, Marouane (2014). "Model refactoring using examples: a search‐based approach." Journal of Software: Evolution and Process 26(7): 692-713.en_US
dc.identifier.issn2047-7473en_US
dc.identifier.issn2047-7481en_US
dc.identifier.urihttps://hdl.handle.net/2027.42/108085
dc.description.abstractOne of the important challenges in model‐driven engineering is how to improve the quality of the models' design in order to help designers understand them. Refactoring represents an efficient technique to improve the quality of a design while preserving its behavior. Most of existing work on model refactoring relies on declarative rules to detect refactoring opportunities and to apply the appropriate refactorings. However, a complete specification of refactoring opportunities requires a huge number of rules. In this paper, we consider the refactoring mechanism as a combinatorial optimization problem where the goal is to find good refactoring suggestions starting from a small set of refactoring examples applied to similar contexts. Our approach, named model refactoring by example, takes as input an initial model to refactor, a set of structural metrics calculated on both initial model and models in the base of examples, and a base of refactoring examples extracted from different software systems and generates as output a sequence of refactorings. A solution is defined as a combination of refactoring operations that should maximize as much as possible the structural similarity based on metrics between the initial model and the models in the base of examples. A heuristic method is used to explore the space of possible refactoring solutions. To this end, we used and adapted a genetic algorithm as a global heuristic search. The validation results on different systems of real‐world models taken from open‐source projects confirm the effectiveness of our approach. Copyright © 2014 John Wiley & Sons, Ltd.en_US
dc.publisherWiley Periodicals, Inc.en_US
dc.publisherAddison‐Wesley Longman Publishing Co., Incen_US
dc.subject.otherGenetic Algorithmen_US
dc.subject.otherSoftware Maintenanceen_US
dc.subject.otherModel Evolutionen_US
dc.subject.otherModel Refactoringen_US
dc.subject.otherRefactoring by Exampleen_US
dc.subject.otherHeuristic Methoden_US
dc.titleModel refactoring using examples: a search‐based approachen_US
dc.typeArticleen_US
dc.rights.robotsIndexNoFollowen_US
dc.subject.hlbsecondlevelComputer Scienceen_US
dc.subject.hlbtoplevelEngineeringen_US
dc.description.peerreviewedPeer Revieweden_US
dc.description.bitstreamurlhttp://deepblue.lib.umich.edu/bitstream/2027.42/108085/1/smr1644.pdf
dc.identifier.doi10.1002/smr.1644en_US
dc.identifier.sourceJournal of Software: Evolution and Processen_US
dc.identifier.citedreferenceGhannem A, Kessentini M, El‐Boussaidi G. Detecting Model Refactoring Opportunities Using Heuristic Search. in Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research (CASCON '11), Litoiu M, Stroulia E and MacKay S, (eds). IBM Corp.: Riverton, NJ, USA, 2011; 175 – 187.en_US
dc.identifier.citedreferencePearl J. Heuristics: Intelligent Search Strategies for Computer Problem Solving, Addison‐Wesley Longman Publishing Co., Inc: Boston, MA, USA, 1984; 382.en_US
dc.identifier.citedreferenceMitchell M. An Introduction to Genetic Algorithms, MIT Press: Cambridge, MA, USA, 1998; 209.en_US
dc.identifier.citedreferenceKirkpatrick S, Gelatt CD, Vecchi MP. Optimization by simulated annealing. Science 1983; 220: 671 – 680.en_US
dc.identifier.citedreferenceGoldberg DE. Genetic Algorithms in Search, Optimization and Machine Learning, Addison‐Wesley Longman Publishing Co., Inc.: 1989; 372.en_US
dc.identifier.citedreferenceKoza JR. Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press: Cambridge, MA, USA, 1992; 680.en_US
dc.identifier.citedreferenceKim M, et al. Ref‐Finder: a refactoring reconstruction tool based on logic query templates. Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, ACM: Santa Fe, New Mexico, USA, 2010; 371 – 372.en_US
dc.identifier.citedreferenceMens T, Taentzer G, Runge O. Analysing refactoring dependencies using graph transformation. Software and Systems Modeling 2007; 6 ( 3 ): 269 – 285.en_US
dc.identifier.citedreferenceOuni A, et al. Maintainability defects detection and correction: a multi‐objective approach. Automated Software Engineering 2013; 20 ( 1 ): 47 – 79.en_US
dc.identifier.citedreferenceKessentini M, et al. Design defects detection and correction by example. Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension, IEEE Computer Society, 2011; 81 – 90.en_US
dc.identifier.citedreferenceArcuri A, Briand L. A Hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering. Software Testing, Verification and Reliability, 2012; DOI: 10.1002/stvr.1486.en_US
dc.identifier.citedreferenceWilcoxon F. Individual comparisons by ranking methods. Breakthroughs in Statistics, Kotz S, Johnson N (eds). Springer: New York, 1992; 196 – 202.en_US
dc.identifier.citedreferenceHui L, et al. Facilitating software refactoring with appropriate resolution order of bad smells, in Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering, 2009: Amsterdam, The Netherlands, p. 265 – 268.en_US
dc.identifier.citedreferenceKataoka Y, et al. Automated support for program refactoring using invariants. Software Maintenance, Proceedings. IEEE International Conference, 2001.en_US
dc.identifier.citedreferenceVan Der Straeten R, Jonckers V, Mens T. A formal approach to model refactoring and model refinement. Software and Systems Modeling 2007; 6 ( 2 ): 139 – 162.en_US
dc.identifier.citedreferenceVan Kempen M, et al. 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 '05), 2005: South African Institute for Computer Scientists and Information Technologists, Republic of South Africa. p. 252 – 259.en_US
dc.identifier.citedreferenceBiermann E. EMF model transformation based on graph transformation: formal foundation and tool environment. Proceedings of the 5th International Conference on Graph Transformations, Springer‐Verlag: Enschede, The Netherlands, 2010; 381 – 383.en_US
dc.identifier.citedreferenceO'Keeffe M. Search‐based refactoring: an empirical study. Journal of Software Maintenance and Evolution 2008; 20 ( 5 ): 345 – 364.en_US
dc.identifier.citedreferenceHarman M, Tratt L. Pareto optimal search based refactoring at the design level. Proceedings of the 9th Annual Conference on Genetic and Evolutionary Computation, ACM: London, England, 2007; 1106 – 1113.en_US
dc.identifier.citedreferenceKessentini M, et al. Search‐based model transformation by example. Software & Systems Modeling 2012; 11 ( 2 ): 209 – 226.en_US
dc.identifier.citedreferenceSeng O, Stammel J, Burkhart D. Search‐based determination of refactorings for improving the class structure of object‐oriented systems. Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation, ACM: Seattle, Washington, USA, 2006; 1909 – 1916.en_US
dc.identifier.citedreferenceJensen AC, Cheng BHC. On the use of genetic programming for automated refactoring and the introduction of design patterns. Proceedings of the 12th Annual Conference on Genetic and Evolutionary Computation, ACM: Portland, Oregon, USA, 2010; 1341 – 1348.en_US
dc.identifier.citedreferenceSeacord RC, Plakosh D, Lewis GA. Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices, Addison‐Wesley Longman Publishing Co., Inc: Boston, MA, USA, 2003; 368.en_US
dc.identifier.citedreferenceLientz BP, Swanson EB, Tompkins GE. Characteristics of application software maintenance. Communications of the ACM 1978; 21 ( 6 ): 466 – 471.en_US
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. 0_1‐46.en_US
dc.identifier.citedreferenceFowler M. Refactoring: Improving the Design of Existing Code, Addison‐Wesley: Boston, MA, USA, 1999.en_US
dc.identifier.citedreferenceMens T, Tourwé T. A survey of software refactoring. IEEE Transactions on Software Engineering 2004; 30 ( 2 ): 126 – 139.en_US
dc.identifier.citedreferenceOpdyke WF. Refactoring: A Program Restructuring Aid in Designing Object‐oriented Application Frameworks, University of Illinois at Urbana‐Champaign, 1992.en_US
dc.identifier.citedreferenceMoha N. DECOR: Détection et correction des défauts dans les systèmes orientés objet, Université de Montréal & Université des Sciences et Technologies de Lille: Montréal, 2008; 157.en_US
dc.identifier.citedreferenceBois BD, Demeyer S, Verelst J. Refactoring–improving coupling and cohesion of existing code. Proceedings of the 11th Working Conference on Reverse Engineering, IEEE Computer Society, 2004; 144 – 151.en_US
dc.identifier.citedreferenceEl Boussaidi G, Mili H. Understanding Design Patterns—What is the Problem? Software: Practice and Experience 2012; 42 ( 12 ): 1495 – 1529.en_US
dc.identifier.citedreferenceMens T, Taentzer G, Muller D. Challenges in model refactoring. Proc. 1st Workshop on Refactoring Tools, University of Berlin, 2007.en_US
dc.identifier.citedreferenceZhang J, Lin Y, Gray J. Generic and Domain‐specific Model Refactoring Using a Model Transformation Engine. Model‐driven Software Development – Research and Practice in Software Engineering. Springer: Hiedeberg, 2005.en_US
dc.identifier.citedreferenceDouglas CS. Model‐driven engineering. IEEE Computer 2006; 39 ( 2 ): 41 – 47.en_US
dc.identifier.citedreferenceEl‐Boussaidi G, Mili H. Detecting patterns of poor design solutions using constraint propagation. Proceedings of the 11th International Conference on Model Driven Engineering Languages and Systems, Springer‐Verlag: Toulouse, France, 2008; 189 – 203.en_US
dc.identifier.citedreferenceMoha N, et al. DECOR: a method for the specification and detection of code and design smells. Software Engineering, IEEE Transactions 2008; 36 ( 1 ): 20 – 36.en_US
dc.identifier.citedreferenceMunro MJ. Product metrics for automatic identification of “bad smell” design problems in java source‐code. In Software Metrics, 2005. 11th IEEE International Symposium, 2005.en_US
dc.identifier.citedreferenceMarinescu R. Detection strategies: metrics‐based rules for detecting design flaws. Software Maintenance, 2004. Proceedings. 20th IEEE International Conference, 2004.en_US
dc.identifier.citedreferenceKessentini M, et al. Search‐based design defects detection by example. Proceedings of the 14th International Conference on Fundamental Approaches to Software Engineering: Part of the Joint European Conferences on Theory and Practice of Software, Springer‐Verlag: Saarbrücken, Germany, 2011; 401 – 415.en_US
dc.identifier.citedreferenceFowler M, Beck K. Refactoring: improving the design of existing code. Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods, Springer‐Verlag, 1999; 256.en_US
dc.identifier.citedreferenceFenton NE, Pfleeger ASL. Software Metrics: A Rigorous and Practical Approach ( 2nd edn ) PWS Publishing Co.: Boston, MA, USA ©, 1998; 656.en_US
dc.identifier.citedreferenceGenero M, Piattini M, Calero C. Empirical Validation of Class Diagram Metrics. Empirical Software Engineering, Proceedings. International Symposium, 2002.en_US
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.