Designing quality software architectures is fundamental for large and complex systems that continuously evolve over time. In this context, and following best practices of continuous engineering, such architectures should be designed incrementally instead of once and for all. To this end, Model-Based Engineering (MBE) can play a critical role in maintaining high-quality standards. A key factor is its ability to support traceability from requirements to developed software artifacts, by considering notably the desired quality attributes. As a solution, we propose in this paper a generic and iterative methodology based on both MBE and DevOps to support the design of quality software architectures. We adopted a DevOps-like process for iteratively designing requirements and architectural components to allow their rapid delivery, maintainability, scalability, and extensibility. Throughout the process, we advocate for the incremental integration and validation of architecture improvements via the implementation of technical solutions (i.e., architecture instances) and their application within industrial use cases. We evaluated our generic methodology in practice when designing a real architecture in the context of the large collaborative European research project named AIDOaRt. Thanks to this, we report on how the proposed methodology brought interesting benefits regarding the quality of the finally produced software architecture. To evaluate quality, we present a core set of quality attributes that we analyze based on data collected during the execution of the project, as well as through surveys and interviews with project stakeholders.
Eramo et al. (Wed,) studied this question.