软件架构---质量属性(二)
一般情况下,质量属性可分为三类,系统的质量属性,商业属性,概念属性。
这里主要讨论的是系统的质量属性,可用性,可修改性,性能,安全性,可测试性和易用性。
1.可用性Availability
可用性是指系统掩盖或修复故障的能力,使得累积的服务中断时间不超过规定时间间隔内的所要求的值
当一个系统不再提供其规格说明中所声明的服务时,我们就认为其出了故障,即出现了可用性问题
通常情况下,我们以下面这个公式来量化可用性:
α = MTBF/(MTBF+MTTR)
MTBF:平均正常工作时间
MTTR:平均修复时间
需要注意的是这里并不需要计算正常情况下的停机时间
2.可修改性Modifiability
- 系统的任何部分都是可修改的
- 需要关注的是修改的成本(代价问题)
3.性能Performance
性能是一个抽象的概念,从本义上讲就是指软件如何做好它的工作,在软件上性能主要通过以下指标量化
响应时间(系统响应时间指计算机对用户的输入或请求作出反应的时间。)
吞吐量/率(单位时间系统处理时间数量)
抖动(这里的抖动指的是响应时间的变化)
丢包率(由于系统太忙)
4.安全性
安全性是衡量系统在向合法用户正常提供服务的情况下,阻止非授权使用的能力。
可将其理解为一个提供认可,机密性,完整性,身份验证,可用性和审核的系统
机密性,完整性和可用性confidentiality, integrity, and availability (CIA)
机密性是保护数据或服务免受未经授权访问的属性
完整性是指数据或服务不受未经授权操纵的属性
可用性是系统可供合法使用的属性。
身份验证会验证交易各方的身份,并检查他们是否真的是他们声称的身份
认可即交易(访问和修改数据或服务)不能被交易双方的任何一方所拒绝
审核是系统在其内部跟踪活动的属性
5.可测试性testability
‘ 通过测试揭示软件缺陷的容易程度。
6.易用性
对用户来说,完成某个期望任务的容易程度和系统所提供的用户支持的种类。
可分为以下几个方面:
学习系统的特性,即更加容易上手
有效的使用系统,即提高使用效率
将错误影响降到最低,即引导用户,使错误影响降到最低
使系统适应用户的需要,系统应该使用户的任务更加轻松
提高用户自信满意度,使用户确定自己采取了正确的行动