Methods for Understanding Tradeoffs in Software Architecture Design Spaces
Examensarbete för masterexamen
Software engineering and technology (MPSOF), MSc
Designing software architectures that utilize cloud services in vehicular systems includes navigating a large design space of design decisions. Each decision has the potential to enhance certain qualities of the system but also entails a tradeoff by worsening other qualities simultaneously in most cases. Previous research into architectural tradeoff analysis of these design spaces has successfully introduced approaches to describing architectures and visualizing tradeoffs. This thesis uses a real-world use case in the vehicle industry to simulate software architectures developed by architects at Volvo Cars. This is performed to collect data to be then able to perform an architectural tradeoff analysis. Furthermore, this thesis gives insight into the current practices and challenges with understanding architectural tradeoffs for software architects in the industry. This thesis uses a design science approach over three iterations, where an interview study and evaluation workshop between iterations give crucial feedback on the development. The analysis and visualizations included Principal Component Analysis (PCA), Decision Tree Learning (DTL), PCA loading score plots, and radar plots. The findings show that the analysis and visualizations can be useful for architects to make well-founded design decisions and better understand the tradeoffs in software architecture.
software architecture , architectural analysis , architectural analysis , design spaces , design decisions , decision making , tradeoff analysis , architectural tradeoff