国防科技大学计算机学院第九讲:软件体系结构评估董威,文艳军,陈振邦国防科技大学计算机学院《软件设计与体系结构》国防科技大学计算机学院2内容9.1软件体系结构评估简介9.2ATAM方法9.3SAAM方法9.4ARID方法国防科技大学计算机学院3基本介绍软件系统的基础是它的体系结构,软件体系结构将影响系统很多质量属性。在软件体系结构确定下来以后,软件系统的这些属性就是可预见的。软件体系结构评估的目的在开发过程的早期,通过分析系统的质量需求是否在软件体系结构中得到体现,来识别软件体系结构设计中的潜在风险,预测系统质量属性,并辅助软件体系结构决策的制定。国防科技大学计算机学院4评估时机和人员(1/2)早评估:评估不需要完整的软件体系结构描述,可以在软件体系结构创建过程中的任何阶段使用评估方法,对已经做出的软件体系结构决策进行检查,或者确定还没有决定的软件体系结构选项。晚评估:迟评估的时机是软件体系结构已经明确并且实现已经完成的时候,这种情况在某个组织继承某些遗留系统时发生,这些遗留系统可能是在市场中购买的,也可能是从本组织现有的存档中发掘的。国防科技大学计算机学院5评估时机和人员(2/2)评估团队:其中的人员会实施评估并且进行分析,团队中成员和她们确切的角色将在后面定义;利益相关人员:是软件体系结构和基于它开发的系统的既得利益者。国防科技大学计算机学院6评估结果和质量属性(1/4)软件体系结构评估会产生一个评估报告,报告的形式和内容随着所使用评估方法的不同而不一样。通过软件体系结构评估可以回答下面两类问题:软件体系结构是否适用于基于它的软件系统?如果对于目前的系统有多个软件体系结构可以选择,那个是最合适的?国防科技大学计算机学院7评估结果和质量属性(2/4)如果一个软件体系结构满足以下两个标准,那么就认为它是适宜的:系统的结果满足质量目标。也就是说,系统的运行是可预期的,并且运行速度足够快,满足系统的性能或时间需求;系统的修改按照计划的方式进行,并且满足安全约束,系统能够提供必须的功能。系统能够使用现有的资源来开发,现有资源包括:人员、预算、任何遗留系统以及交付之前分配的时间。也就是说,软件体系结构是可构建的。国防科技大学计算机学院8评估结果和质量属性(3/4)性能系统响应能力可靠性系统随着时间的进行而保持运行的能力可用性系统有效工作的时间比例安全性系统在为合法用户提供服务的同时抵制未授权的使用请求和拒绝服务的能力可变性快速有效地修改系统的能力国防科技大学计算机学院9评估结果和质量属性(4/4)可移植性系统在不同计算环境中运行的能力功能性系统能够按照预期工作的能力变化性软件体系结构能够通过扩展或修改来得到新的软件体系结构的程度可分解性支持生产系统某个子集的能力概念完整性能够统一所有层面系统设计概念的能力国防科技大学计算机学院10评估的益处和代价(1/2)评估的益处:把利益相关人员召集在一起强制特定质量目标的接合生成冲突目标的优先级对软件体系结构有一个清晰的说明提高软件体系结构文档的质量发现跨项目重用的机会得到优化后的软件体系结构实践国防科技大学计算机学院11评估的益处和代价(2/2)人员开销与参加软件体系结构评估的人员相关的机会成本减小评估代价的方法在相同领域内的重用国防科技大学计算机学院12内容9.1软件体系结构评估简介9.2ATAM方法9.3SAAM方法9.4ARID方法国防科技大学计算机学院13基本介绍ATAM方法能够反映一个软件体系结构满足某些特定质量目标的程度,同时还能够给出这些质量目标相互之间的交互方式。ATAM方法也可对遗留系统进行分析,提高对系统质量属性的理解。ATAM方法基本过程介绍、调查和分析、测试、报告国防科技大学计算机学院14方法步骤ATAM方法介绍商业动机的介绍软件体系结构介绍确定软件体系结构方法产生质量属性效果树分析软件体系结构方法集体讨论并确定场景的优先级再次分析软件体系结构方法展示结果国防科技大学计算机学院15ATAM方法介绍评估负责人给召集在一起的利益相关人员介绍ATAM方法。ATAM方法中步骤的简要介绍。介绍评估中使用的获取和分析技术,包括效果树的生成、基于软件体系结构方法的获取和分析以及场景的集中讨论和优先级划分。介绍评估的结果,比如已经划分优先级的场景、用于理解和评估软件体系结构的问题、一组指定的软件体系结构方法、一组敏感点和折中点等等。国防科技大学计算机学院16商业动机的介绍项目决策者(最好是项目经理或系统关键客户)会从商业的角度来介绍系统的概况。系统最重要的功能;任何技术、管理、经济或政治方面的相关约束;与项目相关的商业目标和上下文;主要的利益相关人员;软件体系结构的驱动因素,即形成软件体系结构的主要质量属性目标。国防科技大学计算机学院17软件体系结构介绍首席设计师会以恰当的详细程度来介绍软件体系结构软件体系结构相关文档的详细程度,可用的时间,行为和质量需求的实质软件体系结构视图是设计师用于展示软件体系结构的主要工具功能、并发、代码和物理视图国防科技大学计算机学院18确定软件体系结构方法评估团队会得到软件体系结构方法,但并不会对其进行分析,评估团队将要求设计人员为任何使用的软件体系结构方法命名,也将确定任何她们在上一个步骤中听到的软件体系结构方法。这些软件体系结构方法定义了系统的关键结构,描述了系统的成长方式、应对变化的方式、抵抗攻击的方式、与其它系统集成的方式等等。国防科技大学计算机学院19产生质量属性效果树评估团队与项目决策者(软件体系结构团队、项目经理和客户)一起工作,来确定系统最重要的质量属性目标,并对它们进行优先级划分和精化。交易吞吐量性能可用性可变性数据延迟硬件失败(M,L)把客户数据库的存储延迟最小化到200毫秒(H,M)实时地提供视频效果安全性新添加产品种类修改COTS(L,H)在少于20人-月的代价下加入CORBA中间件(H,L)在少于4人-周的代价下修改Web用户界面(L,H)由于站点1的动力故障而需要把请求转到站点3的时间要低于3秒(M,M)磁盘失败后重新启动的时间要低于5分钟(H,M)用于监测并恢复网络失败的时间要少于1.5分钟数据完整性数据保密性(L,H)信用卡和事务在99.999%的时间内是安全的(L,H)用户数据局的授权在99.999%的时间内是安全的(M,M)最大化授权服务器的平均吞吐量COTS软件失败国防科技大学计算机学院20分析软件体系结构方法评估团队可以调查实现重要质量属性的软件体系结构方法,这可以通过查看软件体系结构决策并且找出它们的风险决策、无风险决策、敏感点和折中点来完成。这个步骤的输出包括:与每个最高优先级的效果树场景相关的软件体系结构方法或决策;每个软件体系结构方法相关的分析问题;设计人员对于问题的回答;所确定的风险决策、无风险决策、敏感点和折中点。国防科技大学计算机学院21集体讨论并确定场景的优先级了解主要的利益相关群体集体讨论3种类型的场景用例场景,代表利益相关人员所期望的系统使用方式;成长场景,代表软件体系结构处理成长和变化的方式;探索场景,代表成长的极限形式,包括新的性能或可用性需求、架构的主要改变或系统的任务等等。国防科技大学计算机学院22再次分析软件体系结构方法评估团队会进行与步骤6中相同的活动,把新生成的最高级别的场景对应到还没有发现的软件体系结构元素上。如果步骤7并没有产生任何在之前的分析过程没有被发现的高优先级场景,那么步骤8就是测试活动,其目标就是尽量完整地发现信息。国防科技大学计算机学院23展示结果方法结果中应该包括以下元素已具备文档的软件体系结构方法场景集合以及它们的优先级划分基于属性的问题集合效果树发现的风险决策已具备文档的无风险决策发现的敏感点和折中点国防科技大学计算机学院24四个阶段阶段0:评估团队在这个阶段被创建,同时评估组织与需要评估软件体系结构的组织建立合作伙伴关系。阶段1:这个阶段以软件体系结构为中心,着重于获取软件体系结构信息并且对其进行分析。阶段2:这个阶段以利益相关人员为中心,着重于获得利益相关人员的观点然后验证第一个阶段的结果。阶段3:在这个阶段中产生最终的报告,计划接下来的动作,然后评估组织更新其业绩记录和经验基础。国防科技大学计算机学院25内容9.1软件体系结构评估简介9.2ATAM方法9.3SAAM方法9.4ARID方法国防科技大学计算机学院26基本介绍第一个具备文档说明并且广泛传播的软件体系结构分析方法方法假设实践人员会定期地对她们的软件体系结构有所声明SAAM方法的输入一组场景SAAM方法的输出代表系统未来变化的场景到软件体系结构的对应,软件体系结构中潜在的复杂度高的区域,同时还有对每个变化工作量的估计;系统功能的理解,或者不同软件体系结构功能数量的比较。国防科技大学计算机学院27SAAM方法步骤国防科技大学计算机学院28场景的形成场景应该能够说明系统必须支持的活动类型,同时还必须说明客户参与者将给系统带来的变化类型。通过集体讨论的方式来获取场景。场景的获取和收集往往需要重复多次,形成场景和软件体系结构描述的过程是相关的,同时也是迭代的。国防科技大学计算机学院29描述软件体系结构候选的软件体系结构描述必须使用软件体系结构分析中各个成员能够理解的概念,这些软件体系结构描述除了包括相关连接子,还包括系统的计算构件和数据构件。场景的形成和软件体系结构描述通常相互促进软件体系结构描述的缺乏将强制性地要求利益相关人员考虑针对当前软件体系结构专门特征的场景。场景反映了软件体系结构的需求,从而必须在软件体系结构描述中实现。国防科技大学计算机学院30场景的分类和优先级划分直接场景场景的进行不需要修改软件体系结构。通过展示现有的软件体系结构在执行此场景时的行为来决定。间接场景场景没有被直接支持,但存在一些可表示的软件体系结构的变化来支持场景国防科技大学计算机学院31间接场景的单独评估设计人员能够描述应该如何修改软件体系结构来适应间接场景。列出为了支持间接场景对软件体系结构必须做的修改,然后还要估计修改的代价。国防科技大学计算机学院32评估场景交互当多个间接场景需要修改软件体系结构的某个构件时,它们就被认为在此构件中进行交互。场景交互揭示了产品设计中的功能分配。场景交互能够暴露出软件体系结构文档的不够详细,没有达到结构分解的要求。国防科技大学计算机学院33形成总体评估根据每个场景对于系统成功的相对重要程度,每个场景会被赋予一个权重,这个权重常常也与场景支持的商业目标相关。权值的决定是一个主观的过程,需要所有的利益相关人员通过讨论甚至辩论来决定。如果比较多个软件体系结构,每个支持的直接场景的数量也会影响评估,因为直接场景意味着无需修改系统就能够支持某个用户任务。国防科技大学计算机学院34内容9.1软件体系结构评估简介9.2ATAM方法9.3SAAM方法9.4ARID方法国防科技大学计算机学院35基本介绍ATAM方法和SAAM方法适合于评估成熟的软件体系结构。在软件体系结构发布之前对其进行评估能够及时发现设计中的错误、不一致或缺陷。在中间阶段,需要的是一个简单、轻量级的评估方法,主要关注于系统的适应性,并且能够在没有详细设计文档的情况下使用。国防科技大学计算机学院36ARID方法步骤排练确定评审人准备设计情况介绍准备种子场景准备材料评审介绍ARID方法介绍设计场景的集体讨论和优先级划分应用场景总结国防科技大学计算机学院37