Please use this identifier to cite or link to this item:
https://hdl.handle.net/10216/168813| Author(s): | Filipe Rodrigues Fonseca |
| Title: | Dependency Management in the Development of Complex Component-based Systems |
| Issue Date: | 2025-07-15 |
| Abstract: | More and more, modern software systems are modular and distributed, built by different teams that work independently and run in complicated environments. In this situation, keeping track of dependencies between components is very important, especially when it comes to keeping things stable, lowering technical debt, and allowing for quick changes. This dissertation looks into how graph databases, especially Neo4j, can help with managing dependencies in a real-world setting on a large scale, like the Vodafone TV (VTV) platform made by Celfocus. The study's main goal is to use a graph-based model to keep track of software dependencies between three separate teams working on the VTV project. After looking at the problems with current methods, a solution was suggested that used a centralized Neo4j instance for high-level inter-team dependencies and team-specific instances for more detailed internal modeling. A version control system based on Git was created to keep graph data safe and make it easier to make updates all the time, in line with agile workflows. We used a mix of questionnaires and informal interviews to test the system, focusing on the team that was the first to use Neo4j. The results showed that the tool made things easier to see, encouraged proactive communication, and helped with impact analysis during development and deployment. But it was still hard to make sure that new users were trained and that modeling was done at the right level of detail. This dissertation comes to the conclusion that using graph-based dependency management in the daily lives of agile teams can greatly improve the stability of software and the ability of teams to work together. It also shows how important it is for organizations to work together and keep records to keep long-term adoption going. |
| Description: | Cada vez mais, os sistemas de software modernos são modulares e distribuídos, desenvolvidos por equipas distintas que trabalham de forma independente e operam em ambientes complexos. Neste contexto, manter o controlo das dependências entre componentes torna-se fundamental, especialmente no que diz respeito à estabilidade do sistema, à redução da dívida técnica e à capacidade de adaptação rápida a mudanças. Esta dissertação investiga de que forma as bases de dados em grafo, em particular o Neo4j, podem contribuir para a gestão de dependências num cenário real de larga escala, como é o caso da plataforma Vodafone TV (VTV), desenvolvida pela Celfocus. O principal objetivo do estudo foi aplicar um modelo baseado em grafos para mapear as dependências de software entre três equipas distintas envolvidas no projeto VTV. Após a análise das limitações dos métodos anteriormente utilizados, foi proposta uma solução que combinava uma instância centralizada de Neo4j, para representar as dependências de alto nível entre equipas, com instâncias específicas por equipa para modelações mais detalhadas a nível interno. Foi também desenvolvido um sistema de controlo de versões baseado em Git, com o objetivo de garantir a integridade dos dados do grafo e facilitar a atualização contínua, alinhada com metodologias ágeis. Para validar o sistema, foi adotada uma abordagem mista, com recurso a questionários e entrevistas informais, centrando-se especialmente na equipa que adotou o Neo4j numa fase inicial. Os resultados demonstraram que a ferramenta melhorou a visibilidade das dependências, incentivou uma comunicação mais proativa e auxiliou na análise de impacto durante o desenvolvimento e o processo de deployment. No entanto, continuaram a existir desafios relacionados com a formação de novos utilizadores e com a definição do nível de detalhe adequado na modelação. Conclui-se, assim, que a gestão de dependências baseada em grafos, quando integrada nas rotinas diárias de equipas ágeis, pode melhorar significativamente a estabilidade do software e a colaboração entre equipas. A dissertação realça ainda a importância da articulação organizacional e da manutenção de documentação adequada para garantir a sustentabilidade da adoção da ferramenta a longo prazo. |
| Subject: | Engenharia electrotécnica, electrónica e informática Electrical engineering, Electronic engineering, Information engineering |
| Scientific areas: | Ciências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática Engineering and technology::Electrical engineering, Electronic engineering, Information engineering |
| TID identifier: | 204112990 |
| URI: | https://hdl.handle.net/10216/168813 |
| Document Type: | Dissertação |
| Rights: | openAccess |
| Appears in Collections: | FEUP - Dissertação |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 735516.pdf | Dependency Management in the Development of Complex Component-based Systems | 1.34 MB | Adobe PDF | ![]() View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
