本章主要讲架构的评估,为什么进行架构评估,架构评估到底评估的是什么?本章在考试的案例的第一个题应该会考,知识点密集,尽量把分数拿全。
1.质量属性
前四个比较重要,经常考,性能,可用性,安全性,可修改性。
1.性能
性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应或者在某段时间内系统所能处理的事件的个数。
代表参数:响应时间、吞吐量
设计策略:优先级队列、资源调度
2.可用性
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
代表参数:故障间隔时间
设计策略:冗余、心跳线
3.安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
设计策略:追踪审计
4.可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
主要策略:信息隐藏
5.可靠性
可靠性(reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。主要考虑两个方面:容错、健壮性。
代表参数:MTTF、MTBF
设计策略:冗余、心跳线
6.功能性
功能性(functionality)是系统所能完成所期望的工作的能力,一项任务的完成需要系统中许多或大多数构件的相互协作。
7.可变性
可变性(changeability)是指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品(例如,软件产品线)的基础时,可变性是很重要的。框架方面的修改
8.互操作性
作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性(interoperation),软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口,程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,这种互操作性也影响应用的软件体系结构。
2.质量评估的概念
风险点:指架构设计中潜在的、存在问题,给架构决策所带来的隐患。
敏感点:是为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。
非风险点:用户提出的XX要求,是可以接受的。
3.质量评估的调查方式
3.1基于问卷(检查表)的方式
3.2基于度量的方式:自己定义的评价框架的量化指标,比较客观,但是真正实施起来标准并不是那么容易制定的,对于参与架构的人员要求高,必须精确了解,偏理论。
3.3基于场景的方式:场景的出现就变成了问卷与度量之间的折中。获取功能方面的需求的时候用的是用例,获取非功能性需求(比如说一些质量属性)使用场景,也是最常用的评估方法。
不同方式在“通用性”,“架构了解程度”,“实施阶段”,“客观性”四个维度的区别
4.基于场景的方式
基于场景的方式有三种:软件架构分析法(SAAM)、架构权衡分析法(ATAM)、成本效益分析法(CBAM)
只需要掌握前两种即可,第三种无需掌握。
4.1软件架构分析法(SAAM)
最初用于分析架构的可修改性,后扩展到其它质量属性。
输入有:问题描述、需求说明、架构描述。场景开发(获取非功能需求)、架构描述、单个场景评估、场景交互评估(单个架构评估)、总体评估(比较多个架构)、
4.2架构权衡分析法(ATAM)
ATAM:在SAAM的基础上发展而来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
PS:考试经常出现的题型是下列哪个阶段,不是ATAM的阶段?
第一阶段 场景和需求收集
收集场景
收集需求、约束、环境
描述架构视度
第二阶段 架构视图和场景实现
描述架构视图
实现场景
第三阶段 属性模型的构造分析
特定属性分析(优秀的单一理论)
第四阶段 折中
标志折中
标志敏感度
5.质量效用树
质量效用属性:性能,可修改性,可用性,安全性。
性能:性能延时(将用户数据库存储延迟到了最小值300ms,提供了实时的视频图像),交易吞吐量(使认证服务器的平均吞吐量最大化)
可修改性:新增产品目录,商业产品修改(已小于20人月的工作量添加CORBA中间件,以小于4人周的工作量更改web界面)
可用性:硬件故障(若站点A断电,要求在3秒内将任务重定向到站点B,若磁盘出现故障,要求在5分钟内重新启动,要在1-5分钟之内检测并恢复网络故障),商业软件故障
安全性:数据机密性(信用卡交易在99.999%的时间内是安全的,客户数据库z认证在99.999%的时间内能正常工作),数据完整性
例题来了:
1.Architecture Trade off Analysis Method()是一种软件架构的评估方法,以下关于该方法的叙述中,正确的是()
A、ATAM是一种代码评估方法
B、ATAM需要评估软件的需求是否
C、ATAM需要对软件系统进行测试
D、ATAM不是一种精确的评估工具
2.识别风险点、非风险点、敏感点和权衡点是软件架构评估过程中的关键步骤,针对某系统所作的架构设计中,“系统需要支持的最大并发用户数量直接影响传输协议和数据格式”描述了系统架构设计中的一个();“由于系统的业务逻辑目前尚不清楚,因此现有系统三层架构中的第二层可能会出现功能重复,这会影响系统的可修改性”描述了系统架构设计中的一个(15)。
A、敏感点 B、风险点 C、非风险点 D、权衡点
A、敏感点 B、风险点 C、非风险点 D、权衡点
3.某公司欲开发一个网上商城系统,在架构设计阶段,公司的架构师识别出3个核心质量属性场景,其中,系统主站断电后;能够在2分钟内自动切换到备用站点,并恢复正常运行”主要与()质量属性相关,通常可采用(),果架构策略实现该属性。“在井发用户数不超过1000人时,用户的交易请求应该在0.5s内完成”主要与() 质量属性相关,通常可采用()架构策略实现该属性;系统应该能够抵挡恶意用户的入侵行为;并进行报警和记录,主要与()质量属性相关,通常可采用()架构策略实现该属性。
A.性能 B.可用性 C.易用性 D.可修改性
A.主动冗余 B.信息隐藏 C.抽象按口 D.记录/问效
A.可测试性 B.易用性 C.性能 D.互操作性
A.操作串行化 B.资源调度 C.心跳 D.内置监控器
A.可用性 B.安全性 C.可测试性 D.可修改性
A.内置监控器 B.记录/回放 C.追踪审计 D.维护现有接口