MC3: Multi-Objective Code Clone Configuration for Online Code Repositories

Detalhes bibliográficos
Ano de defesa: 2025
Autor(a) principal: Sousa, Denis Menezes De
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Universidade Estadual do Ceará
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
Link de acesso: https://siduece.uece.br/siduece/trabalhoAcademicoPublico.jsf?id=117470
Resumo: A detecção de clones é um processo automatizado para encontrar códigos duplicados dentro do código-fonte de um projeto ou entre fontes online, como plataformas de perguntas e respostas. Atualmente, a comunidade que estuda clonagem de código defende que os desenvolvedores devem estar cientes dos clones que podem existir em seus códigos para removê-los ou mantê-los, dependendo de seus objetivos. Para identificar clones automaticamente em um código-fonte, é necessário utilizar ferramentas de detecção de clones. Essas ferramentas são sensíveis às suas configurações, o que afeta diretamente suas capacidades de detecção. Certos estudos que implementaram processos de otimização de parâmetros em detectores de clones alcançaram configurações otimizadas que superaram as configurações padrão das ferramentas. No entanto, os métodos atuais de otimização de parâmetros para detectores de clones não são projetados para ferramentas baseadas em ranqueamento. Para lidar com essa limitação e apoiar a pesquisa empírica sobre clones de código, foi introduzido o Multi-objective Code Clone Configuration (MC3), uma abordagem inovadora que utiliza uma otimização multiobjetiva para identificar uma configuração ideal para de detecção de clones baseada em ranqueamento. A avaliação empírica incluiu a execução de três algoritmos de busca base, além do NSGA-II, para avaliar seu desempenho nesse novo contexto de otimização. Além disso, as configurações otimizadas foram comparadas com a configuração padrão. Os resultados obtidos indicaram que o NSGA-II foi o algoritmo com o melhor desempenho, identificando configurações superiores em comparação com os algoritmos base. Por fim, as configurações otimizadas demonstraram melhorias de 71,08% e 46,29% nas funções de aptidão.