系统质量属性与架构评估
软件系统质量属性
软件系统质量属性是一个系统的可测量或可测试的属性,基于软件系统的生命周期,可将软件系统的质量属性划分为:
开发期质量属性
- 易理解性
- 可扩展性
- 可重用性
- 可测试性
- 可维护性
- 可移植性
运行期质量属性
- 性能
- 安全性
- 可伸缩性
- 互操作性
- 可靠性
- 可用性
- 鲁棒性
关键质量属性及策略
- 可用性
- 错误检测:心跳、Ping/Echo、异常
- 错误恢复:表决、主动冗余、被动冗余、重新同步、内测、检查点/回滚
- 错误避免:服务下线、事务、进程监控器
- 性能
- 资源的需求:减少事件处理时的资源占用、减少事件处理的数量、控制资源的使用
- 资源管理:并发机制、增加资源
- 资源仲裁:先来先服务、固定优先级、动态优先级、静态调度
- 可修改性
- 局部化修改:高内聚低耦合、预测变更、使模块通用
- 防止连锁反应:信息隐藏、维持现有接口、限制通信路径、使用中介
- 推迟绑定时间:运行时注册、多态、配置文件
- 安全性
- 抵抗攻击:用户身份验证、用户授权、维护数据机密性与完整性、限制暴露、限制访问
- 检测攻击:入侵检测系统
- 从攻击中恢复:恢复状态、识别攻击者
质量属性场景描述
质量属性场景是一种面向特定质量属性的需求。包括:
- 刺激源(Source):某个生成该刺激的实体(人、计算机系统等)
- 刺激(Stimulus):当刺激到达系统时需要考虑的条件
- 环境(Environment):指该刺激在某些条件内发生
- 制品(Artifact):某个制品被激励,可能是整个系统,也可能是系统的一部分
- 响应(Response):指在激励到达后所采取的行动
- 响应度量(Measurement):当响应发生时,应当能够以某种方式对其进行度量
系统架构评估
系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策,通常分为:
- 基于调查问卷或检查表的方法,缺点是主观性太强
- 基于场景的评估方法:架构权衡分析法(ATAM)、软件架构分析方法(SAAM)
- 基于质量属性的评估方法
系统架构评估的重要概念
- 敏感点:一个或多个构件的特性
- 权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点
- 风险承担者或利益相关人:影响体系结构或被体系结构影响的群体
- 风险:某个存在问题的架构设计决策,可能会导致问题
- 非风险:与风险相对,是良好的设计决策
系统架构评估方法
架构权衡分析法(
ATAM
)
在系统开发之前,针对性能
、可用性
、安全性
和可修改性
等质量属性进行评价和折中
,整个评估过程强调以属性作为架构评估的核心。ATAM尚处于研究阶段。
软件架构分析方法(
SAAM
)
一种非功能质量属性的架构分析方法,可修改性
是主要分析内容。主要输入:问题描述、需求说明、架构描述
分析过程:场景开发、架构描述、单个场景评估、场景交互、总体评估
应用领域:空中交通管制系统、嵌入式音频系统、修正控制系统
成本效益分析法(
CBAM
)