{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,18]],"date-time":"2026-02-18T03:38:46Z","timestamp":1771385926189,"version":"3.50.1"},"publisher-location":"Berlin, Heidelberg","reference-count":23,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783642030123","type":"print"},{"value":"9783642030130","type":"electronic"}],"license":[{"start":{"date-parts":[[2009,1,1]],"date-time":"2009-01-01T00:00:00Z","timestamp":1230768000000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2009]]},"DOI":"10.1007\/978-3-642-03013-0_17","type":"book-chapter","created":{"date-parts":[[2009,7,30]],"date-time":"2009-07-30T10:30:01Z","timestamp":1248949801000},"page":"369-393","source":"Crossref","is-referenced-by-count":28,"title":["Stepping Stones over the Refactoring Rubicon"],"prefix":"10.1007","author":[{"given":"Max","family":"Sch\u00e4fer","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mathieu","family":"Verbaere","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Torbj\u00f6rn","family":"Ekman","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Oege","family":"de Moor","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"17_CR1","first-page":"368","volume-title":"ICSM","author":"I.D. Baxter","year":"1998","unstructured":"Baxter, I.D., Yahin, A., Moura, L., Sant\u2019Anna, M., Bier, L.: Clone Detection Using Abstract Syntax Trees. In: ICSM, Washington, DC, USA, p. 368. IEEE Computer Society Press, Los Alamitos (1998)"},{"key":"17_CR2","unstructured":"Eclipse (2008), http:\/\/www.eclipse.org"},{"key":"17_CR3","unstructured":"Ekman, T., Ettinger, R., Sch\u00e4fer, M., Verbaere, M.: Refactoring bugs (2008), http:\/\/progtools.comlab.ox.ac.uk\/refactoring\/bugreports"},{"key":"17_CR4","doi-asserted-by":"crossref","unstructured":"Ekman, T., Hedin, G.: The JastAdd Extensible Java Compiler. In: OOPSLA (2007)","DOI":"10.1145\/1297846.1297881"},{"key":"17_CR5","doi-asserted-by":"crossref","unstructured":"Ettinger, R.: Refactoring via Program Slicing and Sliding. D.Phil. thesis, Computing Laboratory, Oxford, UK (2007)","DOI":"10.1109\/ICSM.2007.4362672"},{"key":"17_CR6","doi-asserted-by":"crossref","unstructured":"Ettinger, R., Verbaere, M.: Untangling: a slice extraction refactoring. In: Aspect-Oriented Software Development (AOSD), pp. 93\u2013101 (2004)","DOI":"10.1145\/976270.976283"},{"key":"17_CR7","unstructured":"Fowler, M.: Crossing Refactoring\u2019s Rubicon (2001), http:\/\/martinfowler.com\/articles\/refactoringRubicon.html"},{"key":"17_CR8","unstructured":"Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification (2005)"},{"key":"17_CR9","unstructured":"Griswold, W.G.: Program Restructuring as an Aid to Software Maintenance. Ph.D. thesis, University of Washington (1991)"},{"key":"17_CR10","unstructured":"IntelliJ IDEA (2008), http:\/\/www.jetbrains.com"},{"key":"17_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"190","DOI":"10.1007\/3-540-15975-4_37","volume-title":"Functional Programming Languages and Computer Architecture","author":"T. Johnsson","year":"1985","unstructured":"Johnsson, T.: Lambda Lifting: Transforming Programs to Recursive Equations. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol.\u00a0201, pp. 190\u2013230. Springer, Heidelberg (1985)"},{"key":"17_CR12","unstructured":"Juillerat, N., Hirsbrunner, B.: Improving Method Extraction: A Novel Approach to Data Flow Analysis Using Boolean Flags and Expressions. In: WRT (2007)"},{"issue":"1-3","key":"17_CR13","doi-asserted-by":"publisher","first-page":"9","DOI":"10.1016\/j.scico.2004.03.002","volume":"52","author":"G. Kniesel","year":"2004","unstructured":"Kniesel, G., Koch, H.: Static Composition of Refactorings. The Science of Computer Programming\u00a052(1-3), 9\u201351 (2004)","journal-title":"The Science of Computer Programming"},{"key":"17_CR14","doi-asserted-by":"publisher","first-page":"155","DOI":"10.1145\/325694.325713","volume-title":"POPL","author":"R. Komondoor","year":"2000","unstructured":"Komondoor, R., Horwitz, S.: Semantics-preserving Procedure Extraction. In: POPL, pp. 155\u2013169. ACM Press, New York (2000)"},{"key":"17_CR15","doi-asserted-by":"crossref","unstructured":"Kuck, D.J., Kuhn, R.H., Leasure, B., Padua, D.A., Wolfe, M.: Dependence Graphs and Compiler Optimizations. In: POPL, January 1981, pp. 207\u2013218 (1981)","DOI":"10.1145\/567532.567555"},{"key":"17_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"286","DOI":"10.1007\/3-540-45832-8_22","volume-title":"Graph Transformation","author":"T. Mens","year":"2002","unstructured":"Mens, T., DeMeyer, S., Janssens, D.: Formalising behaviour preserving program transformations. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol.\u00a02505, pp. 286\u2013301. Springer, Heidelberg (2002)"},{"key":"17_CR17","unstructured":"NetBeans (2008), http:\/\/www.netbeans.com"},{"key":"17_CR18","unstructured":"Nilsson-Nyman, E., Ekman, T., Hedin, G., Magnusson, E.: Declarative Intraprocedural Flow Analysis of Java Source Code. In: Proceedings of 8th Workshop on Language Descriptions, Tools and Applications (LDTA 2008) (2008)"},{"key":"17_CR19","unstructured":"Opdyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)"},{"key":"17_CR20","doi-asserted-by":"publisher","first-page":"2","DOI":"10.1145\/1028664.1028666","volume-title":"OOPSLA 2004: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications","author":"R. Perera","year":"2004","unstructured":"Perera, R.: Refactoring: to the Rubicon.. and beyond! In: OOPSLA 2004: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pp. 2\u20133. ACM Press, New York (2004)"},{"key":"17_CR21","volume-title":"OOPSLA","author":"M. Sch\u00e4fer","year":"2008","unstructured":"Sch\u00e4fer, M., Ekman, T., de Moor, O.: Sound and Extensible Renaming for Java. In: Kiczales, G. (ed.) OOPSLA. ACM Press, New York (2008)"},{"key":"17_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"143","DOI":"10.1007\/978-3-642-00590-9_11","volume-title":"ESOP 2009","author":"M. Sch\u00e4fer","year":"2009","unstructured":"Sch\u00e4fer, M., Ekman, T., de Moor, O.: Formalising and Verifying Reference Attribute Grammars in Coq. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol.\u00a05502, pp. 143\u2013159. Springer, Heidelberg (2009)"},{"key":"17_CR23","doi-asserted-by":"crossref","unstructured":"Verbaere, M., Ettinger, R., de Moor, O.: JunGL: a Scripting Language for Refactoring. In: ICSE (2006)","DOI":"10.1145\/1134285.1134311"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2009 \u2013 Object-Oriented Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-642-03013-0_17","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,21]],"date-time":"2019-05-21T15:52:11Z","timestamp":1558453931000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-642-03013-0_17"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009]]},"ISBN":["9783642030123","9783642030130"],"references-count":23,"URL":"https:\/\/doi.org\/10.1007\/978-3-642-03013-0_17","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2009]]}}}