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 conitos 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 conitos de mesclagem em código JavaScript. Analisamos 76 repositórios JavaScript, incluindo 81.856 cenários de mesclagem, dos quais 6.356 apresentam coni tos. Nós descobrimos uma correlação positiva moderada entre o número de arquivos de conitos/regiões em conito 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 conitantes, bem como correlação moderada entre o número de coni 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 conitos foi o mais forte encontrado em nosso estudo. 8 tipos de refatorações foram identicados ao nível dos arquivos coni tantes e a nível de região de conito. 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, vericando que 447 (84%) destes foram classicados como oss refactoring, possuindo outros tipos de modi- cações envolvidas no processo. 88 commits evolutivos analisados foram classicados 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 conicts if changes are made in the same place in the code. This work aims to analyze the possible relationship between refactorings and merge conicts 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 conicts les/- conicting 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 conicting areas, as well as a moderate correlation between the number of conicts and the number of types of refactoring performed. 8 types of refactorings were identied at the conicting le level and also at the conict region level. Through statistical analysis, the relationship between the number of refactoring types and the number of conicts 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 classied as oss refactoring because they had other types of modications involved in the process. 88 evolutionary commits analyzed were classied 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 | Size | Format | |
---|---|---|---|---|
JOSÉ GLAUBER BRAZ DE OLIVEIRA - DISSERTAÇÃO (PPGCC) 2023.pdf | 2.04 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.