Appearance
系统架构评估
系统架构评估是。
软件架构评估,因此与设计、实现、测试都没有关系。评估的目的是为了,但不是单纯的确定是否满足需求。
- 敏感点:是指为。
- 权衡点:是。
场景:在进行架构评估时,一般首先要,并以之作为判定该架构优劣的标准。。场景是。
在架构评估中,一般采用三方面来对场景进行描述。
风险点与非风险点不是以标准专业术语形式出现的,只是一个常规概念,即。某个做法如果有隐患,有;而如果。
系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。
软件架构评估在架构设计之后,系统设计之前,因此与设计、实现、测试都没有关系。评估的目的是为了评估所采用的架构是否能解决软件系统需求,但不是单纯的确定是否满足需求。
敏感点、权衡点与风险点
| 概念 | 定义 | 关键特征 |
|---|---|---|
| 敏感点 | 一个或多个构件/关系的特性,其微小变化会对某个质量属性产生显著影响 | 影响单个质量属性 |
| 权衡点 | 影响多个质量属性的特性,是多个质量属性的敏感点 | 涉及多属性取舍 |
| 风险点 | 可能导致架构失败的决策 | 潜在负面结果 |
| 非风险点 | 对质量属性无显著影响的决策 | 可接受 |
风险点与非风险点不是以标准专业术语形式出现的,只是一个常规概念,即可能引起风险的因素,可称为风险点。某个做法如果有隐患,有可能导致一些问题,则为风险点:而如果某件事是可行的可接受的,则为非风险点。
从三个方面对场景进行设计:刺激(事件);环境(事件发生的环境);响应(架构响应刺激的过程)
典型考题:改变加密级别 → 权衡点(影响安全性 ↑ + 性能 ↓)
识别规律:
- 只涉及一个质量属性 → 敏感点
- 涉及两个及以上质量属性的取舍 → 权衡点
三种常用的评估方式
- 基于**调查问卷(检查表)**的方式:类似于需求获取中的问卷调查方式,只不过是架构方面的问卷,要求评估人员对领域熟悉。
- :制定一些定量来度量架构,如代码行数等。要制定质量属性和度量结果之间的映射,要求评估人员对架构熟悉。涉及3个基本活动,首先需要建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的质量属性。
- 基于场景的方式:主要方法。首先要确定应用领域的功能和软件架构的结构之间的映射,然后要设计用于体现待评估质量属性的场景(即4+1视图中的场景),最后分析软件架构对场景的支持程度。要求评估人员即对领域熟悉,也对架构熟悉。

基于场景的架构分析方法 SAAM
软件架构分析方法
SAAM是一种的架构分析方法,是并得到广泛应用的软件架构分析方法。
SAAM 是最早形成文档并得到广泛应用的软件架构分析方法,最初主要用于评估可修改性。
五大评估步骤:
- 场景开发 — 体现系统所支持的各种活动
- 架构描述 — 定义系统组成
- 单个场景评估 — 逐一评估场景
- 场景交互 — 分析场景间的相互影响
- 总体评估 — 综合评价

三大输入:
- 问题描述
- 需求声明
- 体系结构描述(必需的分析对象)
⚠️ SAAM 评估过程不包括属性模型构造(那是 ATAM 的步骤)。
可修改性评估

架构权衡分析方法 ATAM
让架构师明确如何权衡多个质量目标,参与者有评估小组、项目决策者和其他项目相关人。
ATAM被分为四个主要的活动领域,分别是场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中。
整个评估过程强调以属性作为架构评估的核心概念。主要针对性能、可用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
ATAM方法采用效用树(Utility tree)这一工具来对质量属性进行分类和优先级排序。效用树的结构包括:树根-质量属性-属性分类-质量属性场景(叶子节点)。
需要注意的是,ATAM主要关注4类质量属性:性能、安全性、可修改性和可用性,这是因为这4个质量属性是利益相关者最为关心的。

ATAM 主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。
四大活动阶段:
- 场景和需求收集
- 架构视图和场景实现
- 属性模型构造和分析(核心步骤)
- 折中(权衡分析)
效用树(Utility Tree):
- ATAM 的重要工具,树形结构从根到叶:树根 → 质量属性 → 属性分类 → 质量属性场景
- 用于系统化分析架构质量属性,从抽象目标到具体场景分解
核心概念: 整个评估过程强调以属性作为架构评估的核心概念。场景从**风险承担者(Stakeholder)**的角度描述。
成本效益分析法 CBAM
🎯 CBAM 在 ATAM 基础上构建,核心依据是**投资回报率(ROI)**选择架构策略。是对 ATAM 的补充,在质量属性确定后,再从成本效益角度进行分析。
主要步骤:
- 整理场景
- 分配效用(为场景分配效用值)
- 形成"策略-场景-响应级别"的对应关系
- 使用内插法确定期望质量属性响应级别的效用
- 计算各架构策略的总收益
- 根据受成本影响的 ROI 选择架构策略
🎯 CBAM 关注的核心焦点:在考虑经济成本和效益的前提下,对架构策略进行优先级排序。
其他评估方法
SAEM 方法
SAEM方法。将软件架构看作,从两个角度来阐述它的评估模型,旨在为软件架构的质量评估创建一个基础框架。
SAABNet 方法
是一种用来以辅助架构的定性评估
和其他
其他
非功能性需求四分类
🎯 架构设计中的非功能性需求分为四类,用于指导架构策略选择。
| 分类 | 含义 | 典型示例 |
|---|---|---|
| 操作性需求 | 与用户操作使用相关 | 界面个性化定制、支持主流标准协议 |
| 性能需求 | 响应时间、吞吐量、资源利用率 | 响应时间 ≤ 3s、支持 ≥ 2G 缓存 |
| 安全性需求 | 向合法用户服务、阻止非授权使用 | 密码加密传输、超时重登验证 |
| 文化需求 | 带有文化背景因素 | 支持多语言(汉语/英语/法语) |
ATAM vs SAAM vs CBAM 对比总表:
| 方法 | 核心特点 | 关键输入 | 主要用途 |
|---|---|---|---|
| ATAM | 质量属性建模与折中 | 质量需求、场景 | 多质量属性权衡 |
| SAAM | 场景驱动的架构评估 | 架构描述、问题声明 | 可修改性评估 |
| CBAM | 成本效益驱动的策略选择 | ROI分析、效用分配 | 经济视角策略排序 |