乐于分享
好东西不私藏

冲刺Day2:软件架构设计高频考点(下)

冲刺Day2:软件架构设计高频考点(下)

引言

昨天的冲刺Day1我们梳理了软件架构风格与设计模式,今天继续深入架构评估与质量属性这一核心领域。ATAM(架构权衡分析方法)是历年考试的高频考点,经常以案例分析题的形式出现。掌握这套方法论,不仅能应对考试,更能提升你在实际项目中的架构决策能力。

01 高频考点清单:5大核心考点速记

考点一:ATAM架构权衡分析方法

核心概念:ATAM(Architecture Tradeoff Analysis Method)是一种系统化的架构评估方法,通过分析架构方案对多个质量属性的影响,找出架构决策中的权衡点。
口诀

ATAM四步走,场景驱动找权衡场景→刺激→响应→度量

三步流程
需求收集:收集利益相关者的质量属性需求
架构视图创建:建立架构的多个视图(逻辑视图、进程视图、部署视图)
质量属性分析:分析架构对各质量属性的影响
权衡分析:识别多个质量属性之间的冲突和权衡

考点二:SAAM简单同行评估方法

核心概念:SAAM(Software Architecture Analysis Method)是最早的架构评估方法之一,主要用于评估架构的可修改性。
与ATAM的区别
口诀

SAAM评修改,同行简单看问题→场景→评分→改进

考点三:CBAM成本效益分析方法

核心概念:CBAM(Cost Benefit Analysis Method)是ATAM的扩展,在评估架构时加入成本和收益分析。
核心思想
每个架构决策都有成本(开发成本、维护成本)
每个架构决策都有收益(质量提升、业务价值)
选择性价比最高的架构方案
口诀

CBAM算收益,成本效益比一比投资回报率,架构决策有依据

考点四:六大质量属性

口诀

性能安全可用易,修改测试是六艺策略对应要记牢,架构决策不迷茫

考点五:架构决策与权衡分析

核心原则
没有完美的架构:每个架构决策都有利有弊
权衡是必须的:在多个质量属性之间做出取舍
基于场景决策:根据具体业务场景选择合适的架构
常见权衡场景
口诀

架构权衡看场景,质量属性互影响鱼与熊掌难兼得,场景驱动是方向

02 ATAM评估流程图解

ATAM评估的四个阶段
┌─────────────────────────────────────────────────────────────┐│                    ATAM架构评估流程                          │└─────────────────────────────────────────────────────────────┘【第一阶段:准备与启动】      ↓┌─────────────────────────────────────────────────────────┐│  1. 评估团队组建                                          ││  2. 利益相关者识别                                        ││  3. 评估计划制定                                          ││  4. 架构文档收集                                          │└─────────────────────────────────────────────────────────┘      ↓【第二阶段:需求获取】      ↓┌─────────────────────────────────────────────────────────┐│  1. 收集业务目标                                          ││  2. 收集质量属性需求(场景)                               ││  3. 优先级排序                                            ││  4. 建立质量属性树                                        │└─────────────────────────────────────────────────────────┘      ↓【第三阶段:架构分析与评估】      ↓┌─────────────────────────────────────────────────────────┐│  1. 架构视图创建                                          ││  2. 质量属性效用树构建                                    ││  3. 架构方法分析                                          ││  4. 风险决策点识别                                        ││  5. 非风险决策识别                                        ││  6. 敏感点和权衡点分析                                    │└─────────────────────────────────────────────────────────┘      ↓【第四阶段:结果报告】      ↓┌─────────────────────────────────────────────────────────┐│  1. 风险主题报告                                          ││  2. 非风险主题报告                                        ││  3. 敏感点与权衡点报告                                    ││  4. 评估结论与建议                                        │└─────────────────────────────────────────────────────────┘
关键概念解析
1. 质量属性效用树
质量属性树示例:├── 性能│   ├── 响应时间 (< 2秒)│   └── 吞吐量 (1000 TPS)├── 安全性│   ├── 数据加密 (AES-256)│   └── 访问控制 (RBAC)└── 可用性    ├── 运行时间 (99.99%)    └── 故障恢复 (< 5分钟)
2. 风险点 vs 非风险点

03 5道精选真题

【真题1】ATAM评估的核心目的(2023年下半年)

题目:在架构权衡分析方法(ATAM)中,评估团队首先需要( )。
A. 确定评估方法
B. 收集质量属性需求
C. 分析架构决策
D. 识别利益相关者
答案:D
解析
ATAM评估的第一步是识别利益相关者,因为不同的利益相关者有不同的质量属性优先级。只有明确了利益相关者及其关注点,才能有效地收集和分析质量属性需求。
知识点:ATAM四阶段的第一步是”准备与启动”,核心任务是组建评估团队和识别利益相关者。

【真题2】质量属性场景描述(2022年下半年)

题目:在软件架构评估中,质量属性场景的描述通常包含刺激源、刺激、环境、制品、响应、响应度量等六部分。”用户请求在3秒内得到响应”可表示为( )。
A. 刺激源:用户;刺激:请求;响应:3秒内
B. 刺激源:用户;刺激:3秒内;响应:请求
C. 刺激源:请求;刺激:用户;响应:3秒内
D. 刺激源:3秒;刺激:响应;响应:请求
答案:A
解析
质量属性场景的六要素:
刺激源:产生刺激的实体 → 用户
刺激:到达系统的输入 → 请求
环境:刺激发生的条件 → 正常运行状态
制品:被刺激的系统组件 → 系统
响应:刺激发生后系统的动作 → 处理请求
响应度量:衡量响应的指标 → 3秒内
知识点:质量属性场景的标准描述格式是备考重点。

【真题3】架构权衡分析(2023年上半年)

题目:某系统对可用性要求极高(99.99%),但考虑到成本因素,最终采用了单服务器部署方案。以下说法正确的是( )。
A. 该决策是正确的,因为成本控制很重要
B. 该决策存在风险,因为单服务器无法满足高可用性要求
C. 该决策是正确的,因为高可用性可以通过软件实现
D. 该决策需要更多信息才能判断
答案:D
解析
架构决策需要综合考虑多个因素。仅根据可用性要求和成本因素无法判断决策是否正确,还需要了解:业务恢复时间要求、数据重要性、故障影响范围、是否可以通过其他方式(如软件架构)实现高可用性
知识点:架构权衡分析需要基于完整信息,不能仅凭单一因素判断。

【真题4】SAAM与ATAM的区别(2021年下半年)

题目:与SAAM方法相比,ATAM方法的优势主要体现在( )。
A. 评估成本更低
B. 评估周期更短
C. 能够分析多个质量属性之间的权衡
D. 只需要架构师参与
答案:C
解析
ATAM(架构权衡分析方法)的核心优势是多质量属性权衡分析,这是SAAM(简单同行评估方法)所不具备的。SAAM主要用于评估可修改性,而ATAM能够系统性地分析多个质量属性之间的相互影响和权衡关系。
知识点
SAAM:单质量属性(主要评估可修改性)
ATAM:多质量属性权衡分析

【真题5】CBAM成本效益分析(2022年上半年)

题目:在CBAM方法中,架构决策的成本效益分析需要考虑( )。
① 开发成本 ② 运行成本 ③ 维护成本 ④ 业务价值
A. ①②③
B. ①②④
C. ①③④
D. ①②③④
答案:D
解析
CBAM(成本效益分析方法)全面考虑架构决策的所有相关成本和收益:
成本:开发成本、运行成本、维护成本
收益:业务价值(质量提升、竞争优势等)
只有综合考量,才能得出性价比最优的架构决策。
知识点:CBAM是ATAM的扩展,在评估中加入了经济因素分析。

04 答题模板:架构评估类题目答题框架

模板一:ATAM评估流程描述题

答题框架
ATAM评估分为以下四个阶段:1. 准备与启动阶段   - 组建评估团队   - 识别利益相关者   - 制定评估计划   - 收集架构文档2. 需求获取阶段   - 收集业务目标   - 获取质量属性需求   - 建立质量属性效用树3. 架构分析阶段(核心)   - 创建架构视图   - 分析架构方法   - 识别风险点和敏感点   - 进行权衡分析4. 结果报告阶段   - 编写风险/非风险报告   - 提出改进建议

模板二:架构决策权衡分析题

答题框架
对于该架构决策,我的分析如下:【决策内容】XXX架构方案【优势】- 质量属性A得到提升(如:性能提升20%)- 质量属性B得到保障(如:安全性符合要求)【劣势】- 质量属性C可能下降(如:可用性降低)- 开发成本增加【权衡结论】根据当前业务场景(XXX),建议(接受/不接受)该决策。理由:优先满足的质量属性是XXX,因此在XXX方面做出妥协是可接受的。【替代方案】(如有)可以考虑YYY方案作为折中。

模板三:质量属性场景描述题

答题框架
该质量属性场景的六要素如下:

总结

今天的冲刺Day2,我们学习了:
三大架构评估方法:ATAM、SAAM、CBAM的核心概念和区别
六大质量属性:性能、可用性、安全性、可修改性、易用性、可测试性
架构权衡分析:基于场景的决策方法论
ATAM评估流程:四阶段系统化评估方法
答题模板:应对不同题型的标准化框架