软件系统质量属性
软件系统质量属性是一个系统的可测量或者可测试的属性,用来描述系统满足利益相关者需求的程度。
从管理角度,可将影响软件质量的主要因素划分为:功能性、可靠性、易用性、效率、维护性和可移植性 功能性:适合性、准确性、互操作性、依从性、安全性 可靠性:容错性、易恢复性、成熟性 易用性:易学性、易理解性、易操作性 效率:资源特性、时间特性 维护性:可测试性、可修改性、稳定性、易分析性 可移植性:适用性、易安装性、一致性、可替换性
可以将软件系统的质量属性分为开发期质量属性和运行期质量属性。 开发期关注的质量属性:易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性 运行期关注的质量属性:性能、安全性、可伸缩性、和操作性、可靠性、可用性、鲁棒性
一、面向架构评估的质量属性 架构评估过程中,评估人员说关注的是系统的质量属性,包括:
- 性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件个数
- 可靠性(容错、健壮性):指软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的能力,用平均失效等待时间(MTTF)、平均失效间隔时间(MTBF)来衡量。
- 可用性:指系统能够正常运行的时间比例,用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示
- 安全性:指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力
- 可修改性(可维护性、可扩展性、结构重组、可移植性):指能够快速地以较高的性价比对系统进行变更的能力
- 功能性:指系统能完成所期望的工作的能力
- 可变性:指架构经扩充或变更而成为新架构的能力
- 互操作性:不是独立存在的,通常与其他系统或自身环境相互作用
二、质量属性场景 质量属性场景主要关注:可用性、可修改性、性能、可测试性、易用性、安全性
- 可用性:关注系统故障发生的频率、出现故障时发生的情况、允许系统有多长是正常运行、什么时候可以安全地出现故障、如何防止故障的发生、发生故障时要求进行哪种通知
- 可修改性:关注系统在改变功能、质量属性时需要付出的成本和难度,可修改性质量属性场景可能发生在系统设计、编译、构建、运行等多种情况和环境下
- 性能:主要关注系统的响应速度,可以通过效率、响应时间、吞吐量、负载来客观评价性能的好坏
- 可测试性:主要关注系统测试过程中的效率,发现系统缺陷或故障的难易程度
- 易用性:主要关注用户在使用系统时的容易程度,包括系统的学习曲线、完成操作的效率、对系统使用过程的满意程度
- 安全性:主要关注系统在安全性方面的要素,衡量系统在向合法用户提供服务的同时,阻止非授权用户使用的能力
系统架构评估
系统架构评估的方法通常分为3类:基于调查问卷或检查表的方式、基于场景的方式、基于度量的方式
一、系统架构评估方法 SAAM(软件架构分析方法)方法:包括5个步骤,场景开发、架构描述、单个场景评估、场景交互和总体评估
ATAM(架构权衡分析法)方法:采用效率树对质量属性进行分类和优先级排序,其关注的质量属性:性能、安全性、可修改性和可用性
CBAM方法:在ATAM结束时开始,使用了ATAM评估的结果
其他评估方法:SAEM方法、SAABNet方法、SACMM方法、SASAM方法、ALRRA方法、AHP方法
二、ATAM 方法架构评估实践
其工作分为4个基本阶段:演示、调查和分析、测试和报告ATAM