Utilize este identificador para referenciar este registo: http://hdl.handle.net/10071/33659
Autoria: Sampaio, Afonso Pinheiro
Orientação: Santos, André Leal
Oliveira, Sancho Moura
Data: 6-Dez-2024
Título próprio: Collaborative code editing with continuous integration
Referência bibliográfica: Sampaio, A. P. (2024). Collaborative code editing with continuous integration [Dissertação de mestrado, Iscte - Instituto Universitário de Lisboa]. Repositório Iscte. http://hdl.handle.net/10071/33659
Palavras-chave: Continuous integration
Collaborative coding
Conflict detection
Transformations
Integração contínua
Programação colaborativa
Deteção de conflitos
Transformações
Resumo: In contemporary software development, collaboration among developers is a fundamental aspect of the management and evolution of codebases. Version control systems such as Git facilitate collaboration by enabling the integration of version branches into a primary development branch. However, the occurrence of parallel modifications frequently gives rise to merge conflicts, which have the potential to disrupt workflows and delay development timelines. Although automated tools can address some conflicts, manual intervention is frequently necessary to resolve instances of overlapping changes. In order to prevent the accumulation of these conflicts, the practice of continuous integration has been proposed as a means of encouraging frequent code integration, with the aim of improving conflict management. This dissertation proposes a protocol for propagation of code changes to facilitate the integration of continuous integration practices directly into collaborative coding environments. This approach enables the early detection of conflicts and streamlines the merge process. The Javardair prototype was developed with the objective of validating this approach for Java, employing a transformation-based methodology. In contrast to conventional version control systems, this approach represents code modifications as structured, semantic-level transformations within an abstract syntax tree instead of a textual level. This facilitates a more precise identification of conflicts, as it is based on code semantics rather than simple line-by-line comparisons and also enables a more effective application of modifications.
No desenvolvimento de software contemporâneo, a colaboração entre programadores é um aspeto fundamental para a gestão e evolução de repositórios de código. Os sistemas de controlo de versões, como o Git, facilitam a colaboração, permitindo a integração de alterações independentes num ramo de desenvolvimento principal. No entanto, a ocorrência de modificações paralelas dá frequentemente origem a conflitos de merge, os quais podem perturbar os fluxos de trabalho e atrasar os prazos de desenvolvimento. Embora ferramentas de automatização possam resolver alguns conflitos, a intervenção manual é frequentemente necessária para resolver casos de alterações sobrepostas. Para evitar a acumulação destes conflitos, foi proposta a prática da integração contínua como forma de incentivar a integração regular do código, com o objetivo de melhorar a gestão dos conflitos. Esta tese propõe um protocolo de propagação de alterações de código que permite a integração de práticas de integração contínua diretamente em ambientes de programação colaborativa. Esta abordagem permite a deteção precoce de conflitos, tendo potencial para simplificar o processo de merging. Foi desenvolvido o protótipo Javardair, com o objetivo de validar esta abordagem para Java, empregando uma metodologia baseada em transformações. Esta abordagem representa as modificações do código como transformações estruturadas a um nível semântico com base numa árvore de sintaxe abstrata, em vez de um nível textual. Isto permite identificar conflitos de forma mais precisa, uma vez que se baseia na semântica do código e não apenas em comparações linha a linha, permitindo também aplicar modificações de forma mais eficiente.
Designação do Departamento: Departamento de Ciências e Tecnologias da Informação
Designação do grau: Mestrado em Engenharia Informática
Arbitragem científica: yes
Acesso: Acesso Aberto
Aparece nas coleções:T&D-DM - Dissertações de mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Master_afonso_pinheiro_sampaio.pdf1,04 MBAdobe PDFVer/Abrir


FacebookTwitterDeliciousLinkedInDiggGoogle BookmarksMySpaceOrkut
Formato BibTex mendeley Endnote Logotipo do DeGóis Logotipo do Orcid 

Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.