Skip to content

系统架构评估

系统架构评估是

软件架构评估,因此与设计、实现、测试都没有关系。评估的目的是为了,但不是单纯的确定是否满足需求。

  • 敏感点:是指为
  • 权衡点:是
。系统的架构涉及很多人的利益,这些人都对架构施加各种影响,以保证自己的目标能够实现。

场景:在进行架构评估时,一般首先要,并以之作为判定该架构优劣的标准。。场景是

在架构评估中,一般采用三方面来对场景进行描述。

风险点与非风险点不是以标准专业术语形式出现的,只是一个常规概念,即。某个做法如果有隐患,有;而如果

系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。

软件架构评估在架构设计之后,系统设计之前,因此与设计、实现、测试都没有关系。评估的目的是为了评估所采用的架构是否能解决软件系统需求,但不是单纯的确定是否满足需求。

敏感点、权衡点与风险点

概念定义关键特征
敏感点一个或多个构件/关系的特性,其微小变化会对某个质量属性产生显著影响影响单个质量属性
权衡点影响多个质量属性的特性,是多个质量属性的敏感点涉及多属性取舍
风险点可能导致架构失败的决策潜在负面结果
非风险点对质量属性无显著影响的决策可接受

风险点与非风险点不是以标准专业术语形式出现的,只是一个常规概念,即可能引起风险的因素,可称为风险点。某个做法如果有隐患,有可能导致一些问题,则为风险点:而如果某件事是可行的可接受的,则为非风险点。

从三个方面对场景进行设计:刺激(事件);环境(事件发生的环境);响应(架构响应刺激的过程)

典型考题:改变加密级别 → 权衡点(影响安全性 ↑ + 性能 ↓)

识别规律:

  • 只涉及一个质量属性 → 敏感点
  • 涉及两个及以上质量属性的取舍 → 权衡点

三种常用的评估方式

  • 基于**调查问卷(检查表)**的方式:类似于需求获取中的问卷调查方式,只不过是架构方面的问卷,要求评估人员对领域熟悉。
  • :制定一些定量来度量架构,如代码行数等。要制定质量属性和度量结果之间的映射,要求评估人员对架构熟悉。涉及3个基本活动,首先需要建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的质量属性。
  • 基于场景的方式:主要方法。首先要确定应用领域的功能和软件架构的结构之间的映射,然后要设计用于体现待评估质量属性的场景(即4+1视图中的场景),最后分析软件架构对场景的支持程度。要求评估人员即对领域熟悉,也对架构熟悉。

image.png

基于场景的架构分析方法 SAAM

软件架构分析方法

SAAM是一种的架构分析方法,是并得到广泛应用的软件架构分析方法。

SAAM 是最早形成文档并得到广泛应用的软件架构分析方法,最初主要用于评估可修改性

五大评估步骤:

  1. 场景开发 — 体现系统所支持的各种活动
  2. 架构描述 — 定义系统组成
  3. 单个场景评估 — 逐一评估场景
  4. 场景交互 — 分析场景间的相互影响
  5. 总体评估 — 综合评价

image.png

三大输入:

  1. 问题描述
  2. 需求声明
  3. 体系结构描述(必需的分析对象)

⚠️ SAAM 评估过程不包括属性模型构造(那是 ATAM 的步骤)。

可修改性评估

image.png

架构权衡分析方法 ATAM

让架构师明确如何权衡多个质量目标,参与者有评估小组、项目决策者和其他项目相关人。

ATAM被分为四个主要的活动领域,分别是场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中。

整个评估过程强调以属性作为架构评估的核心概念。主要针对性能、可用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。

ATAM方法采用效用树(Utility tree)这一工具来对质量属性进行分类和优先级排序。效用树的结构包括:树根-质量属性-属性分类-质量属性场景(叶子节点)。

需要注意的是,ATAM主要关注4类质量属性:性能、安全性、可修改性和可用性,这是因为这4个质量属性是利益相关者最为关心的。

image.png


ATAM 主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。

四大活动阶段:

  1. 场景和需求收集
  2. 架构视图和场景实现
  3. 属性模型构造和分析(核心步骤)
  4. 折中(权衡分析)

效用树(Utility Tree):

  • ATAM 的重要工具,树形结构从根到叶:树根 → 质量属性 → 属性分类 → 质量属性场景
  • 用于系统化分析架构质量属性,从抽象目标到具体场景分解

核心概念: 整个评估过程强调以属性作为架构评估的核心概念。场景从**风险承担者(Stakeholder)**的角度描述。


成本效益分析法 CBAM

🎯 CBAM 在 ATAM 基础上构建,核心依据是**投资回报率(ROI)**选择架构策略。是对 ATAM 的补充,在质量属性确定后,再从成本效益角度进行分析。

主要步骤:

  1. 整理场景
  2. 分配效用(为场景分配效用值)
  3. 形成"策略-场景-响应级别"的对应关系
  4. 使用内插法确定期望质量属性响应级别的效用
  5. 计算各架构策略的总收益
  6. 根据受成本影响的 ROI 选择架构策略

🎯 CBAM 关注的核心焦点:在考虑经济成本和效益的前提下,对架构策略进行优先级排序。

其他评估方法

SAEM 方法

SAEM方法。将软件架构看作,从两个角度来阐述它的评估模型,旨在为软件架构的质量评估创建一个基础框架。

SAABNet 方法

是一种用来以辅助架构的定性评估

和其他

其他

非功能性需求四分类

🎯 架构设计中的非功能性需求分为四类,用于指导架构策略选择。

分类含义典型示例
操作性需求与用户操作使用相关界面个性化定制、支持主流标准协议
性能需求响应时间、吞吐量、资源利用率响应时间 ≤ 3s、支持 ≥ 2G 缓存
安全性需求向合法用户服务、阻止非授权使用密码加密传输、超时重登验证
文化需求带有文化背景因素支持多语言(汉语/英语/法语)

ATAM vs SAAM vs CBAM 对比总表:

方法核心特点关键输入主要用途
ATAM质量属性建模与折中质量需求、场景多质量属性权衡
SAAM场景驱动的架构评估架构描述、问题声明可修改性评估
CBAM成本效益驱动的策略选择ROI分析、效用分配经济视角策略排序