In software design, guaranteeing the correctness of run-time system behavior while achieving an acceptable balance among multiple quality attributes remains a challenging problem. Moreover, providing guarantees about the satisfaction of those requirements when systems are subject to uncertain environments is even more challenging. While recent developments in architectural analysis techniques can assist architects in exploring the satisfaction of quantitative guarantees across the design space, existing approaches are still limited because they do not explicitly link design decisions to satisfaction of quality requirements. Furthermore, the amount of information they yield can be overwhelming to a human designer, making it difficult to see the forest for the trees. In this paper we presentExTrA(ExplainingTradeoffs of softwareArchitecture design spaces), an approach to analyzing architectural design spaces that addresses these limitations and provides a basis for explaining design tradeoffs. Our approach employs dimensionality reduction techniques employed in machine learning pipelines like Principal Component Analysis (PCA) and Decision Tree Learning (DTL) to enable architects to understand how design decisions contribute to the satisfaction of extra-functional properties across the design space. Our results show feasibility of the approach in two case studies and evidence that combining complementary techniques like PCA and DTL is a viable approach to facilitate comprehension of tradeoffs in poorly-understood design spaces.
在软件设计中,在多个质量属性之间实现可接受的平衡的同时保证运行时系统行为的正确性仍然是一个具有挑战性的问题。此外,当系统处于不确定的环境中时,对这些需求的满足提供保证则更具挑战性。虽然架构分析技术的最新发展可以帮助架构师探索设计空间中定量保证的满足情况,但现有方法仍然存在局限性,因为它们没有明确地将设计决策与质量需求的满足联系起来。此外,它们产生的信息量可能会让人类设计师应接不暇,导致难以看清整体情况。在本文中,我们提出了ExTrA(软件架构设计空间的权衡解释),这是一种分析架构设计空间的方法,它解决了这些局限性,并为解释设计权衡提供了基础。我们的方法采用了机器学习流程中使用的降维技术,如主成分分析(PCA)和决策树学习(DTL),使架构师能够理解设计决策如何在设计空间中对非功能属性的满足产生影响。我们的结果在两个案例研究中显示了该方法的可行性,并证明了结合PCA和DTL等互补技术是一种可行的方法,有助于在理解不充分的设计空间中理解权衡。