Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.ufu.br/handle/123456789/46896
Registro completo de metadatos
Campo DCValorLengua/Idioma
dc.creatorDantas, Carlos Eduardo de Carvalho-
dc.date.accessioned2025-09-22T12:53:42Z-
dc.date.available2025-09-22T12:53:42Z-
dc.date.issued2025-08-29-
dc.identifier.citationDANTAS, Carlos Eduardo de Carvalho. Code readability assessment and improvement: human and automated perspectives. 2025. 213 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia,Uberlândia, 2025. DOI http://doi.org/10.14393/ufu.te.2025.555.pt_BR
dc.identifier.urihttps://repositorio.ufu.br/handle/123456789/46896-
dc.description.abstractReadability is a crucial characteristic in software development because developers often spend a significant amount of time reading and understanding code. However, there are still challenges both in accurately assessing code readability and in automatically applying refactoring operations to improve it. As large language models (LLMs) revolutionize the way code is written, a new opportunity emerges: to evaluate not only the readability of the code generated by these models but also their ability to refactor existing code into more readable versions. This study evaluates the readability of the code generated from three LLMs (ChatGPT, DeepSeek, and Gemini), comparing the code snippets they generate with those written by humans on Stack Overflow. Based on this evaluation, a hybrid approach is presented that combines automatic static analysis tools (ASATs) with LLM-based refactorings to improve code readability. In addition, a taxonomy of readability improvements is extracted from real-world GitHub repositories written in Java and Python. The results indicate that LLMs generate code with significantly fewer readability warnings compared to Stack Overflow recommendations. Combining LLMs and ASATs offers valuable potential for readability-oriented refactorings, especially when improving code through a single interaction with the LLMs. Code-generation-focused models, such as the DeepSeek Coder, achieved the best performance in refining source code. In real-world code, developers tend to improve readability by clarifying the intent of the code and reducing redundancy and verbosity. While Python and Java developers share concerns such as improving naming, some differences are observed: Java developers focus more on removing redundant and unnecessary code, whereas Python developers prioritize code documentation and correct formatting using standards such as the PEP 8 guidelines.pt_BR
dc.languageengpt_BR
dc.publisherUniversidade Federal de Uberlândiapt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectcode readabilitypt_BR
dc.subjectlarge language modelspt_BR
dc.subjectpull requestpt_BR
dc.subjectcode reviewpt_BR
dc.subjectautomatic static analysis toolspt_BR
dc.subjectlegibilidade de códigopt_BR
dc.subjectmodelos de linguagem de grande escalapt_BR
dc.subjectrevisão de códigopt_BR
dc.subjectferramentas automáticas de análise estáticapt_BR
dc.titleCode readability assessment and improvement: human and automated perspectivespt_BR
dc.title.alternativeAprimoramento da legibilidade de código: um estudo sobre perspectivas humana e automatizadapt_BR
dc.typeTesept_BR
dc.contributor.advisor1Maia, Marcelo de Almeida-
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/4915659948263445pt_BR
dc.contributor.referee1Lima Filho, Fernando José Castor de-
dc.contributor.referee1Latteshttp://lattes.cnpq.br/7310046838140771pt_BR
dc.contributor.referee2Hora, Andre Cavalcante-
dc.contributor.referee2Latteshttp://lattes.cnpq.br/4957418183504876pt_BR
dc.contributor.referee3Júlia, Stéphane-
dc.contributor.referee3Latteshttp://lattes.cnpq.br/6736358221140969pt_BR
dc.contributor.referee4Araújo, Rafael Dias-
dc.contributor.referee4Latteshttp://lattes.cnpq.br/3067137114142725pt_BR
dc.creator.Latteshttp://lattes.cnpq.br/9157131878203641pt_BR
dc.description.degreenameTese (Doutorado)pt_BR
dc.description.resumoA legibilidade é uma característica crucial no desenvolvimento de software, pois os desenvolvedores frequentemente dedicam uma parte significativa do tempo lendo e compreendendo o código. No entanto, ainda existem desafios tanto na definição de métricas precisas para sua avaliação quanto na automação de refatorações que visam aprimorá-la. Com a ascensão dos modelos de linguagem de grande escala (LLMs), surge uma nova oportunidade: avaliar não apenas a legibilidade do código gerado por esses modelos, mas também sua capacidade de refatorar código existente, buscando torná-lo mais legível. Nesse contexto, o presente estudo avalia o desempenho de legibilidade de três LLMs (ChatGPT, DeepSeek e Gemini), comparando os trechos de código por eles gerados com aqueles escritos por humanos no Stack Overflow. Com isso, é apresentada uma abordagem híbrida que combina ferramentas automáticas de análise estática (ASATs) com refatorações baseadas em LLMs para melhorar a legibilidade do código. Além disso, é extraída uma taxonomia das melhorias de legibilidade realizadas por desenvolvedores em repositórios reais do GitHub, escritos nas linguagens Java e Python. Os resultados indicam que os LLMs, em geral, geram código com significativamente menos alertas de legibilidade em comparação com as recomendações do Stack Overflow. A combinação de LLMs e ASATs oferece um potencial valioso para refatorações orientadas à legibilidade, especialmente ao melhorar o código por meio de uma única interação com os LLMs. Modelos focados em geração de código, como o DeepSeek Coder, alcançaram o melhor desempenho no refinamento do código-fonte. Em código de projetos reais, os desenvolvedores tendem a melhorar a legibilidade ao esclarecer a intenção do código e reduzir redundâncias e trechos verbosos. Embora desenvolvedores de Python e Java compartilhem preocupações como a melhoria da nomenclatura, algumas diferenças são observadas: desenvolvedores Java focam mais na remoção de código redundante e desnecessário, enquanto desenvolvedores Python priorizam a documentação de código e a formatação correta usando padrões como as diretrizes PEP 8.pt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.programPrograma de Pós-graduação em Ciência da Computaçãopt_BR
dc.sizeorduration213pt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWAREpt_BR
dc.identifier.doihttp://doi.org/10.14393/ufu.te.2025.555pt_BR
dc.orcid.putcode192491716-
dc.crossref.doibatchiddd8527cb-020d-408a-a75d-626c0c736f4b-
dc.subject.autorizadoComputaçãopt_BR
dc.subject.autorizadoEngenharia de softwarept_BR
dc.subject.autorizadoSoftware - Confiabilidadept_BR
dc.subject.autorizadoSoftware - Desenvolvimentopt_BR
dc.subject.odsODS::ODS 9. Indústria, Inovação e infraestrutura - Construir infraestrutura resiliente, promover a industrialização inclusiva e sustentável, e fomentar a inovação.pt_BR
Aparece en las colecciones:TESE - Ciência da Computação

Ficheros en este ítem:
Fichero Descripción TamañoFormato 
CodeReadabilityAssessment.pdfconvertido para pdf/a26.09 MBAdobe PDFVista previa
Visualizar/Abrir


Los ítems de DSpace están protegidos por copyright, con todos los derechos reservados, a menos que se indique lo contrario.