一、常见的质量属性
1、性能(Performance):
描述系统在单位时间内完成的工作量。主要包括吞吐量、响应时间、截止时间这些指标。其中截止时间越接近开始时间,系统的性能越好。
为了使系统拥有较好的性能,有以下方法:
将关键操作本地化。
减少组件之间的通信。
2、扩展性(Scalability):
描述系统是否易于更新和维护,在规模变大时,处理请求变多时能否正常的工作。主要包括请求负载、连接负载、系统处理的数据规模、部署这些指标。
其中“请求负载”规定了系统最大可以同时处理多少请求,当最大值为100时系统该如何设计,为1000时系统又该如何设计。
需要注意的是“连接负载”指有多少个人同时连接到系统上,但不一定与系统做交互。所以一般“连接负载”> “请求负载”。
3、可修改性(Modifiability):
衡量系统是否能以较小的改动满足功能性和非功能性需求的变化。衡量更新系统、扩展维护系统的难易程度。
提高系统可修改性,有以下方法:
在设计之前仔细考虑系统可能的变化,以及这种变化带来的影响。
最小化系统组件之间的依赖程度。
4、安全性(Security):
系统在面临恶意访问时,是否能做出正确识别并做出回应,描述系统抵御攻击的能力。
提高系统安全性的方法有:
身份验证
限制用户访问系统的权限。
数据加密。
记录日志,记录用户在系统上的操作。
5、有效性(Availability)
一方面描述系统运行多长时间不出问题,一方面描述系统在出现异常后多长时间可以恢复。主要体现在可依赖性和可恢复性。
6、可用性(U****lity)
描述系统是不是好用,用户的体验如何,用户使用系统的难易程度,以及系统适用的用户范围。