On the detection of code clones with sequence of method calls
Carregando...
Arquivos
Data
Autor(es)
Título da Revista
ISSN da Revista
Título de Volume
Editor
Universidade Federal de Minas Gerais
Descrição
Tipo
Dissertação de mestrado
Título alternativo
Primeiro orientador
Membros da banca
Humberto Torres Marques Neto
Mariza Andrade da Silva Bigonha
Mariza Andrade da Silva Bigonha
Resumo
Desenvolvedores de software geralmente copiam e colam código de uma parte do sistema para outro. Esta prática, chamada de clonagem de código, dispersa uma mesma lógica em diferentes pontos do sistema, dificultando as tarefas de manutenção e evolução. Vários métodos foram propostos a fim de localizar códigos clonados para posterior eliminação. No entanto, alguns tipos de códigos clonados são difíceis de encontrar, especialmente quando as partes recebem diferentes alterações. Este trabalho propõe um método para detectar códigos clonados usando chamadas de método. Esse método se baseia em busca códigos clonados em sistemas de código aberto analisando sequências de chamadas de métodos. Os resultados foram comparados com os códigos clonados detectados por um ferramenta largamente utilizada, chamada PMD. A fim de avaliar o nosso método, um estudo foi realizado com 25 desenvolvedores. Por meio de inspeção de código, os participantes analisaram códigos clonados encontrados pelo nosso método. Este estudo mostrou que mais de 90% dos participantes concordaram como sendo clones os trechos de código encontrados pelo método. Portanto, os resultados até agora indicam que análise de sequência de chamadas de método é uma estratégia válida para localização de códigos clonados.
Abstract
Software developers usually copy and paste code from a part of the system to another. This practice, called code clone, spreads same logic all over the system, hardening maintenance and evolution tasks. Several methods were proposed in order to locate code clones for further elimination. However, some types of code clones are hard to find, specially when the parts receive different changes. This work proposes a method for detecting code clones analyzing sequence of method calls. Our results were compared with code clones detected by a state of the practice tool, called PMD. In addition, a user study was conducted in order to manually evaluate the detections. Participants analyzed the code clones detected by our method. This user study showed that more than 90% of subjects agree with the code clones found by the method. Therefore, results so far indicate that sequence of method calls analysis is a valid strategy for code clone detection.
Assunto
Método de detecção código clonado, Computação, Clonagem de código
Palavras-chave
método de detecção, código clonado