Uma abordagem baseada em inteligência artificial para recomendações completas de método de extração

dc.contributor.advisor1Camargo, Valter Vieira de
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/6809743774407662
dc.contributor.advisor1orcidhttps://orcid.org/0000-0002-6439-4649
dc.contributor.authorArmijo, Guisella Clara Angulo
dc.contributor.authorlatteshttp://lattes.cnpq.br/2292043446906539
dc.contributor.authororcidhttps://orcid.org/0000-0003-1898-4039
dc.contributor.refereeFigueiredo, Eduardo Lages
dc.contributor.refereeWiese, Igor Scaliante
dc.contributor.refereeValejo, Alan Demetrius Baria
dc.contributor.refereeLucrédio, Daniel
dc.contributor.refereeLatteshttp://lattes.cnpq.br/1265706528850746
dc.contributor.refereeLatteshttp://lattes.cnpq.br/0447444423694007
dc.contributor.refereeLatteshttp://lattes.cnpq.br/9546164790189830
dc.contributor.refereeLatteshttp://lattes.cnpq.br/9090396559596221
dc.contributor.refereeorcidhttps://orcid.org/0000-0002-6004-2718
dc.contributor.refereeorcidhttps://orcid.org/0000-0001-9943-5570
dc.contributor.refereeorcidhttps://orcid.org/0000-0002-9046-9499
dc.contributor.refereeorcidhttps://orcid.org/0000-0002-1360-4036
dc.date.accessioned2025-12-15T13:04:51Z
dc.date.issued2025-10-08
dc.description.abstractSoftware systems must continually evolve to remain useful, but this evolution often increases complexity and degrades quality, making refactoring essential for long-term maintainability. Despite significant research on automated refactoring recommendations, existing approaches remain limited: the vast majority focus on solving specific problems like code smells or rely on software metrics, while neglecting the rich semantic and syntactic representations of source code. Moreover, they usually provide partial support, such as identifying where to refactor without specifying what refactoring to apply or suggesting a refactoring type without clarifying its rationale. This narrow scope not only overlooks diverse and real refactoring needs but also undermines developer trust, reducing the practical usefulness of such tools. This work addresses these limitations by proposing an artificial intelligence–based approach for generating complete recommendations for Extract Method refactoring. Grounded in real refactorings applied in the past of the projects and leveraging the semantic representation of code, the approach delivers recommendations that explicitly cover the W3B criteria, developed in this work: Which refactoring to apply, Where in the code it should be applied, Why it is suggested, and the Benefits it brings. The methodology followed a multi-phase pipeline. First, a specialized dataset of Extract Method samples was systematically built. Second, a recommendation model was developed by fine-tuning CodeBERT to measure the affinity between candidate fragments and the analyzed method. Third, a consensus-based explainer was designed, aggregating outputs from SHAP, LIME, and ANCHOR with a Random Forest surrogate to provide interpretable explanations. Finally, the outputs of all phases were integrated into a concluding phase, completing the proposed approach and delivering complete and interpretable Extract Method recommendations. Evaluation was conducted through a controlled experiment with postgraduate students (7 participants out of 9 initially enrolled), who provided a total of 24 evaluations by assessing more than one method each. Results showed a statistically significant improvement in participants’ confidence scores (p = 0.011), strong alignment between tool suggestions and participants’ own choices (57.7%), and high agreement (96%) with the stated benefits, including readability, modularity, and maintainability.eng
dc.description.resumoSistemas de software devem evoluir continuamente para permanecer úteis, mas essa evolução frequentemente aumenta a complexidade e degrada a qualidade, tornando a refatoração essencial para a manutenção a longo prazo. Apesar das pesquisas em recomendações automáticas de refatoração, as abordagens existentes permanecem limitadas: em sua maioria tratam apenas de problemas específicos, como code smells, ou dependem de métricas de software, negligenciando as ricas representações semânticas e sintáticas do código-fonte. Além disso, geralmente oferecem apenas suporte parcial, como indicar onde refatorar sem especificar a ação a aplicar, ou sugerir um tipo de refatoração sem esclarecer sua justificativa. Esse escopo restrito ignora necessidades reais de refatoração e reduz a confiança dos desenvolvedores, comprometendo a utilidade prática. Este trabalho enfrenta essas limitações ao propor uma abordagem baseada em inteligência artificial para gerar recomendações completas de Extract Method. Fundamentada em refatorações históricas extraídas de projetos e representações semântica do código, a abordagem fornece recomendações que contemplam os critérios W3B, desenvolvidos nesta tese: Which (ação a aplicar), Where (onde aplicar), Why (por que é sugerida) e Benefits (benefícios obtidos). A metodologia seguiu um pipeline em múltiplas fases. Primeiro, foi construído de forma sistemática um conjunto especializado de exemplos de Extract Method a partir de repositórios de código aberto. Em seguida, desenvolveu-se um modelo de recomendação ajustando o CodeBERT para medir a afinidade entre fragmentos candidatos e o método analisado. Na terceira fase, foi projetado um explicador baseado em consenso, combinando SHAP, LIME e ANCHOR com um modelo substituto Random Forest para gerar explicações interpretáveis. Por fim, as saídas das fases foram integradas, concluindo a abordagem proposta e fornecendo recomendações completas e interpretáveis de Extract Method. A avaliação foi conduzida em um experimento controlado com pós-graduandos (7 participantes), que realizaram 24 avaliações ao analisar mais de um método cada. Os resultados mostraram melhora estatisticamente significativa nos escores de confiança (p = 0,011), forte alinhamento entre as sugestões da ferramenta e as escolhas dos participantes (57,7%) e alta concordância (96%) quanto aos benefícios apontados, incluindo legibilidade, modularidade e manutenibilidade.
dc.description.sponsorshipCoordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)
dc.identifier.citationARMIJO, Guisella Clara Angulo. Uma abordagem baseada em inteligência artificial para recomendações completas de método de extração. 2025. Tese (Doutorado em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos, 2025. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/23207.por
dc.identifier.urihttps://hdl.handle.net/20.500.14289/23207
dc.language.isoeng
dc.publisherUniversidade Federal de São Carlos
dc.publisher.addressCampus São Carlos
dc.publisher.initialsUFSCar
dc.publisher.programPrograma de Pós-Graduação em Ciência da Computação - PPGCC
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 Brazilen
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/br/
dc.subjectRecomendação de Refatorações
dc.subjectInteligência Artificial
dc.subjectExplicável IA
dc.subjectRefactoring Recommendationseng
dc.subjectArtificial Intelligenceeng
dc.subjectExplainable AI (XAI)eng
dc.subject.cnpqCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
dc.subject.ods9. Indústria, Inovação e Infraestrutura
dc.titleUma abordagem baseada em inteligência artificial para recomendações completas de método de extração
dc.title.alternativeAn artificial intelligence–based approach for complete extract method recommendationseng
dc.typeTese

Arquivos

Pacote Original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
TeseDoutoradoGuisellaAnguloArmijo.pdf
Tamanho:
4.07 MB
Formato:
Adobe Portable Document Format