系统架构质量属性
目录
一、评估人员关注的系统质量属性
- 1.性能
系统的响应能力
经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数
- 2.可靠性
软件系统在应用或系统错误面前,在意外或错误使用的情况下维持功能特性的基本能力(容错,健壮性)
- 3.可用性
系统能够正常运行的时间比例
- 4.安全性
系统在向合法用户提供服务的同时,能够阻止非授权用户使用的企图或拒绝服务的能力
- 5.可修改性
能够快速的用高性价比对系统进行变更的能力。
- 6.可维护性
在错误发生后“修复”软件系统
- 7.功能性
系统所能完成所期望的工作的能力
- 8.可变性
体系结构经扩充或变更而成为新体系结构的能力
- 9.互操作性
经常与其他系统或自身环境互相作用
- 10.可测试性
软件发现故障并隔离,定位其故障的能力特性
二、架构策略对应实现属性
- 1.性能
增加计算资源,减少计算开销,引入并发机制,采用资源调度(队列调度)
- 2.可靠性
主动冗余
- 3.可用性
心跳,Ping/Echo,主动冗余,被动冗余,选举
- 4.安全性
侵入检测,用户认证,用户授权,追踪审计,限制访问
- 5.可修改性
软件模块泛化,限制模块之间通信,使用中介和延迟绑定,运行时注册,接口实现分离,信息隐蔽
- 6.可维护性
局部性修改
- 7.功能性
构件协作
- 8.可变性
预先定义规则,作为相关产品基础
- 9.互操作性
交互作用
- 10.可测试性
记录回放
三、体系结构决策
风险点:架构设计潜在的、存在问题的架构决策带来的隐患,影响到系统的某种质量属性
非风险点:在一个范围内可接受的影响某个质量属性
敏感点:为了实现某个质量属性,一个或多个构件的特性
权衡点:影响多个质量属性的特性,是多个质量属性的敏感点
非功能性需求
非功能性需求通常被看做是能力,主要跟服务质量有关,也就是一个软件的质量属性