An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
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, Sistem...
| Autor: | |
|---|---|
| Tipo de recurso: | tesis de maestría |
| Estado: | Versión publicada |
| Fecha de publicación: | 2023 |
| País: | Brasil |
| Institución: | Universidade Federal de Campina Grande (UFCG) |
| Repositorio: | Biblioteca Digital de Teses e Dissertações da UFCG |
| Idioma: | portugués |
| OAI Identifier: | oai:localhost:riufcg/36840 |
| Acceso en línea: | http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36840 |
| Access Level: | acceso abierto |
| Palabra clave: | Javascript Merge Conflicts Refactorings Software Engineering Computer Software Program Mesclar conflitos Refatoração Engenharia de Software Programa de software de computador Ciência da Computação |
| Sumario: | 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. |
|---|