乐于分享
好东西不私藏

【软件系统架构】系列十三:系统架构设计——系统架构评估方法

【软件系统架构】系列十三:系统架构设计——系统架构评估方法

1. SAAM(Software Architecture Analysis Method,场景驱动架构分析)

  • 定位:最早的架构评估方法(90 年代提出),主要分析 可修改性

  • 流程

  • 场景开发:收集典型修改场景(如”增加支付方式”)。

  • 架构描述:用组件/连接件等方式描述现有架构。

  • 单场景评估:逐个分析架构能否满足该修改场景。

  • 场景交互:考虑场景之间是否有冲突或耦合。

  • 总体评估:汇总修改成本、风险,形成结论。

  • 产出物:修改代价表(每个场景的修改复杂度)、架构适应性分析报告。

  • 优点:简单易用,强调需求-架构关系。

  • 缺点:主要针对”可修改性”,对性能、安全等其他属性覆盖不足。

  • 适用场景:早期原型/产品族演进评估,架构重构可行性分析。

2. ATAM(Architecture Tradeoff Analysis Method,架构权衡分析)

  • 定位:SAAM 的改进版,最常用的架构评估方法,关注多个质量属性。

  • 核心工具效用树(Utility Tree)

  • 根:系统总体目标

  • 一级分支:质量属性(性能/安全/可用性/可修改性等)

  • 二级分支:属性子特征(如性能→响应时间、吞吐量)

  • 叶子节点:具体场景(QAS),并为其打分(重要性、风险度)。

  • 目标:识别三类关键点

  • 敏感点:影响单一属性的关键设计点(如缓存对性能敏感)。

  • 权衡点:一个设计同时影响多个属性(如冗余既提高可用性也增加成本)。

  • 风险点:潜在隐患(如单点故障未被识别)。

  • 适用属性:性能、可用性、安全性、可修改性。

  • 场景类型

  • 用例场景(正常功能流程,如”用户下单响应 < 200ms”)

  • 增长场景(演进或扩展,如”支持新支付方式”)

  • 探测场景(极端或压力场景,如”在 10 倍流量下系统行为”)

  • 流程(简化版)

  • 确认业务驱动 → 质量属性 → 效用树

  • 收集并优先级化场景

  • 分析架构满足度 → 找敏感点、权衡点、风险点

  • 输出评估报告与改进建议

  • 产出物:效用树、风险清单、敏感点&权衡点清单、评估报告。

  • 优点:全面、系统化,广泛应用于工业界。

  • 缺点:过程相对复杂,需要多方参与(业务+开发+运维)。

  • 适用场景:企业级项目、跨部门架构评审、关键系统上线前。

3. CBAM(Cost Benefit Analysis Method,成本效益分析)

  • 定位:ATAM 的扩展版,在架构决策中引入 ROI(投资回报率)概念。

  • 核心思想:架构不是只看”能不能”,还要看”值不值得”。

  • 步骤

  • 整理并优先级化场景(和 ATAM 类似)。

  • 建立策略-场景-响应映射:每个策略对应哪些场景,以及带来的效益。

  • 分配效用并计算收益:给每个策略的”贡献”打分。

  • 扣除成本:估算开发/运维/硬件/培训成本。

  • 选择 ROI 最高的架构策略

  • 产出物:ROI 排序表、推荐实施路线。

  • 优点:架构决策与经济成本挂钩,利于说服管理层。

  • 缺点:成本/效益估算难度大,需要经验与数据支持。

  • 适用场景:大型系统、资源有限需做优先级取舍时。

4. 其他方法

方法 定位 特点
SAEM
软件架构评估方法
同时评估 内部属性(可维护性、可扩展性)与 外部属性(性能、可靠性)
SAABNet
基于贝叶斯网络的定性推理
用概率网络建模架构风险,适合不确定性分析
SACMM
架构修改性度量方法
度量架构在演进过程中的修改代价与复杂度
SASAM
静态架构对比方法
对比不同架构候选方案的静态特征
ALRRA
基于 FMEA 的可靠性风险评估
用失效模式与影响分析来量化架构可靠性风险
AHP
层次分析法
将定性架构决策转化为定量评分,常用于权重分配
COSMIC+UML
软件规模度量 + 建模
用 COSMIC 功能点与 UML 模型来验证架构的可维护性和演化能力

5. 架构评估方法演进图(SAAM→ATAM→CBAM→扩展方法)

6. 方法对比与选择建议

方法 关注点 复杂度 典型应用
SAAM
可修改性
原型评估、重构可行性分析
ATAM
综合质量属性 + 风险点
中等偏高
企业级评审、关键系统上线前
CBAM
架构决策 ROI
大型项目、投资决策、优先级排序
其他方法
特殊属性或研究方法
低~中
学术研究、特定领域

7. 总结

(1)SAAM → ATAM → CBAM 构成三层进阶链路:

  • SAAM:可修改性(基础)
  • ATAM:综合质量属性 + 风险识别
  • CBAM:引入 ROI,做经济性决策

(2)评估产出物比过程更有价值:效用树、风险点清单、ROI 排序,可作为团队后续改进指南。

(3)适配场景选择方法:早期选 SAAM,企业应用 ATAM,预算优先级用 CBAM,学术/定量分析用其他方法。