Defesa de Proposta de Dissertação: Francisco Oton Pinheiro Neto

Título: How They Relate and Leave: Understanding Atoms of Confusion in Open-Source Java Projects

Data: 25/08/23

Horário: 14h00

Local: Sala 01 - Bloco 952

 

Resumo:

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-fixing and improvement), we were able to compare the ratio of ACs removal regarding each kind of issue 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 and improvement commits than in the other kind of commits (task, sub- task, new feature, wish, and test) for 16 of the 19 studied projects, which had ACs removed in commits. Finally, to support our quantitative results, we conducted a qualitative analysis to understand better 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. This analysis showed that 9 out of 77 analyzed ACs were the direct cause of the occurrence of a bug or improvement.

Banca examinadora:

  • Prof. Dr. Windson Viana de Carvalho (MDCC/UFC - Orientador)
  • Prof. Dr. Lincoln Souza Rocha (MDCC/UFC - Coorientador)
  • Prof. Dr. João Bosco Ferreira Filho (UFC)
  • Prof. Dr. Matheus Henrique Esteves Paixão (UECE)