← 返回导航

深入理解:架构评估

SAAM-ATAM-CBAM演进、敏感点/权衡点精确辨析

配速记页 03-evaluation 使用。

一、为什么架构需要「评估」

架构是一系列难以逆转的早期决策:数据库选型、服务边界、通信方式,返工成本随时间指数增长——越晚发现架构错误,代价越大(业界常引的结论:架构级缺陷在维护期修复的成本是需求期的 10-100 倍)。

但架构又只是「一堆文档和图」,没跑起来之前怎么知道好坏?答案是:用场景当探针。就像材料实验室不能等桥造好才测强度,而是用标准试件做破坏性实验——评估用「关键场景」去冲击架构描述,看它的响应。

二、三种方法:一条演进线

SAAM(1993)——「架构能支撑这些功能吗」 最早的正式方法。拿场景(主要是功能/修改场景)逐个套架构,看架构元素如何响应。发现了一个重要副产品:场景交互(两个场景落到同一模块 = 该模块承担多职责 = 修改时的风险点)。SAAM 把「耦合度」从直觉变成了可数的证据。

ATAM(2000)——「架构在质量属性间怎么权衡」 升级点有两个:一是引入效用树,让干系人的诉求(重要度 I × 难度 M)系统化排列,评估聚焦最关键场景;二是把分析目标从「能不能」升级为「敏感点、权衡点、风险、非风险」四种结论——架构决策的「体检报告」。

CBAM(2002)——「值得花这个钱吗」 ATAM 告诉你哪里有风险,CBAM 告诉你修复哪个风险的性价比最高。每个架构决策算 ROI(收益=风险消除×概率,成本=改造投入)。这是架构从技术走向经济学的标志——架构师最终要对「钱」负责。

三、四个关键概念的精确理解(案例题的得分点)

敏感点:对单个质量属性有显著影响的架构决策。

例:「消息队列的持久化策略」影响消息可靠性。

权衡点:对多个质量属性有影响、且方向相反的决策。

例:「同步刷盘」提可靠性、降吞吐。

风险:可能危及某质量属性的决策 + 理由

例:「订单库单点部署无冗余——若宕机则交易全停(可用性风险)」。

非风险:经分析确认满足需求的决策(注意:要有依据,不能是「应该没问题」)。

例:「读写分离后读 QPS 8000 < 单从库上限 1.2 万,满足性能需求」。

四个概念的关系(选择题考点):

四、关键洞察

  1. 评估的对象是「决策」不是「图纸」。新手评估架构只会说「这里画得不对」,ATAM 逼你问「这个决策影响什么属性、代价是什么」。
  2. 效用树的价值在排序不在罗列。I:高M:高的场景才值得深入分析——资源有限,评估也要讲 ROI(CBAM 思想反哺 ATAM)。
  3. 风险清单才是交付物。评估会议结束后,留下的不是「架构不错」的客套话,是按优先级排好的风险清单和改进建议。

五、连到你的实战

六、延伸阅读