{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,9,29]],"date-time":"2023-09-29T12:57:06Z","timestamp":1695992226606},"reference-count":15,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2014,12,25]],"date-time":"2014-12-25T00:00:00Z","timestamp":1419465600000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Autom Softw Eng"],"published-print":{"date-parts":[[2016,3]]},"DOI":"10.1007\/s10515-014-0176-9","type":"journal-article","created":{"date-parts":[[2014,12,24]],"date-time":"2014-12-24T05:47:07Z","timestamp":1419400027000},"page":"77-104","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Differential precondition checking: a language-independent, reusable analysis for refactoring engines"],"prefix":"10.1007","volume":"23","author":[{"given":"Jeffrey L.","family":"Overbey","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ralph E.","family":"Johnson","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Munawar","family":"Hafiz","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2014,12,25]]},"reference":[{"key":"176_CR1","doi-asserted-by":"crossref","unstructured":"Daniel, B., Dig, D., Garcia, K., Marinov, D.: Automated testing of refactoring engines. In: Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE \u201907). ACM, New York, (2007)","DOI":"10.1145\/1287624.1287651"},{"key":"176_CR2","doi-asserted-by":"crossref","unstructured":"Dig, D., Marrero, J., Ernst, M.D.: Refactoring sequential Java code for concurrency via concurrent libraries. In: Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society (ICSE \u201909), Washington, DC, pp. 397\u2013407 (2009)","DOI":"10.1109\/ICSE.2009.5070539"},{"key":"176_CR3","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"E Gamma","year":"1995","unstructured":"Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading, MA (1995)"},{"key":"176_CR4","volume-title":"Optimizing Compilers for Modern Architectures: A Dependence-Based Approach","author":"Ken Kennedy","year":"2002","unstructured":"Kennedy, Ken, Allen, John R.: Optimizing Compilers for Modern Architectures: A Dependence-Based Approach. Morgan Kaufmann, San Francisco (2002)"},{"issue":"4","key":"176_CR5","doi-asserted-by":"crossref","first-page":"247","DOI":"10.1002\/smr.316","volume":"17","author":"Tom Mens","year":"2005","unstructured":"Mens, Tom, van Eetvelde, N., Demeyer, S., Janssens, D.: Formalizing Refactorings with Graph Transformations. J. Softw. Maint. Evol. 17(4), 247\u2013276 (2005)","journal-title":"J. Softw. Maint. Evol."},{"key":"176_CR6","doi-asserted-by":"crossref","unstructured":"Murphy-Hill, E., Parnin, C., Black, A.P..: How we refactor, and how we know it. In: Proceedings of the 31st International Conference on Software Engineering (ICSE \u201909), pp. 287\u2013297 (2009)","DOI":"10.1109\/ICSE.2009.5070529"},{"key":"176_CR7","doi-asserted-by":"crossref","unstructured":"Overbey, J.L., Fotzler, M.J., Kasza, A.J., Johnson, R.E.: A Collection of Refactoring Specifications for Fortran 95, BC, and PHP 5. Technical Report http:\/\/jeff.over.bz\/papers\/2011\/tr-refacs.pdf (2011)","DOI":"10.1145\/1883575.1883577"},{"key":"176_CR8","doi-asserted-by":"crossref","unstructured":"Overbey, J.L., Johnson, R.E.: Differential precondition checking: a lightweight, reusable analysis for refactoring tools. In: 26th IEEE\/ACM International Conference on Automated Software Engineering (ASE \u201911), pp. 303\u2013312. Lawrence (2011)","DOI":"10.1109\/ASE.2011.6100067"},{"key":"176_CR9","doi-asserted-by":"crossref","unstructured":"Overbey, J.L., Johnson, R.E.: Generating rewritable abstract syntax trees. In: Software Language Engineering. Lecture Notes in Computer Science, vol. 5452, pp. 114\u2013133. Springer, Berlin (2008)","DOI":"10.1007\/978-3-642-00434-6_8"},{"key":"176_CR10","doi-asserted-by":"crossref","unstructured":"Reichenbach, C., Coughlin, D., Diwan, A.: Program metamorphosis. In: Proceedings of the 23rd European Conference on Object Oriented Programming (ECOOP \u201909) (2009)","DOI":"10.1007\/978-3-642-03013-0_18"},{"key":"176_CR11","doi-asserted-by":"crossref","unstructured":"Sch\u00e4fer, M., de Moor, O.: Specifying and implementing refactorings. In: ACM Sigplan Notices (SPLASH \u201910), vol. 45, pp. 286\u2013301 (2010)","DOI":"10.1145\/1869459.1869485"},{"key":"176_CR12","doi-asserted-by":"crossref","unstructured":"Sch\u00e4fer, M., Dolby, J., Sridharan, M., Tip, F., Torlak, E.: Correct refactoring of concurrent Java code. In: 24th European Conference on Object-Oriented Programming (ECOOP \u201910). Springer, Berlin (2010)","DOI":"10.1007\/978-3-642-14107-2_11"},{"key":"176_CR13","doi-asserted-by":"crossref","unstructured":"Sch\u00e4fer, M., Ekman, T., de Moor, O.: Sound and extensible renaming for Java. In: 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA \u201908). ACM Press, New York (2008)","DOI":"10.1145\/1449764.1449787"},{"key":"176_CR14","doi-asserted-by":"crossref","unstructured":"Sch\u00e4fer, M., Verbaere, M., Ekman, T., de Moor, O.: Stepping stones over the refactoring rubicon\u2014lightweight language extensions to easily realise refactorings. In: ECOOP \u201909 (2009)","DOI":"10.1007\/978-3-642-03013-0_17"},{"key":"176_CR15","doi-asserted-by":"crossref","unstructured":"Verbaere, M., Ettinger, R., de Moor, O.: JunGL: a scripting language for refactoring. In: Proceedings of the 28th International Conference on Software Engineering (ICSE\u201906). ACM, New York (2006)","DOI":"10.1145\/1134285.1134311"}],"container-title":["Automated Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10515-014-0176-9.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10515-014-0176-9\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10515-014-0176-9","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,8,18]],"date-time":"2019-08-18T23:55:31Z","timestamp":1566172531000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10515-014-0176-9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,12,25]]},"references-count":15,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2016,3]]}},"alternative-id":["176"],"URL":"https:\/\/doi.org\/10.1007\/s10515-014-0176-9","relation":{},"ISSN":["0928-8910","1573-7535"],"issn-type":[{"value":"0928-8910","type":"print"},{"value":"1573-7535","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014,12,25]]}}}