Use este identificador para citar ou linkar para este item:
https://repositorio.ufpe.br/handle/123456789/66002
Compartilhe esta página
Título: | Ferramentas de integração de código: uma comparação entre merge estruturado e textual com separadores customizados |
Autor(es): | SILVA, Leonardo dos Anjos |
Palavras-chave: | Integração de código; Conflitos de integração; Engenharia de software; Desenvolvimento de sistemas; Comparação de ferramentas |
Data do documento: | 11-Ago-2025 |
Citação: | 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 |
Aparece nas coleções: | (TCC) - Ciência da Computação |
Arquivos associados a este item:
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
TCC Leonardo dos Anjos Silva.pdf | 1,69 MB | Adobe PDF | Visualizar/Abrir |
Este arquivo é protegido por direitos autorais |
Este item está licenciada sob uma Licença Creative Commons