第11章ATAM:一种进行构架评估的综合方法ATAM构架评估概述•ATAM(ArchitectureTradeoffAnalysisMethod)——构架权衡分析方法:这种方法不仅可以揭示出构架满足特定质量目标的情况,而且可以使我们更清楚地认识到质量目标之间的联系,即如何权衡多个质量目标。评估大型系统构架的困难性•评估大型系统构架是一项复杂的任务:1.大型系统本身有一个复杂的构架,要在有限的时间内理解这个构架存在困难。2.计算机系统旨在支持业务目标,评估需要把系统的业务目标和技术决策联系起来。3.大型系统的涉众太多,不易达到统一,在有限的时间里获得这些涉众的不同观点要求仔细管理评估过程。11.1ATAM的参与人员•ATAM要求以下3个小组的参与和合作:1.评估小组:该小组是所评估构架项目外部的小组,通常由3~5人组成。该小组的每个成员都要扮演大量的特定角色。他们可能是开发组织内部的,也可能是外部的。任何时候,他们都应该是有能力、没有偏见而且私下没有其他工作要做的人员•评估小组包括如下角色的人员:①评估小组负责人②评估负责人③场景书记员④进展书记员⑤计时员⑥过程观察员⑦过程监督者⑧提问者等2.项目决策者:对开发项目具有发言权,并有权要求进行某些改变,他们包括:①项目管理人员②重要的客户代表③构架设计师等•构架评估的一个基本准则就是构架设计师必须愿意参与评估3.构架涉众:与构架相关的人员,他们完成工作的能力与支持可修改性、安全性、高可靠性等特性的构架密切相关。包括:①开发人员②测试人员③集成人员④用户等11.2ATAM的结果•ATAM产生如下的结果:1.一个简洁的构架表述2.表述清楚的业务目标3.用场景集合捕获的质量属性4.架构决策到质量需求的映射5.所确定的敏感点和权衡点的集合6.有风险决策和无风险决策7.风险主题的集合11.3ATAM的评估过程•ATAM的评估过程可以分为4个阶段:0.评估准备阶段1.部分评估阶段2.全体评估阶段3.评估后续阶段ATAM阶段及其特性阶段活动参与人员一般需要时间0关系和准备评估小组负责人和主要的项目决策者大约需要几周时间1部分评估评估小组和项目决策者1周,然后中断2-3周2全体评估评估小组、项目决策者以及涉众2天3后续工作评估小组和客户1周11.3.1评估阶段的步骤•部分评估(1~6)和全体评估(7~9)被称为ATAM的分析阶段,这个阶段是ATAM评估的重点,完成主要的评估工作,包括9个步骤:1.ATAM方法的表述2.商业动机的表述3.构架的表述4.对构架方法进行分类5.生成质量属性效用树6.分析构架方法7.集体讨论并确定场景的优先级8.集体分析构架方法9.结构的表述11.3.1.1部分评估——ATAM方法表述•ATAM评估的第一步由评估负责人向参加会议的项目代表介绍ATAM评估方法。在这一步,要说明每个人将参与的过程,回答提出的问题,并为其他活动确定上下文和期望。评估负责人使用标准的演示来简要描述ATAM步骤和评估的结果。11.3.1.2部分评估——商业动机表述•项目决策者从商业的角度介绍系统的概况,包括:1.系统最重要的功能2.任何相关的技术、管理、经济和政治限制3.与项目相关的商业目标和上下文4.主要的涉众5.构架的驱动因素(主要质量属性目标)11.3.1.3部分评估—构架的表述•首席设计师在这一步对构架进行详略适当的介绍。•设计师应该谈到构架受到的技术约束条件,包括操作系统、硬件或中间件,以及系统与之交互的系统,最重要的是设计师要描述用来满足需求的构架方法并传达构架的本质。构架表述的示例模板•构架表述大约1小时,使用约20张PPT,包括以下几个部分的内容:1.促使形成该构架的需求,与需求相关的标准/模型/方法等(2~3ppt)2.重要的构架信息(4~8ppt)•上下文图•模块与分层视图•组件-连接器视图•部署视图3.构架方法、模式或所采用的战术(3~6ppt)•商业产品的选择/集成•对1~3个最重要的用例场景的介绍•对1~3个最重要的变更场景的介绍•构架问题/风险•术语表11.3.1.4部分评估——构架方法分类•ATAM评估主要通过理解其构架方法来分析构架的。每个方法影响着特定的质量属性,评估小组应该了解设计师在设计系统中所使用的模式和方法,并要求设计师对所使用的模式和方法进行命名,评估小组还应该能够发现没有提及的方法和模式。11.3.1.5部分评估——生成质量属性效用树•使用质量属性效用树对质量目标进行详细清晰地阐述•效用树的作用是使质量属性需求具体化,从而迫使设计师和客户代表准确地定义出他们将要提供的相关质量需求•效用树实际上就是使用最重要的质量属性场景来对质量属性进行讨论和评估质量属性效用树的组成•效用是根节点,表示系统的总体适宜性•中间层是质量属性或其求精•叶子是场景可以通过选择具体的场景看构架对该场景的响应或者实现情况对构架进行评估。效用可用性易用性交易吞吐量数据延迟场景1场景2…性能……质量属性效用树•在这一个步骤中评估小组需要对理解构架要实现的准确目标,而且还要理解其相对重要性。•在生成效用树时可能会有很多的叶子场景,但因为时间有限的,不能一一进行详细评估,所以效用树的生成还包括优先级的划分。设计师需要根据构架满足每个场景的难度来确定场景的优先级。•构建质量属性效用树的作用:构建效用树的结果是得到了一组划分了优先级的场景,有效的告诉了ATAM的评估吓阻应该把时间用在什么地方,特别是应该在什么地方探查构架方法和风险。效用树使评估人员更容易关注满足叶节点上高优先级场景的构架方法。11.3.1.6部分评估——分析构架方法•评估小组根据设计师的讲解分析每一个优先级高的场景。小组成员探查设计师用来实现场景的构架方法。在分析架构方法的过程中,评估小组把相关构架决策编成文档,确定每个场景的敏感点、权衡点,有风险和无风险决策并对其分类。评估小组的目标是确信该方法的实例化适合满足所要达到的质量属性需求。11.3.2全体评估•部分评估只有构架评估小组和项目设计人员参加•在部分评估之后,评估负责人概述前面部分的评估结果,并给其他涉众提供一份有风险决策、无风险决策、敏感点和权衡点的当前列表,此时,可以进入到全部评估阶段了11.3.2.1全体评估——集体讨论并确定场景的优先级•生成效用树主要是为了了解构架设计师是如何看待和处理质量属性构架驱动因素的,对场景进行集体讨论则是为了了解多数涉众的看法•由于评估的时间有限,所有涉众可以通过公开投票的方式确定需要集体讨论的场景的优先级,然后讨论优先级最高的若干个场景11.3.2.2全体评估——分析构架方法•在收集了若干场景并确定了其优先级之后,评估小组引导设计师在第七步中得到优先级最高的场景。设计师对相关的构架决策如何有足浴实现每个场景进行解释。这一活动主要是由设计师用已经讨论过的构架方法对这些场景作出解释。11.3.2.3全体评估——结果的描述•对评估的结果进行总结形成书面报告,包括:1.已编写了文档的构架方法2.经过讨论得到的场景集合及其优先级3.效用树4.所发现的有风险决策5.已编成文档的无风险决策6.所发现的敏感点和权衡点ATAM评估方法的步骤、结果及其关联结果步骤1.ATAM方法的表述2.商业动机的表述3.构架的表述4.确定构架方法5.生成质量属性效用树6.分析构架方法7.集体讨论确定优先级8.分析构架方法9.结果的表述质量属性需求的优先级划分所用构架方法编目针对方法或质量属性的分析问题构架方法与质量属性的对应有风险决策和无风险决策敏感点和权衡点***a*b***c*d*e*f***g*******************•“**”表示该步骤是此结果的来源,”*”表示该步骤是此结果的次要来源•a:商业动机中包括刚开始时对质量属性的粗略概述。•b:商业动机的表述可能会揭露出某个应该捕获的已发现或长期存在的风险。•c:设计师在自己的表述中可能会发现风险。•d:设计师在自己的表述中可能会发现,某个敏感点或权衡点。•e:许多构架方法都有与之相关的标准风险。•f:许多构架方法都有与之相关的敏感点或权衡点。•g:分析步骤可能会得出在第(4)步中未发现的一个或多个架构方法,这可能会产生新的针对架构方法的问题。