系统架构设计师:第 8 章 系统质量属性与架构评估

系统质量属性与架构评估

本章考点较多,基础知识大约 9 分,应用技术大约 25 分

1. 软件系统质量属性

1.1 质量属性概念

软件系统质量属性是一个系统可测量或可测试的属性、用来描述满足系统利益相关者需求的度量。根据软件系统的生命周期可分成开发期质量属性运行期质量属性。开发期质量属性主要指的是设计及编码层级、包括:易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性。运行期质量属性主要指的是运行层级、包括:性能、安全性、可伸缩性、互操作性、可靠性、可用性、鲁棒性

1.1.1 开发期质量属性

  • 易理解性
  • 可扩展性
  • 可重用性
  • 可测试性
  • 可维护性
  • 可移植性

1.1.2 运行期质量属性

  • 性能
  • 安全性
  • 可伸缩性
  • 互操作性
  • 可靠性
  • 可用性
  • 鲁棒性

1.2 面向架构评估的质量属性

在架构评估过程中,评估人员普遍关注的属性包括:性能、安全性、互操作性、可靠性(容错、健壮性)可用性、可修改性(可维护性、可扩展性、结构重组、可移植性)功能性、可变性。对于性能可用并发用户数、响应时间等数据描述,可采用优先级队列、资源调度等方式保证重要的任务有较高的性能。对于安全性可用信息窃听、信息篡改、行为抵赖,行为可控等描述,可采用跟踪审计、加密等方式保证。对于可用性可用平均失效间隔时间、平均失效等待时间、平均失效修复时间等数据描述。对于可修改性可用修改系统所耗工时来描述,可采用接口与实现分离、信息隐藏等方式实现。对于可测试性可用是否支持调试等描述。

  • 安全性指的是为授权用户提供授权的服务,阻止非授权用户使用非授权服务的能力。
  • 可伸缩性指的是在用户或数据量增大时,系统依然能够维持较高的服务质量的能力。
  • 互操作性指的是系统与其他系统进行数据交换和相互调用的能力。
  • 可靠性指的是在给定时间间隔内、给定条件下未失效运作的能力。
  • 可用性指的是系统在一定时间内正常工作的时间比例。MTBF/(MTBF+MTTR)
  • 鲁棒性指的是系统在非正常情况下仍能正常运行的能力,又称健壮性或容错性。

1.3 质量属性场景描述

质量属性场景要素包括:刺激源、刺激、环境、制品、响应、响应度量

1.3.1 可用性质量属性场景

可用性质量属性场景图

1.3.2 可修改性质量属性场景

可修改性质量属性场景图

1.3.3 性能质量属性场景

性能质量属性场景图

1.3.4 可测试性质量属性场景

可测试性质量属性场景图

1.3.5 易用性质量属性场景

易用性质量属性场景图

1.3.6 安全性质量属性场景

安全性质量属性场景图

2. 系统架构评估

系统架构评估的方法通常可以分为三类:基于调查问卷或检查表的方法、基于场景的评估的方法和基于度量的评估方法。其中基于调查问卷或检查表的方法缺点是完全依赖评估人群的主观判断,基于度量的评估方法太过理论难以实现,目前主要使用的是基于场景的评估方法,包括架构分析方法和架构权衡分析法。

2.1 系统架构评估中的重要概念

在架构评估中关注的一些概念包括:风险点、敏感点、权衡点和非风险点风险点是指在架构设计中潜在的、存在问题的决策所带来的隐患。敏感点是指为实现系统某一质量属性,一个或多个构件所具有的特性。权衡点是指影响系统多个质量属性的构件特性,是多个质量属性的敏感点。非风险点是指架构设计中不能造成问题的架构决策的关注点。

2.2 系统架构评估方法

2.2.1 SAAM

**软件架构分析法(SAAM)**强调通过分析需求、场景和架构设计来评估系统的适应性和灵活性,通常用于识别架构设计中的潜在风险。其特点是简单性、快速性、易理解性,能够与利益相关者交流,得到使用场景与核心业务。

具体步骤包括:

  • 场景开发:与利益相关者交流,得到使用场景与核心业务。
  • 架构描述:详细描述架构,便于后期分析。
  • 单场景评估:逐个分析开发的场景,评估架构的有效性和性能,识别潜在的问题。
  • 多场景评估:评估多个场景间的相互影响,确保架构支持场景间的协同和数据流动。
  • 总体评价:综合所有的评估结果,识别出架构的优势和不足,提出优化建议。

SAAM 评估方法示意图

2.2.2 ATAM

**架构权衡分析方法(Architecture Tradeoff Analysis Method、ATAM)**是在 SAAM 的基础上发展起来的,主要针对性能、可用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。

  • 特定目标
  • 质量属性
  • 风险承担者
  • 架构描述
  • 评估技术
  • 方法的活动
  • 领域知识库的可重用性
  • 方法验证

ATAM 评估方法示意图

2.2.3 CBAM

  • 整理场景
  • 对场景进行求精
  • 确定场景的优先级
  • 分配效用
  • 架构策略涉及哪些质量属性及响应级别,形成相关的 「策略一场景一响应级别」 的对应关系
  • 使用内插法确定 「期望的」 质量属性响应级别的效用
  • 计算各架构策略的总收益
  • 根据受成本限制影响的 ROI 选择架构策略

2.2.4 其他评估方法

  • SAME
  • SAABNet
  • SACMM
  • SASAM
  • ALRRA
  • AHP
  • COSMIC+UML

3. ATAM 方法架构评估实践

架构权衡分析方法(ATAM)是在软件架构分析法(SAAM)的基础上发展起来的,主要针对性能、可用性、安全性和可修改性进行评价和折中。侧重于识别架构中的权衡和选择,分析不同决策对质量属性的影响,帮助团队理解如何在业务需求和技术约束之间做出平衡。

传统的 ATAM 可以分为四个阶段:

  • 演示和介绍阶段:与利益相关者讨论并收集系统的关键需求和质量属性。
  • 调查和分析阶段:识别架构,明确现有架构或设计,确定主要组件和相互关系,包括组件、接口和它们之间的交互;分析权衡,建立质量属性模型,评估不同架构决策对系统性能、可用性、安全性和可修改性等质量属性的影响,分析各架构选项的优缺点,识别潜在的架构风险和权衡。
  • 测试阶段:生成选项,在识别的权衡和分析基础上,提出不同的架构选择,评估其优缺点,制定最终架构决策。
  • 报告阶段:生成评估报告,描述架构设计的优缺点及优化建议。

现代的 ATAM 方法采用全面性、适用于复杂系统、可识别风险、利益相关者参与的特点对质量属性进行分类和优先级排序。整个过程包括场景和需求收集、架构视图和场景实现、属性模型构造和分析、架构决策与折中

ATAM 架构评估实践图

3.1 阶段 1—演示

场景和需求收集包括架构视图和场景实现

3.2 阶段 2—调查和分析

属性模型构造和分析包括属性模型折中

3.3 阶段 3—测试

效用树:用于对质量属性进行分类和优先级排序,是调查和分析阶段的核心工具。

3.4 阶段 4—报告 ATAM

最后是演示和介绍阶段介绍 ATAM 方法、描述商业目标、描述架构是指评估负责人向项目成员介绍 ATAM 的过程信息,并说明预期结果,回答项目成员的问题。调查和分析阶段指的是与利益相关者讨论需求,识别其所关注的方向。识别架构方法、产生质量属性树、分析架构方法指的是对架构设计进行全方位的描述,方便后期评估质量属性。测试阶段指的是架构设计中如何满足质量属性。讨论质量属性需求的优先级、分析架构方法指的是根据利益相关者的关注点生成质量属性树。生成评估报告指的是根据质量属性树及架构设计评估出其中的风险点、敏感点、权衡点和非风险点。介绍 ATAM指的是由于权衡点的存在,需要确定质量需求的优先级。描述商业目标指的是根据质量需求的优先级来调整架构设计。描述架构指的是根据前面步骤的经过,生成一份评估报告,描述架构设计的优缺点及优化建议。