基于场景的架构分析方法(Scenarios-based Architecture Analysis Method,SAAM)是美国卡耐基·梅隆大学软件工程研究所的Kazman等人于1983年提出的一种非功能质量属性的架构分析方法,是最早形成文档并得到广泛应用的软件架构分析方法。SAAM的主要输入是问题描述、(1)和架构描述文档,其分析过程主要包括场景开发、(2)、单个场景评估、场景交互和总体评估。
(1)处是()
A.问题说明
B.问题建模
C.需求说明
D.需求建模
参考答案:C
解析:
SAAM方法是最早形成文档并得到广泛使用的软件架构分析方法,最初是用来分析架构的可修改性的,但实践证明,SAAM方法也可用于对许多其他质量属性及系统功能进行快速评估。SAAM方法的目的是验证基本的架构假设和原则,评估架构固有的风险。SAAM指导对架构的检查,使其主要关注潜在的问题点,例如,需求冲突等。SAAM不仅能够评估架构对于特定系统需求的使用能力,也能用来比较不同的架构。
①评估活动
与ATAM方法相比,SAAM比较简单,这种方法易学易用,进行培训和准备的工作量都比较少。SAAM评估可以分六个步骤进行,如图所示。
在这些步骤进行之前,通常有必要对系统做简要的介绍,包括对架构的业务目标的说明等。
·形成场景。在形成场景的的过程中,要注意全面捕捉系统的主要用途、系统用户类型、系统将来可能的变更、系统在当前及可预见的未来必须满足的质量属性等信息。只有这样,形成的场景才能代表与各种项目干系人相关的任务。形成场景是通过集中讨论来实现的,使项目干系人在一个友好的氛围中提出一些场景,这些场景反映了他们的需求,也体现了他们对架构将如何实现需求的认识。
·描述架构。在这一步骤,架构设计师应该采用参加评估的所有人员都能够充分理解的形式,对待评估的架构进行适当的捕述。这种描述必须要说明系统中的运算和数据构件,以及它们之间的联系。除了要描述这些静态特性外,还要对系统在某段时间内的动态特征做出说明。描述既可采用自然语言,也可采用形式化的手段。
·对场景的分类和优先级确定。场景可分为直接场景和间接场景(潜在场景)。直接场景是按照现有架构开发出来的系统能够直接实现的场景。与在设计时已经考虑过的需求相对应的直接场景能增进对架构的理解,促进对诸如性能和可靠性等其他质量属性的研究;间接场景就是需要对现有架构做某些修改才能支持的场景。间接场景对衡量架构对系统在演化过程中将出现的变更的适用情况十分关键。通过各种间接场景对架构的影响,可以确定架构在相关系统的生命周期内对不断演化的使用的适应情况。直接场景类似于用例,而间接场景有时也叫变更案例。评估人员通过对场景设置优先级,可以保证在评估的有限时间内考虑最重要的场景。这里的“重要”完全是由项目干系人及其所关心的问题确定的。项目干系人可以通过投票表达所关心的问题。
·对场景进行单个评估。一旦确定了要考虑的一组场景,就要把这些场景与架构的描述对应起来。对于直接场景而言,架构设计师需要讲清所评估的架构将如何执行这些场景;对于间接场景而言,设计师应说明需要对架构做哪些修改才能适应间接场景的要求。
·评估场景的相互作用。场景的相互作用暴露了设计方案中的功能分配。场景相互作用的多少与结构复杂性、耦合度、内聚性有关。同时,场景的相互作用能够暴露出架构设计文档未能充分说明的结构分解。
·形成总体评价。最后,评估人员要对场景和场景之间的交互做一个总体的权衡和评价,这一权衡反映组织对表现在不同场景中的目标的考虑优先级。根据对系统成功的相对重要性来为每个场景设置一个权值,权值的确定通常要与每个场景所支持的业务目标联系起来。
如果是要比较多个架构,或者针对同一架构提出了多个不同的方案,则可通过权值的确定来得出总体评价。权值的设置具有很强的主观性,所以,应该让所有项目干系人共同参与,但也应合理组织,要允许对权值及其基本思想进行公开讨论。
②评估结果
SAAM评估的主要有形输出包括以下两个方面。
·把代表未来可能做的更改的场景与架构对应起来,显现出架构中未来可能会表现出较高复杂性的地方,并对每个这样更改的预期工作量做出评估。
·理解系统的功能,对多个架构所支持的功能和数量进行比较。
如果所评估的是一个架构,SAAM评估将指明架构中未能满足其修改性需求的地方,有时还会指出一种效果更好的设计。SAAM评估也能对多个备选架构进行比较,明确其中哪一个架构能够较好地满足质量属性,而且做的更改较少、不会在未来导致太多复杂的问题。