Vector Abstraction and Concretization for Scalable Detection of Refactorings (A Technical Report)

dc.contributor.authorMILEA, Narcisa Andreeaen_US
dc.contributor.authorJIANG, Lingxiaoen_US
dc.contributor.authorKHOO, Siau-Chengen_US
dc.date.accessioned2014-06-04T07:04:25Zen_US
dc.date.accessioned2017-01-23T07:00:08Z
dc.date.available2014-06-04T07:04:25Zen_US
dc.date.available2017-01-23T07:00:08Z
dc.date.issued2014-03-28en_US
dc.description.abstractAutomated techniques have been proposed to either identify refactoring opportunities (i.e., code fragments that can, but have not yet been restructured in a program), or reconstruct historical refactoring (i.e., code restructuring operations that have happened between di erent versions of a program). However, it remains challenging to apply those techniques to large code bases containing millions of lines of code involving many versions. In this paper, we propose a new scalable technique that can be used for both identifying refactoring opportunities and historical refactoring. The key of our technique is the design of vector abstraction and concretization operations that can capture the essential patterns of the code changes induced by various refactoring operations in the form of characteristic vectors. Thus, the problem of identifying refactorings can be reduced to the problem of identifying matching vectors, which can be solved e ciently. We have implemented our technique for Java. We have applied the prototype to 200 bundle projects from the Eclipse ecosystem containing 4.5 million lines of code, and reports in total more than 32K instances of 17 types refactoring opportunities for all Eclipse projects, taking 25 minutes on average for each type. We have also applied the prototype to 14 versions of 3 smaller programs (JMeter, Ant, XML-Security), and detected (1) more than 2.8K refactoring opportunities within individual versions with an accuracy of about 87%, and (2) more than 190 historical refactorings across consecutive versions of the programs with an accuracy of about 92%.en_US
dc.identifier.urihttps://dl.comp.nus.edu.sg/xmlui/handle/1900.100/4625en_US
dc.language.isoenen_US
dc.relation.ispartofseries;TRC3/2014en_US
dc.titleVector Abstraction and Concretization for Scalable Detection of Refactorings (A Technical Report)en_US
dc.typeThesisen_US
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TRC3-2014.pdf
Size:
2.5 MB
Format:
Adobe Portable Document Format
Description:
License bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.53 KB
Format:
Plain Text
Description: