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 | Tamanho | Formato | |
---|---|---|---|---|
Master_afonso_pinheiro_sampaio.pdf | 1,04 MB | Adobe PDF | Ver/Abrir |
Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.