Architecture Tradeoff Analysis Method(ATAM)是一种软件架构的评估方法,以下关于该方法的叙述中,正确的是()
A.ATAM是一种代码评估方法
B.ATAM需要评估软件的需求是否准确
C.ATAM需要对软件系统进行测试
D.ATAM不是一种精确的评估工具
参考答案:D
解析:
使用ATAM方法对软件架构进行评估的目的,是依据系统质量属性和业务需求评估设计决策的结果。ATAM希望揭示出架构满足特定质量目标的情况,使架构设计师更清楚地认识到质量目标之间的联系,即如何权衡多个质量目标。这些设计决策很重要,一直会影响到整个软件生命周期,并且在软件实现后很难修改这些决策。
①评估参与者
在ATAM方法中,参加评估的人员主要有评估小组、项目决策者和其他项目干系人。
·评估小组。该小组是所评估架构项目外部的小组,通常由3~5人组成,他们可能是开发组织内部的,也可能是外部的。评估小组的每个成员都要扮演大量的特定角色。
·项目决策者。项目决策者对开发项目具有发言权,并有权要求进行某些改变,他们包括项目管理人员、重要的客户代表和架构设计师等。
·项目干系人。包括关键模块开发人员、测试人员和用户等。
②评估活动
整个ATAM评估过程包括九个步骤,如图所示。
·描述ATAM方法。评估小组负责人向参加会议的项目干系人介绍ATAM评估方法。在这一步骤中,要解释每个人将要参与的过程,并预留出解答疑问的时间,设置好其他活动的环境和预期结果。关键是要使每个人都知道要收集哪些信息,如何描述这些信息,将要向谁报告等。
·描述业务动机。项目决策者从业务的角度介绍系统的概况。该描述应该包括系统最重要的功能、技术/管理/经济和政治方面的任何相关限制、与该项目相关的业务目标和上下文、主要的项目干系人,以及架构的驱动因素等。参加评估的所有人员必须理解待评估的系统。
·描述架构。首席设计师或设计小组要对架构进行详略适当的介绍,至少应该包括技术约束(例如,操作系统、硬件和中间件等)、将与本系统进行交互的其他系统、用于满足质量属性要求的架构方法等。这一步骤很重要,将直接影响到可能要做的分析及分析的质量。
·确定架构方法。ATAM评估方法主要通过理解架构方法来分析架构,在这一步骤,由架构设计师确定架构方法,由分析小组捕获,但不进行分析。
·生成质量属性效用树。评估小组、设计小组、管理人员和客户代表一起确定系统最重要的质量属性目标,并对这些质量目标设置优先级和细化。这一步很关键,它对以后的分析工作起指导作用。即使是架构级的分析,也不一定是全局的,所以,需要集中所有相关人员的精力,注意架构的各个方面,这通常是通过构建效用树的方式来实现的。效用树的输出结果是对具体质量属性需求的优先级的确定,这种优先级列表为ATAM评估方法的后面几个步骤提供了指导,它告诉评估小组应该把有限的时间花在哪里,特别是应该到哪里去考察架构的方法与相应的风险、敏感点和权衡点。
·分析架构方法。一旦有了效用树的结果,评估小组可以对实现重要质量属性的架构方法进行考察。这是通过文档化这些架构决策和确定它们的风险、敏感点和权衡点等来实现的。在这一步骤中,评估小组要对每一种架构方法都考察足够的信息,完成与该方法有关的质量属性的初步分析。这一步骤的主要结果是一个架构方法或风格的列表,与之相关的一些问题,以及设计师对这些问题的回答。通常产生一个风险列表、敏感点和权衡点列表。在这一步骤结束时,评估小组应该对整个架构的绝大多数重要方面所做出的关键设计决策、风险列表、敏感点、权衡点有一个清楚的认识。
·讨论场景和对场景分级。场景在驱动ATAM测试阶段起主导作用。项目干系人进行两项相关的活动,分别是集体讨论用例场景和改变场景。用例场景是场景的一种,在用例场景中,项目干系人是一个终端用户,使用系统执行的一些功能。一旦收集了若干个场景后,必须发置优先级。评估人员通过投票表决的方式来完成,每个项目干系人分配相当于总场景数的30%的选择,且此数值只入不舍。例如,如果共有17个场景,则每个风险承担者将拿到6张选票,这6张选票的具体使用则取决于项目干系人,他可以把这6张选票全部投给一个场景,或者每个场景2~3张选票,还可以一个场景一张选票等。
·分析架构方法。在收集并分析了场景之后,设计师就可把最高级别的场景映射到所描述的架构中,并对相关的架构如何有助于该场景的实现做出解释。在这一步骤中,评估小组要重复第6步骤中的工作,把新得到的最高优先级场景与尚未得到的架构工作产品对应起来。在第7步骤中,如果未产生任何在以前的分析步骤中都没有发现的高优先级场景,则在第8步骤就是测试步骤。
·描述评估结果。最后,要把ATAM分析中所得到的各种信息进行归纳,并反馈给项目干系人。这种描述一般要采用辅以幻灯片的形式,但也可以在ATAM评估结束之后,提交更完整的书面报告。在描述过程中,评估负责人要介绍ATAM评估的各个步骤,以及各个步骤中得到的各种信息,包括业务环境、驱动需求、约束条件和架构等。最重要的是要介绍ATAM评估的结果。ATAM的评估结果包括一个简洁的架构描述、表达清楚的业务目标、用场景集合捕获的质量属性、所确定的敏感点和权衡点的集合、有风险的决策和无风险的决策、风险主题的集合。
在具体的软件架构评估过程中,可以修改这九个步骤的顺序,以满足架构信息的特殊需求。也就是说,虽然这九个步骤按编号排列,但并不总是一个瀑布过程,评估人员可在这九个步骤中跳转或进行迭代。
评估是软件系统详细设计、实现和测试之前的阶段工作,因此评估不涉及系统的实现代码和测试,因为评估是考查软件体系结构是否能够合适地解决软件系统的需求,并不对软件需求自身是否准确进行核实,而软件需求是否准确是需求评审阶段的工作。ATAM并不是一种精确的评估方法,该方法表现的主要形式是评审会议。