Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36840
Title: An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
Other Titles: Um estudo empírico da relação entre refatorações e mesclagem Conflitos em repositórios JavaScript
???metadata.dc.creator???: OLIVEIRA, José Glauber Braz de.
???metadata.dc.contributor.advisor1???: SABINO, Melina Mongiovi Cunha Lima.
???metadata.dc.contributor.advisor2???: SOUTO, Sabrina de Figueiredo.
???metadata.dc.contributor.referee1???: ALVES, Everton Leandro Galdino.
???metadata.dc.contributor.referee2???: TEIXEIRA, Leopoldo Motta
Keywords: Javascript;Merge Conflicts;Refactorings;Software Engineering;Computer Software Program;Javascript;Mesclar conflitos;Refatoração;Engenharia de Software;Programa de software de computador
Issue Date: 14-Dec-2023
Publisher: Universidade Federal de Campina Grande
Citation: OLIVEIRA, José Glauber Braz de. An empirical study of the relationship between refactorings and merge conflicts in javascript repositories. 2024. 86 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2024.
???metadata.dc.description.resumo???: Atividades de manutenção são cruciais para prolongar o ciclo de vida de um software. Uma atividade importante durante a manutenção de software é a refatoração, que é uma transfor mação que melhora a qualidade de um programa sem alterar seu comportamento. Durante o desenvolvimento de software, Sistemas de Controle de Versão (SCV) são utilizados para inte grar as mudanças feitas pelos desenvolvedores. Esses procedimentos de integração, conheci dos como processos de mesclagem, podem resultar em conitos se forem feitas alterações no mesmo lugar do código. Este trabalho tem por objetivo analisar a possível relação entre refatorações e conitos de mesclagem em código JavaScript. Analisamos 76 repositórios JavaScript, incluindo 81.856 cenários de mesclagem, dos quais 6.356 apresentam coni tos. Nós descobrimos uma correlação positiva moderada entre o número de arquivos de conitos/regiões em conito e relação/número de refatorações. Para a segunda questão de pesquisa descobrimos que os tipos de refatoração Internal move, Move e Rename estão mais relacionados às áreas conitantes, bem como correlação moderada entre o número de coni tos e o número de tipos de refatoração realizadas. Através de análises estatísticas, a relação entre o número de tipos de refatorações e o número de conitos foi o mais forte encontrado em nosso estudo. 8 tipos de refatorações foram identicados ao nível dos arquivos coni tantes e a nível de região de conito. Além da nossa análise automática para as QP1 e QP2, foi realizado um estudo manual para a QP3 que analisou 535 commits, vericando que 447 (84%) destes foram classicados como oss refactoring, possuindo outros tipos de modi- cações envolvidas no processo. 88 commits evolutivos analisados foram classicados como pure refactoring, representando 16% dos commits evolutivos.
Abstract: Maintenance activities are crucial to prolong the lifecycle of a software. An important ac tivity during software maintenance is refactoring, which is a transformation that improves the quality of the internal structure of the code without changing its behavior. During soft ware development, Version Control Systems (VCS) are used to integrate changes made by developers. These integration procedures, known as merge processes, may result in conicts if changes are made in the same place in the code. This work aims to analyze the possible relationship between refactorings and merge conicts in JavaScript code. We analyzed 76 JavaScript repositories, including 81,856 merge scenarios, which 6,356 of them have con- icts. We discovered a moderate positive correlation between the number of conicts les/- conicting regions and relationship/number of refactoring. For the second research question we found that the refactoring types Internal move, Move and Rename are more related to the conicting areas, as well as a moderate correlation between the number of conicts and the number of types of refactoring performed. 8 types of refactorings were identied at the conicting le level and also at the conict region level. Through statistical analysis, the relationship between the number of refactoring types and the number of conicts was the strongest found result in our study. In addition to our automatic analysis, a manual study was conducted that analyzed 535 evolutionary commits, verifying that 447 (84%) of these were classied as oss refactoring because they had other types of modications involved in the process. 88 evolutionary commits analyzed were classied as pure refactoring, representing 16% of evolutionary commits that only have refactoring actions.
Keywords: Javascript
Merge Conflicts
Refactorings
Software Engineering
Computer Software Program
Javascript
Mesclar conflitos
Refatoração
Engenharia de Software
Programa de software de computador
???metadata.dc.subject.cnpq???: Ciência da Computação
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36840
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
JOSÉ GLAUBER BRAZ DE OLIVEIRA - DISSERTAÇÃO (PPGCC) 2023.pdf2.04 MBAdobe PDFView/Open


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