Dissertação

{en_GB=Guiding the Evolution of the Software Architecture of Two Large Scale Production Systems} {} EVALUATED

{pt=Em sistemas de software de grande escala, manter a qualidade da arquitetura de software pode ser uma tarefa difícil, pois a pressão para cumprir prazos faz com que a entrega de novas funcionalidades tenha prioridade sobre a organização deste tipo de design de alto nível. Nesta tese, relatamos a nossa experiencia na OutSystems, líder de mercado em plataformas de "low-code", ao tentar lidar com esta tensão de uma forma mais sistemática. Mais concretamente, desenvolvemos uma ferramenta - AGRO - para encontrar uma refatoração de componentes num projeto de software que seja útil no contexto de aliviar esta tensão. O design inicial da AGRO é baseado num conjunto de métricas existentes na literatura, que avaliam a qualidade da arquitetura de um software. A nossa experiência na aplicação destas métricas para guiar a refatoração das arquitetura de dois projetos de software levou-nos a concluir que estas não são particularmente eficazes no nosso contexto. Assim, nesta tese, propomos duas novas métricas e relatamos os resultados obtidos ao aplicá-las na OutSystems. Esta nossa experiência mostrou alguns resultados preliminares e promissores, ao ponto de a ferramenta AGRO estar a ser adaptada para ser utilizada em sistemas de produção., en=In large-scale production systems, maintaining the quality of the software architecture can be daunting, as the pressure to meet deadlines causes the delivery of new functionality to take priority over thinking through this high-level design. In this thesis, we report our efforts at OutSystems, a market leader in low-code platforms, to address this tension in a systematic way. In particular, we developed AGRO, a tool for finding a useful refactoring of components in a software project. The initial design of AGRO is based on a set of existing metrics from the literature, which assess the quality of a software architecture. Our experience in applying these metrics to guide the software architecture of two real-world large-scale software projects led us to conclude that these are not particularly effective in our context. As such, in this thesis, we propose two new metrics and report the results and experience of applying them at OutSystems. Our experience showed some preliminary and promising results, to the point where AGRO is now being adapted to become used in production systems.}
{pt=Arquitetura de Software, Métricas de Software, OutSystems, en=Software Architecture, Software Metrics, OutSystems}

novembro 12, 2020, 10:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Rodrigo Seromenho Miragaia Rodrigues

Departamento de Engenharia Informática (DEI)

Professor Catedratico

ORIENTADOR

Rui Filipe Lima Maranhão de Abreu

Faculdade de Engenharia da Universidade do Porto

Professor Catedratico