质量属性:性能、可用性、可靠性、安全性、可修改性、可变性、互操作性、功能性、易用性
其中:性能、可用性、安全性、可修改性是最核心属性
1、性能(performance):系统的响应能力。即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所以处理的事件的个数。
具体描述(同时支持10000并发;响应时间小于1s;显示分辨率达到2K)
战术
资源需求(提高计算效率、减少计算开销、管理事件率、控制采样频率)
资源管理(引入并发、维持多个副本、增加可用资源)
资源仲裁(资源调度策略、先进/先出、固定优先级、动态优先级、静态调试)
2、可用性(availability):系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示
具体描述(主任务器故障、1分钟内切换至备用服务器;系统故障,1小时内修复;系统支持7*24小时工作)
战术
错误检测(命令/响应{ping/echo};心跳;异常)
错误恢复(表决、冗余{主动/被动};备件)
错误预防(进程监视器、事务、从服务器删除)
3、安全性(security):系统在合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力,安全性又可划分为机密性、完整性、不可否认性及可控性等特性
具体描述(可抵御sql注入攻击;对计算机的操作都有完整记录;用户信息数据库授权必须保证99.9%可用)
战术
抵抗攻击(身份验证、用户授权、数据加密、数据完整性、限制暴露、限制访问)
检测攻击(入侵检测)
从攻击中恢复(识别:审计追踪;恢复:冗余{与可用性重叠})
4、可修改性(modifiability)能够快速地以较高的性能价格比对系统进行变更的能力,通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性
具体描述(更改系统报表模块,必须在2人周内完成;对web界面风格进行修改,修改必须在4人月内完成)
战术
局部化修改(维持语义一致性;预期期望的变更;泛化模块;限制可能的选择;抽象通用服务)
防止连锁反应(隐藏信息;维持现有的接口;限制通信路径;使用仲裁者)
推迟绑定时间(运行时注册;配置文件;多态;组件更换;遵守已定义的协议)