目录
1.软件架构评估的方法
1.基于调查问卷
2.基于度量
3.基于场景
1.架构权衡分析法
2.软件架构分析法
2.软件架构评估的相关概念
1.质量属性
1.性能
2.可靠性
3.可用性
4.安全性
5.可修改性
2.敏感点,风险点
软件架构评估有三种方式:基于调查问卷,基于度量,基于场景
是指组织相关人员进行评估,这种方式最简单易行,但是主观性强。
强调量化指标,最客观,但是这种方式实施难度大,因为需要评估者对系统非常熟悉,不然很难量化清楚各项指标。
筛选出系统的关键场景,根据系统在不同场景中的表现进行评估,这种方式客观程度介于2者之间,这也是目前较为流行的结构评估方法。
基于场景的方式主要有三种:架构权衡分析法(ATAM,Architecture Tradeoff Analysis Method),软件架构分析法(SAAM,Software Architecture Analysis Method),成本效益分析法(CBAM)。前2种方式用得比较多。
架构权衡分析法(ATAM,Architecture Tradeoff Analysis Method)是在SAAM上发展而来。核心是结合质量属性效用树对系统进行评价,确定风险点、敏感点、权衡点,并对系统架构做出决策和折中。整个评估过程强调以质量属性作为评估核心。
其过程如下
1描述ATAM方法->2描述商业动机->3描述架构方法->4确定架构方法->5生成质量属性效用树->6分析架构方法->7讨论确定场景优先级->8分析架构方法->9表述结果
ATAM分成4个阶段
在描述和介绍阶段,由系统架构师向大家介绍ATAM方法,然后由产品经理和大家描述商业动机,最后由架构师向大家描述系统架构,系统分为几层,表现层,业务层,数据层等系统架构方面的东西。
在调查和分析阶段,先确定了系统的架构,然后生成质量属性效用树,然后通过这些场景分析系统的风险点,敏感点,权衡点。
测试阶段,我们根据需要分析的系统的特性,确定场景的优先级,由高到低是什么,例如性能,可用性,可修改性,安全性。每一个质量属性都很重要,但是根据系统特点需要对质量属性有优先级排序,所以我们在系统设计时有权衡和折中,架构权衡分析法的权衡就在此体现。
确定优先级之后,我们需要阐述对每个质量属性都采用什么方案,例如性能,优先级管理,资源仲裁。可用性,ping/echo,冗余。
报告阶段,把评估的过程和结果整理成文档,其中包括质量属性效用树,风险点,敏感点,权衡点,以及每次会议的会议纪要和最后的架构决策。
描述和介绍阶段参与者是架构师(1,3)和产品经理(2),调查和分析阶段参与者是评估小组,设计人员,管理人员和客户代表。
现在新的定义是分成如下4个阶段
软件架构分析法分为6个步骤
质量属性包含性能,可靠性,可用性,安全性,可修改性。
指系统的响应能力
代表参数:吞吐量,并发数等
提升策略有
包括容错性和健壮性,在异常或错误使用情况下维持系统软件功能的基本特性,例如空值引发空指针异常,不应该出现在系统中。
提升策略有
系统能正常运行的时间比例。例如系统可用性99.9999%。
代表参数:故障间隔时间
提升策略有
系统向合法用户提供服务的同时阻止非授权用户企图的能力。
提升策略:
系统是否能够以较高的性价比对系统进行变更的能力,其包括可扩展性,可维护性,结构重组,可移植性。
提升策略: