A system’s architectural design plays a vital role in its quality, since quality attributes are system-wide and impacted by the architecture. The evaluation of a software architecture aims to assess its suitability for the purpose of the system, making this practice a core component in the software quality assessment toolkit. Experience shows that evaluating an architecture is not straightforward, and key practical guidance for evaluation progression is a major challenge in real-world cases. This article presents a software architecture evaluation guiding and progression assessment mechanism based on the identification of five essential elements: Architecture Description, Quality Attributes, Business Goals, Architecture Decisions, and Evaluation Adoption. To describe them, this work proposes an extension of the SEMAT Kernel, where each evaluation “essential” is represented as an Alpha with a set of States that depict the (healthy) progression of architecture evaluations. The practicality and usefulness of the approach is assessed with two case studies derived from two previously executed real-world architecture evaluations. The results suggest that when using this conceptualization and description to guide and assess architecture reviews in legacy systems under classic development and maintenance approaches, architects and stakeholders can better understand how to guide and audit the progression of an architecture review; have a ground for reporting results; and regain focus on the evaluation in some scenarios. A key directly derived future research direction is to evaluate the suitability of the proposal in agile-based development contexts. The authors expect that a wider use of this principled definition of the key elements for software architecture evaluations will provide practical and concrete guidance to evaluators, allowing stakeholders to assess specific evaluation efforts, and to eventually improve teaching and learning of the evaluation practice.
Cruz et al. (Fri,) studied this question.