Please use this identifier to cite or link to this item:
https://repositorio.ufpe.br/handle/123456789/66002
Share on
Title: | Ferramentas de integração de código: uma comparação entre merge estruturado e textual com separadores customizados |
Authors: | SILVA, Leonardo dos Anjos |
Keywords: | Integração de código; Conflitos de integração; Engenharia de software; Desenvolvimento de sistemas; Comparação de ferramentas |
Issue Date: | 11-Aug-2025 |
Citation: | SILVA, Leonardo dos Anjos. Ferramentas de integração de código: uma comparação entre merge estruturado e textual com separadores customizados. 2025. Trabalho de Conclusão de Curso (Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2025. |
Abstract: | É comum no desenvolvimento de software ter desenvolvedores trabalhando em um mesmo projeto em paralelo. Suas mudanças são posteriormente combinadas em uma versão final do código com o auxílio de uma ferramenta de merge. Quando os colaboradores modificam um mesmo arquivo, ferramentas de integração podem reportar conflitos. Estes devem ser resolvidos manualmente pelo desenvolvedor que iniciou o processo de merge, o que consome tempo e pode levar à introdução de erros à aplicação. Pensando em tornar o processo de integração mais eficiente, diferentes abordagens para ferramentas de merge foram propostas, entre elas: merge estruturado, em que os códigos são interpretados e é feito um pareamento dos nós das árvores sintáticas das versões integradas; e merge textual com separadores customizados, em que o código é particionado por separadores sintáticos da linguagem (como "{", "}" e ";" em Java) e servido como entrada para um merge textual tradicional. Outros trabalhos estudaram como essas ferramentas se comparam com a solução padrão amplamente adotada - merge textual por linhas -, mas focaram apenas em uma linguagem de programação, como Java ou Python. Também não foi estudado como as abordagens estruturada e textual com separadores customizados se comparam entre si. Este trabalho visa preencher essas lacunas, estudando o comportamento destas soluções em cenários reais de projetos populares desenvolvidos em três linguagens de programação distintas: Go, JavaScript e Rust. Através da análise de métricas de acurácia, busca-se compreender as vantagens e limitações de cada método, contribuindo para discussões sobre a adoção de soluções mais eficazes. Os resultados mostram que o uso de uma abordagem estruturada diminui o número de cenários de integração com conflitos, mas com a desvantagem de deixar mais conflitos passarem despercebidos (falsos negativos), enquanto a ferramenta textual com separadores customizados pode funcionar como uma solução intermediária entre as abordagens puramente textual e estruturada. |
URI: | https://repositorio.ufpe.br/handle/123456789/66002 |
Appears in Collections: | (TCC) - Ciência da Computação |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
TCC Leonardo dos Anjos Silva.pdf | 1,69 MB | Adobe PDF | View/Open |
This item is protected by original copyright |
This item is licensed under a Creative Commons License