SAAM(Software Architecture Analysis Method)即软件系统架构分析方法,是一种非功能质量属性的体系结构分析方法。以下是对SAAM非功能质量属性的架构分析方法的详细解释:
一、SAAM概述
SAAM是由卡耐基梅隆大学软件工程研究所(SEI at CMU)的Kazman等人提出的一种体系结构分析方法。它是最早形成文档并得到广泛使用的软件体系结构分析方法之一,主要用于评估软件体系结构的质量属性,如可修改性、性能、可用性、安全性等。
二、SAAM的步骤
- 形成场景:风险承担者们集中在一起,集体讨论,提出一个个系统需求场景。记录人员把这些场景记录在册,形成文档。这些场景描述了系统的使用情况,包括用户如何与系统进行交互,以及系统如何响应这些交互。
- 描述体系结构:体系结构设计师对待评估的体系结构进行适当的描述,包括静态属性和动态特征。描述可以使用自然语言或形式化手段,以便让参加评估的所有人员都能充分理解。
- 对场景进行分类和确定优先级:将场景分为直接场景和间接场景。直接场景是体系结构可以直接支持的场景,而间接场景则需要对现有体系结构做些更改才能支持。通过投票等方法确定间接场景的重要性优先级,以便将有限的时间花在最重要的事情上。
- 对间接场景进行单个评估:将选出来的重要间接场景与体系结构描述对应起来,体系结构设计师具体说明体系结构需要做哪些修改变更才能适用间接场景的要求,并估计这些变更的代价。
- 评估场景的相互作用:当两个或多个间接场景需要修改到同一个构件时,这些场景就在这个构件上出现了相互作用,需要特别评估。这通常意味着设计方案中功能分配不合理或设计文档未能充分说明体系结构。
- 形成总体评价:评估人员对场景和场景间的相互作用做一个总体的权衡和评价。通过各个场景权重与分值得出一个总体的评价,从多个体系结构或一个体系结构的不同设计方案中选择出一个最优的方案。
三、SAAM的应用
SAAM不仅被用于评估软件体系结构的质量属性,还被用于比较不同的体系结构,以及在系统开发过程中进行决策支持。它可以帮助开发团队更好地理解系统的需求,确保体系结构能够满足这些需求,并在多个质量属性之间做出权衡。
四、SAAM的优缺点
- 优点:
- 提供了对软件体系结构质量属性的全面评估。
- 可以通过集体讨论形成场景,确保所有相关人员的意见都得到考虑。
- 可以帮助开发团队在多个质量属性之间做出权衡。
- 缺点:
- 需要投入大量的时间和资源来形成场景和评估体系结构。
- 评估结果可能受到评估人员主观性的影响。
综上所述,SAAM是一种有效的软件体系结构分析方法,可以帮助开发团队评估和改进软件体系结构的质量属性。然而,在应用SAAM时,需要注意其局限性和潜在的缺点,并采取相应的措施来确保评估结果的准确性和可靠性。