质量属性常分为六种,可用性、可修改性、性能、安全性、可测试性、易用性。
(1)可用性(Availability)
可用性是指系统正常运行时间的比例,是通过两次故障之间的时间长度或在系统崩溃情况下能够恢复正常运行的速度来衡量的。
衡量可以使用这个公式来进行:
以淘宝网为例:
场景:在双十一狂欢节
刺激源:同时在线用户
刺激:大量用户同时进入系统,导致系统过载奔溃
制品:系统奔溃处理器
环境:正常模式
响应:做出相应的记录,反馈错误信息,保持系统状态
响应度量:系统恢复正常
(2)可修改性(Modifiability)
值得关注的两个关注点:可以修改什么?何时以及谁进行修改。
以淘宝网为例:
场景:用户修改地址
刺激源:用户
刺激:用户地址更换需要变更
制品:用户交互界面
环境:运行时
响应:在修改地址的同时不修改功能项
响应度量:修改成功并更新
(3)性能(Performance)
性能是指系统的响应能力----即对外部刺激(事件)做出反应时所需要的时间或在某段时间内所处理的事件个数。
影响性能的因素:事件源的数量和到达模式。一般用等待时间、处理期限、系统吞吐量、响应抖动(等待时间的变化)、未处理事件(由于系统太忙无法响应)、丢失数据(由于系统太忙)等指标了解系统性能。
以淘宝网为例:
场景:用户支付
刺激源:用户
刺激:交易付款
制品:用户支付界面
环境:用户交互界面
响应:支付成功,返回成功信息
响应度量:2秒内完成交易
(4)安全性(Security)
安全性是衡量系统在向合法用户正常提供服务的情况下,阻止非授权使用的能力。
攻击有以下三种方式: 未经授权试图访问数据或服务。 未经授权试图修改数据。 试图使用系统拒绝向合法用户提供的服务。
以淘宝网为例:
场景:商品数据得到变更
刺激源:非授权用户
刺激:试图修改商品价格
制品:系统商品数据
环境:通过防火墙入网
响应:对用户进行验证,阻止或允许访问商品信息
响应度量:恢复数据
(5)可测试性(Testability)
可测试性是指指通过测试揭示软件缺陷的难易程度。
可测试性的响应度量处理的是测试在发现缺陷方面的效率以及想要达到某个期望的覆盖范围,需要用多长时间进行测试。
以淘宝网为例:
场景:测试系统是否可以完成交易
刺激源:测试人员
刺激:交易是否正常
制品:完整的应用
环境:部署时
响应:可以完成交易
响应度量:在两秒之内完成交易
(6)易用性(Usability)
易用性关注的是对用户来说完成某个期望任务的难易程度。
以淘宝网为例:
场景:用户取消订单
刺激源:最终用户
刺激:完整获取用户完成交易的商品信息
制品:系统
环境:运行时
响应:订单取消
响应度量:在两秒之内完成订单的取消,删除用户的订单记录