软件架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。
架构评估的方法:
分为三类:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。
(1)基于调查问卷或检查表的方式:该方式的关键是要设计好问卷或检查表,它充分利用系统相关人员的经验和知识,获得对架构的评估。其缺点是在很大程度上依赖于评估人员的主观推断
(2)基于场景的方式:基于场景的方式由 SEI 首先提出并应用在架构权衡分析法(Architecture Tradeoff Analysis Method, ATAM)和软件架构分析方法(Software ArchitectureAnalysis Method, SAAM)中。它是通过分析软件架构对场景(也就是对系统的使用或修改活动)的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。
(3) 基于度量的方式:它是建立在软件架构度量的基础上的,涉及三个基本活动,首
先需要建立质量属性和度量之间的映射原则。然后从软件架构文档中获取度量信息;最后根据映射原则分析推导出系统的质量属性。
ATAM 方法不但能够揭示架构如何满足特定的质量需求(例如,性能和可修改性),而且还提供了分析这些质量需求之间交互作用的方法。该方法的目的是理解架构设计满足系统质量需求的结果。
ATAM结果之一:
所确定的敏感点和权衡点集合:这个集合是一些对一个或多个质量属性具有显著影响的架构决策。
=============================================================================================================================================================
一、软件质量
(1)性能
(2)可靠性(容错、健壮性)
(3)可用性
(4)安全性(机密性、完整性、不可否认性、可控性)
(5)可修改性(可维护性、可扩展性、结构重组、可移植性)
(6)功能性
(7)可变性
(8)可集成性
(9)互操作性
二、软件体系结构评估的主要方式
(1)基于调查问卷或检查表的评估方式
(2)基于场景的评估方式
(3)基于度量的评估方式
三、ATAM评估的步骤
四、SAAM评估的步骤
========================================================================================================
上篇博客中有写到架构设计考虑到的质量属性,这篇文章主要介绍了软件架构的评估方法ATAM,架构评估是十分重要的环节,软件系统中存在问题的潜在的决策带来的问题会影响系统后期的开发和维护。
架构权衡分析方法:一种非定量方法,它可揭示构架满足特定质量目标的情况,及构架对质量目标的权衡;软件结构权衡分析方法(ATAM)是一种评估软件结构的技术,它不仅用于软件系统的结构的特性评估,还能在有质量冲突体系中做出折衷。利用这种方法,评估者可以检查出那些存在于软件体系结构中的潜在的危险。通过对不同学科中评估方法和理论概念的研究,获得一组基本的组件,用它来开发一种新的评估方法,或者去分析某一现存的评估方法,进而改善这一评估方法。
1,人员
评估小组:独立的评估小组,包括小组负责人、评估负责人、书记员、计时员、过程观察者、提问者等角色;
项目决策者:有权要求项目改变的人,管理人员,客户代表,设计师;
涉众:开发、测试、维护、用户等,他们说明构架应满足的具体目标;
2,输出
能在1小时内表述的构架描述
清楚的业务目标
用场景捕获的质量需求
敏感点、权衡点、有风险决策、无风险决策…
3,过程,4阶段法
0阶段,合作关系与准备,确定细节:人员名单,时间,地点;评估小组获取资料并进行初步了解分析;
1阶段,评估阶段,决策者参与,小组开始信息收集与分析;耗时约1周
1~2周中断期,评估小组进一步以非正式方式了解构架;
2阶段,评估阶段,涉众参与,分析继续;约2天;
3阶段,后续阶段,生成最终报告,进行评估活动总结;1周;
评估阶段的细分:
1) 评估负责人向决策者表述ATAM方法,使大家理解其过程,了解角色布局;
2) 决策者介绍系统商业动机、重要功能、各种限制、商业目标、驱动因素等;
3) 设计师介绍构架,技术限制、所用模式等;
4) 评估小组利用所有已知信息对构架方法进行分类;
5) 生成质量属性效用树,捕获详细的需求信息,为每个场景分配一个级别,如(高,中),前者为重要度,后者为实现难易度,重点放在(高,高)的场景;此处场景具备刺激、环境、响应三要素就可以了;
6) 评估小组分析所有重要场景,设计师解释如何支持该场景,检查所用构架方法,分析风险点、权衡点、敏感点;
效用树:效用为根,性能等质量属性组成二级节点,继续细分直到场景,场景为叶;
经过一段中断期,第2阶段开始,此时涉众开始参与;首先仍然需要一个对ATAM方法的介绍,并使涉众了解已有的成果;
7) 集体讨论并分析场景的优先级,以了解更广泛的涉众的想法;该过程可能产生新的场景;使用“有限票数法”投票确定每个场景的优先级——此处不考虑实现难度了吧;
8) 分析新的高优先级的场景,构架师解释构架是怎么满足各场景的;
9) 总结评估结果,评估负责人展示该结果;
注意,看起来第1阶段与第2阶段活动类似,但它们的关注点与具体操作并不相同。
4,限制
ATAM不是一个准确的方法,且风险不可被量化;
5,小结
看起来ATAM是一个通过捕获详细的质量属性场景,选择其中最重要的一部分,考虑构架如何满足这些场景来进行评估的方法;这是一个“过程”方法而非技术方法;