RefDiff 2.0: A Multi-language Refactoring Detection Tool

dc.creatorSilva, Danilo
dc.creatorSilva, João
dc.creatorSantos, Gustavo Jansen De Souza
dc.creatorTerra, Ricardo
dc.creatorValente, Marco Tulio O.
dc.date.accessioned2020-09-17T20:05:46Z
dc.date.available2020-09-17T20:05:46Z
dc.date.issued2020-01
dc.description.abstractIdentifying refactoring operations in source code changes is valuable to understand software evolution. Therefore, several tools have been proposed to automatically detect refactorings applied in a system by comparing source code between revisions. The availability of such infrastructure has enabled researchers to study refactoring practice in large scale, leading to important advances on refactoring knowledge. However, although a plethora of programming languages are used in practice, the vast majority of existing studies are restricted to the Java language due to limitations of the underlying tools. This fact poses an important threat to external validity. Thus, to overcome such limitation, in this paper we propose RefDiff 2.0, a multi-language refactoring detection tool. Our approach leverages techniques proposed in our previous work and introduces a novel refactoring detection algorithm that relies on the Code Structure Tree (CST), a simple yet powerful representation of the source code that abstracts away the specificities of particular programming languages. Despite its language-agnostic design, our evaluation shows that RefDiff's precision (96%) and recall (80%) are on par with state-of-the-art refactoring detection approaches specialized in the Java language. Our modular architecture also enables one to seamless extend RefDiff to support other languages via a plugin system. As a proof of this, we implemented plugins to support two other popular programming languages: JavaScript and C. Our evaluation in these languages reveals that precision and recall ranges from 88% to 91%. With these results, we envision RefDiff as a viable alternative for breaking the single-language barrier in refactoring research and in practical applications of refactoring detection.pt_BR
dc.description.provenanceSubmitted by Daniele Faria (danielefaria@ufla.br) on 2020-09-16T14:50:31Z No. of bitstreams: 0en
dc.description.provenanceApproved for entry into archive by Eliana Bernardes (eliana@biblioteca.ufla.br) on 2020-09-17T20:05:46Z (GMT) No. of bitstreams: 0en
dc.description.provenanceMade available in DSpace on 2020-09-17T20:05:46Z (GMT). No. of bitstreams: 0 Previous issue date: 2020-01en
dc.identifier.citationSILVA, D. et al. RefDiff 2.0: A Multi-language Refactoring Detection Tool. IEEE Transactions on Software Engineering, Piscataway, Jan. 2020. DOI: 10.1109/TSE.2020.2968072.pt_BR
dc.identifier.urihttps://repositorio.ufla.br/handle/1/43124
dc.identifier.urihttps://ieeexplore.ieee.org/document/8966516pt_BR
dc.languageen_USpt_BR
dc.publisherInstitute of Electrical and Electronic Engineers - IEEEpt_BR
dc.rightsopenAccesspt_BR
dc.sourceIEEE Transactions on Software Engineeringpt_BR
dc.subjectToolspt_BR
dc.subjectJavapt_BR
dc.subjectCrawlerspt_BR
dc.subjectMeasurementpt_BR
dc.subjectSoftware - Refatoraçãopt_BR
dc.subjectLinguagens de programaçãopt_BR
dc.titleRefDiff 2.0: A Multi-language Refactoring Detection Toolpt_BR
dc.typeArtigopt_BR

Arquivos

Licença do pacote

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
953 B
Formato:
Item-specific license agreed upon to submission
Descrição: