1. Evaluating and Detecting Architecture Erosion
- Author
-
Pigazzini, I, ARCELLI FONTANA, FRANCESCA, LEPORATI, ALBERTO OTTAVIO, PIGAZZINI, ILARIA, Pigazzini, I, ARCELLI FONTANA, FRANCESCA, LEPORATI, ALBERTO OTTAVIO, and PIGAZZINI, ILARIA
- Abstract
Un'architettura software è erosa (o degradata) se mostra una progressiva perdita di integrità strutturale a causa di violazioni dei principi di progettazione. I sistemi erosi soffrono di Architectural Technical Debt (ATD), lo sforzo aggiuntivo richiesto agli sviluppatori per gestire i difetti causati dall'erosione. Un sintomo dell'accumulo di ATD è la presenza di Architectural Smells (AS), decisioni di software design che hanno un impatto negativo sulla qualità interna del sistema software. I sistemi affetti da AS soffrono di maggiori costi di manutenzione e sono più difficili da evolvere. Questa tesi indaga sei diversi tipi di AS che violano diversi principi di design in progetti Java monolitici Open-Source e industriali. Identifichiamo gli AS con il nostro strumento, Arcan, e introduciamo la sua nuova estensione per la rappresentazione dei software concerns. Discutiamo poi gli AS dal punto di vista dei professionisti, cercando di riassumere come gli AS sono percepiti e validando i risultati di Arcan. Riportiamo anche i risultati dei nostri studi empirici riguardanti l'evoluzione e la correlazione di AS e ATD. Infine, presentiamo i nostri primi risultati riguardanti la migrazione e la manutenzione di architetture a microservizi, con particolare attenzione al rilevamento degli odori dei microservizi., A software architecture is eroded (or degraded) if it shows a progressive loss of structural integrity due to design principle violations which leads to the deviation of the implemented architecture from the intended architecture. Eroded systems suffer from Architectural Technical Debt (ATD), the additional effort required by developers to manage the shortcomings caused by the erosion. A symptom of the accumulation of ATD is the presence of Architectural Smells (AS), design decisions that impact negatively on the internal system quality. Systems affected by AS suffer from higher maintenance costs and are harder to evolve. This thesis investigates six different types of AS violating different design principles in Open-Source and industrial monolithic Java projects. We identify AS with our tool, Arcan, and introduce its new extension for the representation of software concerns. We then discuss AS from the point of view of practitioners, trying to summarise how AS are perceived and validating Arcan results. We also report the results of our empirical studies concerning AS and ATD evolution and correlation. Finally, we present our first results concerning the migration and maintenance of microservices architectures, with a focus on the detection of microservices smells.
- Published
- 2022