Quality Attributes Optimization of Software Architecture: Research Challenges and Directions
Daniele Di Pompeo, Michele Tucci
TL;DR
The paper addresses the challenge of optimizing quality attributes in software architectures, arguing that model-based representations and multi-objective optimization are essential to navigate trade-offs such as performance versus reliability. It presents a quality attribute optimization framework based on search-based software engineering, typically employing genetic algorithms to explore refactoring actions and produce Pareto-front design alternatives while preserving external behavior. The authors identify critical open challenges—automation, Pareto-front quality estimation, problem formalization, computational resources, architectural quality metrics, explainability, and reproducibility—and propose a staged agenda to tackle them, with short-, mid-, and long-term goals. The work aims to advance practical adoption of SBSE methods for non-functional properties in architecture design and evolution, ultimately enabling more informed, resource-aware decision-making in real-world projects.
Abstract
The estimation and improvement of quality attributes in software architectures is a challenging and time-consuming activity. On modern software applications, a model-based representation is crucial to face the complexity of such activity. One main challenge is that the improvement of distinctive quality attributes may require contrasting refactoring actions on the architecture, for instance when looking for trade-off between performance and reliability (or other non-functional quality attributes). In such cases, multi-objective optimization can provide the designer with a more complete view on these trade-offs and, consequently, can lead to identify suitable refactoring actions that take into account independent or even competing objectives. In this paper, we present open challenges and research directions to fill current gaps in the context of multi-objective software architecture optimization.
