Title :
Refactoring Generics in JAVA: A Case Study on Extract Method
Author :
Marticorena, Raúl ; López, Carlos ; Crespo, Yania ; Pérez, F. Javier
Author_Institution :
Comput. Languages & Syst. Area, Univ. of Burgos, Burgos, Spain
Abstract :
The addition of support for genericity to mainstream programming languages has a notable influence in refactoring tools. This also applies to the JAVA programming language. Those versions of the language specification prior to JAVA 5 did not include support for generics. Therefore, refactoring tools had to evolve to modify their refactoring implementations according to the new language characteristics in order to assure the correct effects when transforming code containing generic definitions or using generic instantiations. This paper presents an evaluation of the behaviour of refactoring tools on source code that defines or uses generics. We compare the behaviour of five refactoring tools on a well known refactoring, Extract Method, and its implementation for the JAVA language. We distill the lessons learned from our evaluation into requirements that have to be taken into account by refactoring tools in order to fully conform to this new language feature.
Keywords :
Java; software maintenance; software tools; source coding; JAVA programming language; extract method; generic definitions; generic instantiations; language specification; refactoring tools; source code; Arrays; Feature extraction; Indexes; Input variables; Java; Software; extract method; generic programming; generics; refactoring; test cases;
Conference_Titel :
Software Maintenance and Reengineering (CSMR), 2010 14th European Conference on
Conference_Location :
Madrid
Print_ISBN :
978-1-61284-369-8
Electronic_ISBN :
1534-5351
DOI :
10.1109/CSMR.2010.38