Optimal Software Architecture From Initial Requirements: An End-to-End Approach

Ofir T. Erlich,David H. Lorenz
DOI: https://doi.org/10.48550/arXiv.2012.15533
2020-12-31
Software Engineering
Abstract:A software architect turns system requirements into a suitable software architecture through an architecture optimization process. However, how should the architect decide which quality improvement to prioritize, e.g., security or reliability? In software product line, should a small improvement in multiple products be preferred over a large improvement in a single product? Existing architecture optimization methods handle various steps in the process, but none of them systematically guides the architect in generating an optimal architecture from the initial requirements. In this work we present an end-to-end approach for generating an optimal software architecture for a single software product and an optimal family of architectures for a family of products. We report on a case-study of applying our approach to optimize five industry-grade products in a real-life product line architecture, where 359 possible combinations of ten different quality efforts were prioritized.
What problem does this paper attempt to address?