On the detection of code clones with sequence of method calls
| Ano de defesa: | 2016 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | eng |
| Instituição de defesa: |
Universidade Federal de Minas Gerais
|
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | https://hdl.handle.net/1843/ESBF-AFWNK8 |
Resumo: | 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. |
| id |
UFMG_8db045aa4ea3b8bcc08b6c11282fd7ab |
|---|---|
| oai_identifier_str |
oai:repositorio.ufmg.br:1843/ESBF-AFWNK8 |
| network_acronym_str |
UFMG |
| network_name_str |
Repositório Institucional da UFMG |
| repository_id_str |
|
| spelling |
2019-08-11T23:43:34Z2025-09-09T00:47:09Z2019-08-11T23:43:34Z2016-05-11https://hdl.handle.net/1843/ESBF-AFWNK8Software 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.Universidade Federal de Minas Geraismétodo de detecçãocódigo clonadoMétodo de detecção código clonadoComputaçãoClonagem de códigoOn the detection of code clones with sequence of method callsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisAlexandre Martins Paivainfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGEduardo Magno Lages FigueiredoHumberto Torres Marques NetoMariza Andrade da Silva BigonhaDesenvolvedores 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.UFMGORIGINALalexandremartinspaiva.pdfapplication/pdf1758423https://repositorio.ufmg.br//bitstreams/a0b47d3d-3779-4bb2-8383-3ee9b7f74239/download299689cabdf287dca29967f5182d131fMD51trueAnonymousREADTEXTalexandremartinspaiva.pdf.txttext/plain151281https://repositorio.ufmg.br//bitstreams/e24da173-3a2f-4086-9154-78bbd4ec9fbf/download4898a4e262387c54e6b2ffbb1a73418dMD52falseAnonymousREAD1843/ESBF-AFWNK82025-09-08 21:47:09.067open.accessoai:repositorio.ufmg.br:1843/ESBF-AFWNK8https://repositorio.ufmg.br/Repositório InstitucionalPUBhttps://repositorio.ufmg.br/oairepositorio@ufmg.bropendoar:2025-09-09T00:47:09Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false |
| dc.title.none.fl_str_mv |
On the detection of code clones with sequence of method calls |
| title |
On the detection of code clones with sequence of method calls |
| spellingShingle |
On the detection of code clones with sequence of method calls Alexandre Martins Paiva Método de detecção código clonado Computação Clonagem de código método de detecção código clonado |
| title_short |
On the detection of code clones with sequence of method calls |
| title_full |
On the detection of code clones with sequence of method calls |
| title_fullStr |
On the detection of code clones with sequence of method calls |
| title_full_unstemmed |
On the detection of code clones with sequence of method calls |
| title_sort |
On the detection of code clones with sequence of method calls |
| author |
Alexandre Martins Paiva |
| author_facet |
Alexandre Martins Paiva |
| author_role |
author |
| dc.contributor.author.fl_str_mv |
Alexandre Martins Paiva |
| dc.subject.por.fl_str_mv |
Método de detecção código clonado Computação Clonagem de código |
| topic |
Método de detecção código clonado Computação Clonagem de código método de detecção código clonado |
| dc.subject.other.none.fl_str_mv |
método de detecção código clonado |
| description |
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. |
| publishDate |
2016 |
| dc.date.issued.fl_str_mv |
2016-05-11 |
| dc.date.accessioned.fl_str_mv |
2019-08-11T23:43:34Z 2025-09-09T00:47:09Z |
| dc.date.available.fl_str_mv |
2019-08-11T23:43:34Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://hdl.handle.net/1843/ESBF-AFWNK8 |
| url |
https://hdl.handle.net/1843/ESBF-AFWNK8 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
| publisher.none.fl_str_mv |
Universidade Federal de Minas Gerais |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFMG instname:Universidade Federal de Minas Gerais (UFMG) instacron:UFMG |
| instname_str |
Universidade Federal de Minas Gerais (UFMG) |
| instacron_str |
UFMG |
| institution |
UFMG |
| reponame_str |
Repositório Institucional da UFMG |
| collection |
Repositório Institucional da UFMG |
| bitstream.url.fl_str_mv |
https://repositorio.ufmg.br//bitstreams/a0b47d3d-3779-4bb2-8383-3ee9b7f74239/download https://repositorio.ufmg.br//bitstreams/e24da173-3a2f-4086-9154-78bbd4ec9fbf/download |
| bitstream.checksum.fl_str_mv |
299689cabdf287dca29967f5182d131f 4898a4e262387c54e6b2ffbb1a73418d |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
| repository.name.fl_str_mv |
Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG) |
| repository.mail.fl_str_mv |
repositorio@ufmg.br |
| _version_ |
1862105713932763136 |