Please use this identifier to cite or link to this item: http://repositorio.ufc.br/handle/riufc/76456
Type: Dissertação
Title: How they relate and leave: understanding atoms of confusion in open-source java projects
Authors: Pinheiro Neto, Francisco Oton
Advisor: Carvalho, Windson Viana de
Co-advisor: Rocha, Lincoln Souza
Keywords in Brazilian Portuguese : Compreensão de programa;Átomos de confusão;Estudo empírico;Mineração de dados
Keywords in English : Program comprehension;Atoms of confusion;Empirical study;Data mining
Knowledge Areas - CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Issue Date: 2024
Citation: PINHEIRO NETO, Francisco Oton. How they relate and leave: understanding atoms of confusion in open-source java projects. 2024. 75 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Ceará, Fortaleza, 2024.
Abstract in Brazilian Portuguese: A compreensão de programa é essencial para aprimorar o entendimento e evitar erros no ciclo de vida do desenvolvimento de software. A confusão de código ocorre quando um desenvolvedor e o computador chegam a interpretações diferentes sobre o comportamento de um mesmo trecho de código. Tais trechos de código podem ser representados como pequenos e isolados padrões de código chamados Átomos de Confusão (ACs). Neste estudo, investigamos empiricamente os efeitos dos ACs no ciclo de vida de desenvolvimento de 21 projetos Java de código aberto. Construímos um dataset que relaciona mais de 8.000 commits, 4.000 issues e 7.000 ACs dos projetos em questão. Nossos resultados demonstraram uma correlação positiva entre o número de ACs e o número de bugs e melhorias relatados. Também investigamos mudanças em commits, buscando uma compreensão mais aprofundada do contexto no qual ACs são removidos. Como cada commit está vinculado a pelo menos uma issue relatada (por exemplo, bug e melhoria), conseguimos comparar a taxa de remoção de ACs em relação a cada tipo de commit e utilizá-la como um indicador para determinar se os ACs são provavelmente a causa por trás de uma issue reportada. Encontramos uma taxa mais elevada de remoção de ACs em commits de correção de bugs e melhorias do que em outros tipos de commits (tarefa, sub-tarefa, nova funcionalidade, desejo e teste) em 14 dos 19 projetos estudados, que tiveram ACs removidos em commits. Finalmente, para apoiar nossos resultados quantitativos, conduzimos uma análise qualitativa para melhor entender com que frequência átomos de confusão contribuíram para a ocorrência de bugs ou melhorias. Analisamos ACs removidos nesses tipos de commits com até dez linhas removidas, analisando o código-fonte, mensagens de cada commit envolvido, além do título, descrição e comentários das issues relacionadas no Jira. Em um universo de 8.641 commits de 21 projetos analisados, 391 removeram ACs. Dentre eles, 53 atenderam à condição para nossa análise qualitativa. Em 7 desses commits, 9 ACs removidos provavelmente contribuíram diretamente para a ocorrência de um bug ou melhoria. Até onde sabemos, nossa pesquisa é a primeira a investigar a conexão entre Átomos de Confusão e a ocorrência de bugs ou gatilhos para melhorias em projetos Java.
Abstract: Software comprehension is essential to improve understanding and avoid mistakes in the software development lifecycle. Code confusion occurs when a developer and the computer reach different interpretations about the behavior of the same piece of code. Such pieces of code can be represented as small and isolated code patterns called Atoms of Confusion (ACs). In this study, we empirically investigated the effects of ACs in the software development lifecycle of 21 open-source Java projects. We built a dataset linking more than 8,000 commits, 4,000 reported issues, and 7,000 ACs from the subject projects. Our findings showed a positive correlation between the number of ACs and the number of reported bugs and improvements. We also investigated changes in commits, looking forward to gathering a better understanding of in what context ACs are removed. As each commit is linked to at least one reported issue (e.g., bug and improvement), we were able to compare the ratio of ACs removal regarding each kind of commit and use it as a proxy to indicate whether ACs are likely to be the cause behind a reported issue. We found a higher ratio of removed ACs in bug-fix and improvement commits than in the other kinds of commits (task, sub-task, new feature, wish, and test) for 14 of the 19 studied projects, which had ACs removed in commits. Finally, to support our quantitative results, we conducted a qualitative analysis to better understand how often atoms of confusion contributed to the occurrence of a bug or improvement. We inspected ACs removed in these types of commits with up to ten lines removed, analyzing the source code, messages of each involved commit, and the title, description, and comments of related Jira issues. Out of a universe of 8,641 commits from 21 analyzed projects, 391 removed ACs. Among them, 53 met the condition for our qualitative analysis. In 7 of these commits, 9 removed ACs were likely to contribute directly to the occurrence of a bug or improvement. To the best of our knowledge, our research is the first to investigate the connection between Atoms of Confusion and the source of bugs or the cause of improvements in Java projects.
URI: http://repositorio.ufc.br/handle/riufc/76456
Author's Lattes: http://lattes.cnpq.br/7194447413437813
Advisor's Lattes: http://lattes.cnpq.br/1744732999336375
Co-advisor's Lattes: http://lattes.cnpq.br/0656977742590515
Access Rights: Acesso Aberto
Appears in Collections:DCOMP - Dissertações defendidas na UFC

Files in This Item:
File Description SizeFormat 
2024_dis_fopinheironeto.pdf1,47 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.