{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,28]],"date-time":"2025-09-28T04:10:47Z","timestamp":1759032647241},"reference-count":103,"publisher":"Elsevier BV","issue":"3","license":[{"start":{"date-parts":[[2003,12,1]],"date-time":"2003-12-01T00:00:00Z","timestamp":1070236800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2013,7,29]],"date-time":"2013-07-29T00:00:00Z","timestamp":1375056000000},"content-version":"vor","delay-in-days":3528,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/3.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Electronic Notes in Theoretical Computer Science"],"published-print":{"date-parts":[[2003,12]]},"DOI":"10.1016\/s1571-0661(05)82624-6","type":"journal-article","created":{"date-parts":[[2005,5,19]],"date-time":"2005-05-19T13:46:30Z","timestamp":1116510390000},"page":"483-499","source":"Crossref","is-referenced-by-count":28,"title":["Refactoring: Current Research and Future Trends"],"prefix":"10.1016","volume":"82","author":[{"given":"Tom","family":"Mens","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Serge","family":"Demeyer","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Bart","family":"Du Bois","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hans","family":"Stenten","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Pieter","family":"Van Gorp","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"78","reference":[{"key":"10.1016\/S1571-0661(05)82624-6_BIB1","series-title":"\u201cCore J2EE Patterns\u201d","author":"Alur","year":"2001"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB2","series-title":"Tutorial on Software Restructuring","author":"Arnold","year":"1986"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB3","unstructured":"Astels, D., Refactoring with UML, in: Proc. 3rd Int'l Conf. eXtreme Programming and Flexible Processes in Software Engineering, 2002, pp. 67\u201370, Alghero, Sardinia, Italy."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB4","unstructured":"Atkinson, C. and T. K\u00fchne, The role of meta-modeling in MDA, in: Proc. UML 2002 Workshop on Software Model Engineering, 2002, pp. 67\u201370, Dresden, Germany."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB5","series-title":"Technical Report Mathematical Centre Tracts #131","article-title":"Correctness preserving program refinements","author":"Back","year":"1980"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB6","series-title":"\u201cRefinement Calculus\u201d","author":"Back","year":"1998"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB7","first-page":"107","article-title":"Handbook of Graph Grammars and Graph Transformation","author":"Baldan","year":"1999","journal-title":"World scientific"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB8","series-title":"Semantics and implementation of schema evolution in object-oriented databases","author":"Banerjee","year":"1987"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB9","series-title":"\u201cExtreme Programming Explained: Embrace Change\u201d","author":"Beck","year":"2000"},{"issue":"3","key":"10.1016\/S1571-0661(05)82624-6_BIB10","doi-asserted-by":"crossref","first-page":"185","DOI":"10.1002\/(SICI)1096-9942(1997)3:3<185::AID-TAPO2>3.0.CO;2-T","article-title":"Maintenance of object-oriented systems during structural evolution","volume":"3","author":"Bergstein","year":"1991","journal-title":"Theory and Practice of Object Systems"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB11","doi-asserted-by":"crossref","unstructured":"Bergstein, P. L., Object-preserving class transformations, in: Proc. Conf. Object-oriented programming systems, languages, and applications (1991), pp. 299\u2013313.","DOI":"10.1145\/117954.117977"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB12","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/S0065-2458(08)60641-5","article-title":"Program slicing","volume":"43","author":"Binkley","year":"1996","journal-title":"Advances of Computing"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB13","unstructured":"Bodin, F., Sage++: an object-oriented toolkit and class library for building Fortran and C++ restructuring tools, in: Proc. 2nd Object-Oriented Numerics Conference, 1994, Sunriver, Oregon."},{"issue":"25","key":"10.1016\/S1571-0661(05)82624-6_BIB14","doi-asserted-by":"crossref","first-page":"1226","DOI":"10.1109\/TC.1976.1674590","article-title":"Software engineering","volume":"12","author":"Boehm","year":"1976","journal-title":"IEEE Transactions on Computers"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB15","unstructured":"Boger, M., T. Sturm and P. Fragemann, Refactoring browser for UML, in: Proc. 3rd Int'l Conf. on eXtreme Programming and Flexible Processes in Software Engineering, 2002, pp. 77\u201381, Alghero, Sardinia, Italy."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB16","unstructured":"Borland, J Builder (2002). URL www.borland.com\/jbuilder\/"},{"issue":"4","key":"10.1016\/S1571-0661(05)82624-6_BIB17","doi-asserted-by":"crossref","DOI":"10.1016\/S1571-0661(04)80626-1","article-title":"Coordinated distributed diagram transformation for software evolution","volume":"72","author":"Bottoni","year":"2002","journal-title":"Electronic Notes in Theoretical Computer Science"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB18","article-title":"A selective runtime compiler for the wonka virtual machine","author":"Buytaert","year":"2002","journal-title":"Presentation at PACT Symposium at University of Ghent"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB19","first-page":"95","article-title":"Automatic reorganization of object-oriented hierarchies: a case study","volume":"1","author":"Casais","year":"1994","journal-title":"\u201cObject Oriented Systems\u201d"},{"issue":"6","key":"10.1016\/S1571-0661(05)82624-6_BIB20","doi-asserted-by":"crossref","first-page":"476","DOI":"10.1109\/32.295895","article-title":"A metrics suite for object-oriented design","volume":"20","author":"Chidamber","year":"1994","journal-title":"IEEE Trans. Software Engineering"},{"issue":"1","key":"10.1016\/S1571-0661(05)82624-6_BIB21","doi-asserted-by":"crossref","first-page":"13","DOI":"10.1109\/52.43044","article-title":"Reverse engineering and design recovery: A taxonomy","volume":"7","author":"Chikofsky","year":"1990","journal-title":"IEEE Software"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB22","unstructured":"Cincom, Smalltalk VisualWorks (2002). URL www.cincomsmalltalk.com\/"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB23","unstructured":"Cinn\u00e9ide, M., \u201cAutomated Application of Design Patterns: A Refactoring Approach,\u201d Ph.D. thesis, Department of Computer Science, Trinity College, University of Dublin (2000)."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB24","unstructured":"Codagen, Codagen architect (2002). URL www.codagen.com\/products\/architect\/"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB25","series-title":"Object-oriented Development: the Fusion method","author":"Coleman","year":"1994"},{"issue":"8","key":"10.1016\/S1571-0661(05)82624-6_BIB26","doi-asserted-by":"crossref","first-page":"44","DOI":"10.1109\/2.303623","article-title":"Using metrics to evaluate software system maintainability","volume":"27","author":"Coleman","year":"1994","journal-title":"IEEE Computer"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB27","unstructured":"Compuware, Optimalj pattern-driven generator (2002). URL http:\/\/www.compuware.com\/products\/optimalj\/"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB28","volume":"2505","year":"2002"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB29","first-page":"193","article-title":"Graph rewriting: an algebraic and logic approach","volume":"Vol. B","author":"Courcelle","year":"1990"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB30","year":"1996"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB31","first-page":"166","article-title":"Finding refactorings via change metrics","volume":"35(10)","author":"Demeyer","year":"2000"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB32","series-title":"\u201cObject-Oriented Reengineering Patterns\u201d","author":"Demeyer","year":"2002"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB33","doi-asserted-by":"crossref","unstructured":"Ducasse, S., M. Rieger and S. Demeyer, A language independent approach for detecting duplicated code, in: H. Yang and L. White, editors, Proc. Int'l Conf. Software Maintenance (1999), pp. 109\u2013118.","DOI":"10.1109\/ICSM.1999.792593"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB34","unstructured":"eclipse.org, Eclipse (2002). URL www.eclipse.org\/"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB35","year":"2000"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB36","volume":"26(3,4)","year":"1996"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB37","doi-asserted-by":"crossref","unstructured":"Fanta, R. and V. Rajlich, Restructuring legacy C code into C++, in: Proc. Int'l Conf. Software Maintenance (1999), pp. 77\u201385.","DOI":"10.1109\/ICSM.1999.792576"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB38","series-title":"\u201cSoftware Metrics: A Rigorous and Practical Approach\u201d","author":"Fenton","year":"1997"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB39","doi-asserted-by":"crossref","unstructured":"Flater, D., Impact of model-driven standards, in: 35th Annual Hawaii International Conference on System Sciences (HICSS'02), Lecture Notes in Computer Science 9 (2002), p. 285.","DOI":"10.1109\/HICSS.2002.994500"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB40","series-title":"\u201cRefactoring: Improving the Design of Existing Programs\u201d","author":"Fowler","year":"1999"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB41","doi-asserted-by":"crossref","first-page":"213","DOI":"10.1145\/151640.151642","article-title":"Engineering a simple, efficient code-generator generator","volume":"1","author":"Fraser","year":"1992","journal-title":"ACM Letters on Programming Languages and Systems"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB42","series-title":"\u201cDesign Patterns: Elements of Reusable Object-Oriented Languages and Systems\u201d","author":"Gamma","year":"1994"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB43","series-title":"\u201cFormal Concept Analysis: Mathematical Foundations\u201d","author":"Ganter","year":"1999"},{"issue":"4","key":"10.1016\/S1571-0661(05)82624-6_BIB44","doi-asserted-by":"crossref","first-page":"67","DOI":"10.1109\/52.687948","article-title":"Maintenance: Less is not more","volume":"15","author":"Glass","year":"1998","journal-title":"IEEE Software"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB45","unstructured":"Goguen, J., Hidden algebra for software engineering, in: Proc. Conf. Discrete Mathematics and Theoretical Computer Science, Australian Computer Science Communications 21 (1999), pp. 35\u201359."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB46","article-title":"extreme programming in a hostile environment","author":"Graham","year":"2002","journal-title":"Sessionpaper at Int. Conf. on eXtreme Programming"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB47","series-title":"\u201cProgram Restructuring as an Aid to Software Maintenance,\u201d Ph.D. thesis","author":"Griswold","year":"1991"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB48","doi-asserted-by":"crossref","unstructured":"Griswold, W. G., M. I. Chen, R. W. Bowdidge and J. D. Morgenthaler, Tool support for planning the restructuring of data abstractions in large systems, in: Proc. 4th Symp. Foundations of Software Engineering, ACM SIGSOFT Software Engineering Notes 21(6) (1996), pp. 33\u201345.","DOI":"10.1145\/250707.239107"},{"issue":"10","key":"10.1016\/S1571-0661(05)82624-6_BIB49","doi-asserted-by":"crossref","first-page":"739","DOI":"10.1145\/358413.358421","article-title":"Managing application program maintenance expenditure","volume":"26","author":"Guimaraes","year":"1983","journal-title":"Comm. ACM"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB50","doi-asserted-by":"crossref","first-page":"161","DOI":"10.1007\/3-540-45832-8_14","article-title":"Confluence of typed attributed graph transformation systems","volume":"2505","author":"Heckel","year":"2002","journal-title":"Graph Transformation"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB51","series-title":"\u201cObject-Oriented Metrics: Measures of Complexity\u201d","author":"Henderson-Sellers","year":"1996"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB52","unstructured":"Instantiations, jFactor (2002). URL www.instantiations.com\/jfactor\/"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB53","unstructured":"IntelliJ, IDEA (2002). URL www.intellij.com\/idea\/"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB54","unstructured":"Jahnke, J. H. and A. Z\u00fcndorf, Rewriting poor design patterns by good design patterns, in: S. Demeyer and H. Gall, editors, Proc. of ESEC\/FSE '97 Workshop on Object-Oriented Reengineering, Technical University of Vienna, 1997, Technical Report TUV-1841-97-10."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB55","doi-asserted-by":"crossref","unstructured":"Kataoka, Y., M. D. Ernst, W. G. Griswold and D. Notkin, Automated support for program refactoring using invariants, in: Proceedings of the International Conference on Software Maintenance (2001), pp. 736\u2013743.","DOI":"10.1109\/ICSM.2001.972794"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB56","series-title":"Technical report, Computer Sciences Department","article-title":"Semantics-preserving procedure extraction","author":"Komondoor","year":"2000"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB57","series-title":"Special Issue on Program Slicing","first-page":"677","article-title":"Restructuring programs by tucking statements into functions","author":"Lakhotia","year":"1998"},{"issue":"4","key":"10.1016\/S1571-0661(05)82624-6_BIB58","doi-asserted-by":"crossref","first-page":"246","DOI":"10.1109\/32.588543","article-title":"Extracting reusable functions by flow graph-based program slicing","volume":"23","author":"Lanubile","year":"1997","journal-title":"Trans. Software Engineering"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB59","doi-asserted-by":"crossref","unstructured":"Leit\u00e3o, A.M., A formal pattern language for refactoring of Lisp programs, in: Proc. 6th European Conf. Software Maintenance and Reengineering (2002), pp. 186\u2013192.","DOI":"10.1109\/CSMR.2002.995803"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB60","series-title":"\u201cSoftware maintenance management: a study of the maintenance of computer application software in 487 data processing organizations,\u201d","author":"Lientz","year":"1980"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB61","series-title":"\u201cThe Java Virtual Machine Specification\u201d","author":"Lindholm","year":"1996"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB62","doi-asserted-by":"crossref","first-page":"405","DOI":"10.1016\/S0957-4174(02)00076-3","article-title":"Supporting software development through declaratively codified programming patterns","volume":"23","author":"Mens","year":"2002","journal-title":"Journal on Expert Systems with Applications"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB63","series-title":"Ph.D. thesis, Department of Computer Science","article-title":"\u201cA Formal Foundation for Object-Oriented Software Evolution,\u201d","author":"Mens","year":"1999"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB64","doi-asserted-by":"crossref","unstructured":"Mens, T., Conditional graph rewriting as a domain-independent formalism for software evolution, in: Proc. Int'l Conf. Agtive 1999: Applications of Graph Transformations with Industrial Relevance, Lecture Notes in Computer Science 1779 (2000), pp. 127\u2013143.","DOI":"10.1007\/3-540-45104-8_10"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB65","doi-asserted-by":"crossref","unstructured":"Mens, T., A formal foundation for object-oriented software evolution, in: Proc. Int'l Conf. Software Maintenance (2001), pp. 549\u2013552.","DOI":"10.1109\/ICSM.2001.972769"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB66","series-title":"Transformational software evolution by assertions","author":"Mens","year":"2001"},{"issue":"5","key":"10.1016\/S1571-0661(05)82624-6_BIB67","doi-asserted-by":"crossref","first-page":"449","DOI":"10.1109\/TSE.2002.1000449","article-title":"A state-of-the-art survey on software merging","volume":"28","author":"Mens","year":"2002","journal-title":"IEEE Trans. Software Engineering"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB68","unstructured":"Mens, T., J. Buckley, A. Rashid and M. Zenger, Towards a taxonomy of software evolution, in: Proc. Workshop on Unanticipated Software Evolution, 2003, Warshau, Poland."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB69","doi-asserted-by":"crossref","first-page":"286","DOI":"10.1007\/3-540-45832-8_22","article-title":"Formalising behaviour preserving program transformations","volume":"2505","author":"Mens","year":"2002","journal-title":"Graph Transformation"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB70","series-title":"\u201cObject-Oriented Software Construction\u201d","author":"Meyer","year":"1997"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB71","series-title":"Proc. Int'l Conf. OOPSLA '96","first-page":"235","article-title":"Automatic inheritance hierarchy restructuring and method refactoring","author":"Moore","year":"1996"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB72","volume":"1779","year":"2000"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB73","series-title":"Ph.D. thesis","article-title":"\u201cRefactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks,\u201d","author":"Opdyke","year":"1992"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB74","unstructured":"Opdyke, W. F., Refactoring C++ programs, Technical report, Lucent Technologies\/Bell Labs (1999). URL st-www.cs.uiuc.edu\/users\/opdyke\/wfo.990201.c++.refac.html"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB75","doi-asserted-by":"crossref","unstructured":"Philipps, J. and B. Rumpe, Refinement of information flow architectures, in: M. Hinchey, editor, Proc. ICFEM'97 (1997).","DOI":"10.1109\/ICFEM.1997.630427"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB76","unstructured":"Philipps, J. and B. Rumpe, Roots of refactoring, in: K. Baclavski and H. Kilov, editors, Proc. 10th OOPSLA Workshop on Behavioral Semantics (2001), Tampa Bay, Florida, USA. URL www4.informatik.tu-muenchen.de\/papers\/PR01.html"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB77","doi-asserted-by":"crossref","unstructured":"Rajlich, V., A model for change propagation based on graph rewriting, in: Proc. Int'l Conf. Software Maintenance (1997), pp. 84\u201391.","DOI":"10.1109\/ICSM.1997.624234"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB78","series-title":"Ph.D. thesis","article-title":"\u201cPractical Analysis for Refactoring,\u201d","author":"Roberts","year":"1999"},{"issue":"4","key":"10.1016\/S1571-0661(05)82624-6_BIB79","doi-asserted-by":"crossref","first-page":"253","DOI":"10.1002\/(SICI)1096-9942(1997)3:4<253::AID-TAPO3>3.0.CO;2-T","article-title":"A refactoring tool for Smalltalk","volume":"3","author":"Roberts","year":"1997","journal-title":"Theory and Practice of Object Systems"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB80","series-title":"\u201cDesign of reactive systems and their distributed implementation with statecharts,\u201d Ph.D. thesis","author":"Scholz","year":"1998"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB81","first-page":"258","article-title":"On the computer aided introduction of design pattern into object-oriented systems","author":"Schulz","year":"1998","journal-title":"Technology of Object-Oriented Languages and Systems"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB82","unstructured":"Siegel, J. and OMG Staff Strategy Group, Developing in OMG's model-driven architecture, Technical Report White Paper Revision 2.6, Object Management Group (2001)."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB83","unstructured":"Simmonds, J. and T. Mens, A comparison of software refactoring tools, Technical Report vub-prog-tr-02-15, Programming Technology Lab (2002)."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB84","doi-asserted-by":"crossref","unstructured":"Simon, F., F. Steinbr\u00fcckner and C. Lewerentz, Metrics based refactoring, in: Proc. European Conf. Software Maintenance and Reengineering (2001), pp. 30\u201338.","DOI":"10.1109\/CSMR.2001.914965"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB85","doi-asserted-by":"crossref","unstructured":"Snelting, G. and F. Tip, Reengineering class hierarchies using concept analysis, in: Proc. Foundations of Software Engineering (FSE-6), SIGSOFT Software Engineering Notes 23(6) (1998), pp. 99\u2013110.","DOI":"10.1145\/288195.288273"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB86","doi-asserted-by":"crossref","unstructured":"Suny\u00e9, G., D. Pollet, Y. LeTraon and J.-M. J\u00e9z\u00e9quel, Refactoring UML models, in: Proc. UML 2001, Lecture Notes in Computer Science 2185 (2001), pp. 134\u2013138.","DOI":"10.1007\/3-540-45441-1_11"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB87","doi-asserted-by":"crossref","unstructured":"Tahvildari, L. and K. Kontogiannis, A methodology for developing transformations using the maintainability soft-goal graph, in: In Proceedings of the 9th IEEE Working Conference on Reverse Engineering (WCRE) (2002), pp. 77\u201386.","DOI":"10.1109\/WCRE.2002.1173066"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB88","series-title":"Refactoring functional programs, Technical report, Computing Laboratory","author":"Thompson","year":"2001"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB89","series-title":"\u201cModeling Object-Oriented Software for Reverse Engineering and Refactoring,\u201d Ph.D. thesis","author":"Tichelaar","year":"2001"},{"issue":"3","key":"10.1016\/S1571-0661(05)82624-6_BIB90","first-page":"121","article-title":"A survey of program slicing techniques","volume":"3","author":"Tip","year":"1995","journal-title":"Journal of Programming Languages"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB91","unstructured":"TogetherSoft, ControlCenter (2002). URL www.togethersoft.com\/"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB92","unstructured":"Tokuda, L. and D. Batory, Automated software evolution via design pattern transformations, in: Proc. 3rd Int. Symp. Applied Corporate Computing, 1995."},{"issue":"1","key":"10.1016\/S1571-0661(05)82624-6_BIB93","doi-asserted-by":"crossref","first-page":"89","DOI":"10.1023\/A:1008715808855","article-title":"Evolving object-oriented designs with refactorings","volume":"8","author":"Tokuda","year":"2001","journal-title":"Automated Software Engineering"},{"issue":"4","key":"10.1016\/S1571-0661(05)82624-6_BIB94","doi-asserted-by":"crossref","first-page":"351","DOI":"10.1109\/32.917524","article-title":"Concept analysis for module restructuring","volume":"27","author":"Tonella","year":"2001","journal-title":"Trans. Software Engineering"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB95","series-title":"\u201cAutomated Support for Framework-Based Software Evolution,\u201d Ph.D. thesis","author":"Tourw\u00e9","year":"2002"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB96","unstructured":"Tourw\u00e9, T. and T. Mens, Automatically identifying refactoring opportunities using logic meta programming, in: Proc. Int'l Conf. Software Maintenance and Re-engineering (CSMR), 2003."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB97","doi-asserted-by":"crossref","unstructured":"van Deursen, A. and T. Kuipers, Identifying objects using cluster and concept analysis (1998).","DOI":"10.1145\/302405.302629"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB98","unstructured":"van Deursen, A. and L. Moonen, The video store revisited \u2013 thoughts on refactoring and testing, in: Proc. 3rd Int'l Conf. eXtreme Programming and Flexible Processes in Software Engineering, 2002, pp. 71\u201376, Alghero, Sardinia, Italy."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB99","unstructured":"van Deursen, A., L. Moonen, A. van den Bergh and G. Kok, Refactoring test code, in: M. Marchesi, editor, Proc. 2nd Int'l Conf. eXtreme Programming and Flexible Processes, 2001."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB100","unstructured":"van Winsen, P., \u201c(Re)engineering with object-oriented design patterns,\u201d Master's thesis, Universiteit Utrecht (1996)."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB101","unstructured":"Wege, C. and M. Lippert, Diagnosing evolution in test-infected code, in: Succi, G, Marchesi, M. (eds.): Extreme Programming Examined, Proc. 2nd Int. Conf. eXtreme Programming and Flexible Processes in Software Engineering (2001), pp. 127\u2013131."},{"key":"10.1016\/S1571-0661(05)82624-6_BIB102","doi-asserted-by":"crossref","first-page":"221","DOI":"10.1145\/362575.362577","article-title":"Program development by stepwise refinement","volume":"14","author":"Wirth","year":"1971","journal-title":"Comm. ACM"},{"key":"10.1016\/S1571-0661(05)82624-6_BIB103","unstructured":"XRef-Tech, XRefactory (2002). URL xref-tech.com\/speller\/"}],"container-title":["Electronic Notes in Theoretical Computer Science"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S1571066105826246?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S1571066105826246?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2020,4,7]],"date-time":"2020-04-07T11:07:58Z","timestamp":1586257678000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S1571066105826246"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2003,12]]},"references-count":103,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2003,12]]}},"alternative-id":["S1571066105826246"],"URL":"https:\/\/doi.org\/10.1016\/s1571-0661(05)82624-6","relation":{},"ISSN":["1571-0661"],"issn-type":[{"value":"1571-0661","type":"print"}],"subject":[],"published":{"date-parts":[[2003,12]]}}}