1、质量属性
1、性能
系统的响应能力,响应时间、吞吐量,
策略:优先级队列、资源调度
2、可用性
系统正常运行的时间比例(两次故障之间的时间长度),故障间隔时间,
策略:冗余、心跳线
3、安全性
系统向合法用户提供服务的同时能阻止非授权用户或拒绝服务的能力。
又划分为机密性、完整性、不可否认性、可控性。
策略:追踪审计
4、可修改性
以较高的性价比对系统进行变更的能力
策略:信息隐藏
5、可靠性
系统在应用或系统错误面前,仍可以维持软件系统的功能特性的基本能力。
MTTF\MTBF,容错、健壮性
策略:冗余、心跳线
6、功能性
系统能完成所希望的工作的能力
7、可变性
体系结构经扩展或变更而成为新体系结构的能力
8、互操作性
软件系统结构必须外部可视的功能特性和数据结构的软件入口。
2、属性权衡
1、风险点:架构设计中潜在的,存在问题的架构决策所带来的隐患
2、敏感点:为实现某种特定的质量属性,一个或多个构件所具备的特性
3、权衡点:影响多个质量属性的特性,是多个质量属性的敏感点
评估方式:
1、基于调查问卷(调查表)
2、基于度量的方式
3、基于场景
3、基于场景的评估
1、确定应用领域的功能和软件架构的结构之间的映射
2、设计用于体现待评估质量属性的场景
3、分析软件架构对场景的支持程度
3.1、软件架构分析法SAAM
由可修改性扩展到其他质量属性
3.2、架构权衡分析法ATAM
基于SAAM,主要针对性能、实用性、安全性、可修改性。对这些质量属性评价和折中
3.3、成本效益分析法CBAM
对架构设计决策的成本和收益进行建模,根据投资收益率ROI来选择合适的架构。作为ATAM的补充,在ATAM确定满足质量属性的基础上,再对效益进行分析。