Utilize este identificador para referenciar este registo: https://hdl.handle.net/10216/168813
Registo completo
Campo DCValorIdioma
dc.creatorFilipe Rodrigues Fonseca
dc.date.accessioned2026-01-26T04:15:04Z-
dc.date.available2026-01-26T04:15:04Z-
dc.date.issued2025-07-15
dc.date.submitted2025-08-14
dc.identifier.othersigarra:735516
dc.identifier.urihttps://hdl.handle.net/10216/168813-
dc.descriptionCada 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.
dc.description.abstractMore 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.
dc.language.isoeng
dc.rightsopenAccess
dc.subjectEngenharia electrotécnica, electrónica e informática
dc.subjectElectrical engineering, Electronic engineering, Information engineering
dc.titleDependency Management in the Development of Complex Component-based Systems
dc.typeDissertação
dc.contributor.uportoFaculdade de Engenharia
dc.identifier.tid204112990
dc.subject.fosCiências da engenharia e tecnologias::Engenharia electrotécnica, electrónica e informática
dc.subject.fosEngineering and technology::Electrical engineering, Electronic engineering, Information engineering
thesis.degree.disciplineMestrado em Engenharia Informática e Computação
thesis.degree.grantorFaculdade de Engenharia
thesis.degree.grantorUniversidade do Porto
thesis.degree.level1
Aparece nas coleções:FEUP - Dissertação

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
735516.pdfDependency Management in the Development of Complex Component-based Systems1.34 MBAdobe PDFThumbnail
Ver/Abrir


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