{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,15]],"date-time":"2026-03-15T15:29:14Z","timestamp":1773588554689,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":32,"publisher":"ACM","license":[{"start":{"date-parts":[[2008,5,10]],"date-time":"2008-05-10T00:00:00Z","timestamp":1210377600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2008,5,10]]},"DOI":"10.1145\/1368088.1368147","type":"proceedings-article","created":{"date-parts":[[2008,5,15]],"date-time":"2008-05-15T14:36:48Z","timestamp":1210862208000},"page":"431-440","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":33,"title":["Systematically refactoring inheritance to delegation in java"],"prefix":"10.1145","author":[{"given":"Hannes","family":"Kegel","sequence":"first","affiliation":[{"name":"ej-technologies GmbH, M\u00fcnchen, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Friedrich","family":"Steimann","sequence":"additional","affiliation":[{"name":"Fernuniversit\u00e4t in Hagen, Hagen, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2008,5,10]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/97945.97982"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","unstructured":"S Demeyer \"Analysis of overridden methods to infer hot spots\" in: ECOOP'98 Workshop Reader LNCS 1543 (1998) 66--67.","DOI":"10.5555\/646778.703998"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1119479.1119483"},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/262793.262798"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.5555\/311424"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","unstructured":"RM Fuhrer F Tip A Kiezun J Dolby M Keller \"Efficiently refactoring Java applications to use generic libraries\" in: Proc. of ECOOP (2005) 71--96. 10.1007\/11531142_4","DOI":"10.1007\/11531142_4"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/186897"},{"key":"e_1_3_2_1_8_1","volume-title":"of 4th EuroPLoP","author":"Genssler T","year":"1999","unstructured":"T Genssler, B Schulz \"Transforming inheritance into composition - A reengineering pattern\" in: Pro. of 4th EuroPLoP (1999)."},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","unstructured":"J Gosling B Joy G Steele G Bracha The Java Language Specification (http:\/\/java.sun.com\/docs\/books\/jls\/).","DOI":"10.5555\/560667"},{"key":"e_1_3_2_1_10_1","volume-title":"M Grand Patterns in Java","year":"2002","unstructured":"M Grand Patterns in Java 2nd edition (Wiley &amp; Sons 2002).","edition":"2"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","unstructured":"FJ Hauck \"Inheritance modeled with explicit bindings: An approach to typed inheritance\" in: Proc. of OOPSLA (1993) 231--239. 10.1145\/165854.165895","DOI":"10.1145\/165854.165895"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","unstructured":"DHH Ingalls \"A simple technique for handling multiple polymorphism\" in: Proc. of OOPSLA (1986) 347--349. 10.1145\/28697.28732","DOI":"10.1145\/28697.28732"},{"key":"e_1_3_2_1_13_1","unstructured":"IntelliJ IDEA (http:\/\/www.jetbrains.com)."},{"issue":"2","key":"e_1_3_2_1_14_1","first-page":"22","article-title":"Designing reusable classes","volume":"1","author":"Johnson RE","year":"1988","unstructured":"RE Johnson, B Foote \"Designing reusable classes\" Journal of Object-Oriented Programming 1:2 (1988) 22--35.","journal-title":"Journal of Object-Oriented Programming"},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/646897.709889"},{"key":"e_1_3_2_1_16_1","unstructured":"JUnit unit testing framework (http:\/\/junit.org)."},{"key":"e_1_3_2_1_17_1","volume-title":"Fernuniversit\u00e4t in Hagen","author":"\u00fcr H Kegel","year":"2007","unstructured":"H Kegel Constraint-basierte Typinferenz f\u00fcr Java 5 (Diplomarbeit, Fakult\u00e4t f\u00fcr Mathematik und Informatik, Fernuniversit\u00e4t in Hagen 2007)."},{"key":"e_1_3_2_1_18_1","volume-title":"A type inference Package for refactoring tools\" in: Workshop on Refactoring Tools @ ECOOP","author":"Kegel H","year":"2007","unstructured":"H Kegel, F Steimann \"ITcore: A type inference Package for refactoring tools\" in: Workshop on Refactoring Tools @ ECOOP (2007)."},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2007.70"},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","unstructured":"H Lieberman \"Using prototypical objects to implement shared behavior in object-oriented systems\" in: Proc. of OOPSLA (1986) 214--223. 10.1145\/28697.28718","DOI":"10.1145\/28697.28718"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1002\/smr.v17:4"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","unstructured":"Mikhajlov E Sekerinski \"A study of the fragile base class problem\" in: Proc. of ECOOP (1998) 355--382.","DOI":"10.5555\/646155.679700"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.5555\/169783"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/117954.117965"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","unstructured":"BC Pierce Types and Programming Languages (MIT Press 2002).","DOI":"10.5555\/509043"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","unstructured":"R Stata JV Guttag \"Modular reasoning in the presence of subclassing\" in: Proc. of OOPSLA (1995) 200--214. 10.1145\/217838.217861","DOI":"10.1145\/217838.217861"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.5381\/jot.2007.6.2.a5"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","unstructured":"LA Stein \"Delegation is inheritance\" in: OOPSLA (1987) 138--146. 10.1145\/38765.38820","DOI":"10.1145\/38765.38820"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","unstructured":"M Streckenbach G Snelting \"Refactoring class hierarchies with KABA\" in: Proc. of OOPSLA (2004) 315--330. 10.1145\/1028976.1029003","DOI":"10.1145\/1028976.1029003"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","unstructured":"F Tip A Kiezun D B\u00e4umer \"Refactoring for generalization using type constraints\" in: Proc. of OOPSLA (2003) 13--26. 10.1145\/949305.949308","DOI":"10.1145\/949305.949308"},{"key":"e_1_3_2_1_31_1","volume-title":"14th International Symposium (2007)","author":"Refactoring F Tip","unstructured":"F Tip \"Refactoring using type constraints\" in: Proc. of Static Analysis, 14th International Symposium (2007) 1--17."},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","unstructured":"D Ungar RB Smith \"Self: The power of simplicity\" in: Proc. of OOPSLA (1987) 227--242. 10.1145\/38765.38828","DOI":"10.1145\/38765.38828"}],"event":{"name":"ICSE '08: International Conference on Software Engineering","location":"Leipzig Germany","acronym":"ICSE '08","sponsor":["ACM Association for Computing Machinery","SIGSOFT ACM Special Interest Group on Software Engineering"]},"container-title":["Proceedings of the 30th international conference on Software engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1368088.1368147","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1368088.1368147","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,3,15]],"date-time":"2026-03-15T13:50:21Z","timestamp":1773582621000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1368088.1368147"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,5,10]]},"references-count":32,"alternative-id":["10.1145\/1368088.1368147","10.1145\/1368088"],"URL":"https:\/\/doi.org\/10.1145\/1368088.1368147","relation":{},"subject":[],"published":{"date-parts":[[2008,5,10]]},"assertion":[{"value":"2008-05-10","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}