2024 年 5 月 25 日这一场有个值得记一笔的背景:以前系统架构设计师一年只有下半年一次,这一年官方在 3 月宣布上半年也开考(我在搜索结果摘要里看到一位考生的心得写道“202405 是架构师改版以来的第二次考试,往年只能每年 11 月考试,今年官方 3 月突然宣布 5 月也可以直接考”,这句我没有打开原文核对,仅供参考)。于是这场成了架构师“上半年开考”的第一战,也是机考时代的第二战。监考很严,据考生说草稿纸不许带出考场,所以网上所有“真题”都是回忆版。这篇我做的事和前两篇一样:只用我真实读到的页面,有答案的给答案并写自己的解析,来源之间打架的标出来,找不到的老实写“待核实”。
版权与使用说明:真题版权归考试主办方所有。本文对每道题只做“题意概括 + 答案要点”,附我自己写的解析,不整页搬运原卷。回忆版的题干、选项和答案都可能有误(本文会指出我发现的几处),请以官方发布及正版真题为准。
一、场次概况
| 项目 | 内容 | 来源与说明 |
|---|---|---|
| 考试日期 | 2024 年 5 月 25 日 | 环球网校“2024 年 5 月 25 日架构设计师考试考点内容”页面写明;CSDN 考生文章也称“2024 年 5 月 25 日考系统架构设计师”。 |
| 科目 | 综合知识(75 题 / 75 分)、案例分析(5 题,第 1 题必答,共 75 分)、论文(4 选 1,75 分) | 环球网校页面写明案例与论文各 75 分;必答题是“系统架构评估”,见 CSDN 回忆。 |
| 合格标准 | 各科满分的 60%(45 分),需一次通过所有科目 | 环球网校 2024 上半年综合知识汇总页写明“试卷满分的 60%”“单科或两科合格的成绩不可以保留”。 |
| 成绩公布 | 考后约 2 个月内 | 同上页面表述,以官方公告为准。 |
| 难度感受 | 综合知识中等 | CSDN rzleilei 估计:约 30 题练过、20 题凭常识可做、25 题靠运气,这是个人感受。 |
二、综合知识:回忆版答案速对与逐题解析
这一场的综合知识,我读到了三个相互有重叠的回忆版:CSDN 的 YooYee233(“完整版”,含选项与答案,共 60 多个条目)、rzleilei(“复原程度 90%”,条目与上一篇几乎相同,开头说明是群友提供加记忆整理)、Nanki_(40 条考点简记,带一部分自己的判断)。三者的题干与答案在大部分条目上互相一致,这是本场比 2023 下半年更可信的地方。但要注意:YooYee 与 rzleilei 的条目几乎是逐字相同的(应是转载或同源),真正独立的交叉验证主要来自 Nanki_(约 35 条与前者重合,答案一致)。另外我打开过一页标题带“2024 上半年综合知识真题(解析版)”的 CSDN 专栏文章,它只公开了 1–20 题的字母答案表(其余需付费),而且题号顺序与上面几个回忆版无法对应(机考题目顺序会打乱),所以我没有采用这张表。
2.1 答案速对表
第一部分(回忆版只记了要点,没有选项字母):
| 编号 | 考点 | 答案要点 | 可信度 |
|---|---|---|---|
| A1 | 模拟信号采样(声源 500Hz) | 1000Hz | 一致(奈奎斯特) |
| A2 | 交换机工作层次 | 数据链路层 | 一致 |
| A3 | 嵌入式三层中间件的作用 | 屏蔽底层操作系统差异 | 一致 |
| A4 | 与 R∩S 等价的表达式 | R−(R−S) | 一致(两源) |
| A5 | 不属于创建型设计模式 | Bridge(桥接,结构型) | 一致(两源) |
| A6 | 数据流风格的特点 | 数据在管道中传输 | 一致 |
| A7 | 数据流风格中处理数据的节点 | 过滤器 | 一致 |
| A8 | 容灾等级标准共六级,最高级 | 数据零丢失和远程集群支持 | 一致 |
| A9 | 不属于专利客体 | 商标 | 一致(两源) |
| A10 | 专利保护范围以( )为主 | 回忆写“权利说明书”;Nanki_ 写“权利要求说明书” | 冲突(正确应为权利要求书) |
| A11 | 时钟同步编码技术 | 曼彻斯特编码 | 一致 |
| A12 | 平均故障检测时间属于 | MTTD | 一致 |
| A13 | 属于虚拟化技术的 | OpenVZ、Xen、KVM | 一致 |
| A14 | OSI 七层中不提供安全服务的层次 | 会话层(YooYee、rzleilei);Nanki_ 记“物理层” | 冲突(我倾向会话层) |
| A15 | 等待/就绪/执行三状态中不可能发生的转换 | 等待态 → 执行态 | 一致(两源) |
| A16 | TBAC 的组成 | 工作流、授权结构体、受托人集、许可集 | 一致 |
| A17 | RBAC / OBAC / TBAC 三选一的某题 | 回忆写“RBAC”,题干丢失 | 待核实 |
| A18 | 最早形成文档并广泛使用的架构分析方法 | SAAM | 一致 |
| A19 | 属于 ADL 的 | UniCon、Rapide、Darwin、Wright 等 | 一致 |
| A20 | 净室工程描述错误的 | “不需要传统测试” | 一致 |
| A21 | 发现表达式错误和复杂算法逻辑问题属于 | 静态测试 | 一致 |
| A22 | 不仅关心功能还关心代码逻辑的测试 | 回忆写“灰度测试”(应为灰盒测试) | 来源笔误 |
| A23 | 4+1 视图不包含 | 测试视图 | 一致 |
第二部分(回忆版带选项,有选项字母;选项顺序以回忆版为准,不保证与考场一致):
| 编号 | 考点 | 答案 |
|---|---|---|
| B1 | 分页存储管理中页号到物理块号的映射 | B(页表) |
| B2 | 构件组装方式不包括 | D(循环) |
| B3 | 反规范化设计属于数据库设计的哪个阶段 | C(逻辑设计) |
| B4 | 关于软件测试说法错误的 | C(软件测试可以证明被测对象的正确性) |
| B5 | 数字孪生中包括描述、诊断、预测、决策四方面的层 | D(共性应用层) |
| B6 | 物联网应用三层 | D(感知层、网络传输层、应用层) |
| B7 | EAI 从下至上四个服务层次 | D(通讯服务、信息传递与转化服务、应用连接服务、流程控制服务) |
| B8 | 知识产权法属于哪类法 | D(民法) |
| B9 | 满足所有非主属性对主码完全依赖的标准 | B(2NF) |
| B10 | X、Y 均为线性规划最优解,λX+μY 也是最优解的条件 | C(λ,μ≥0 且 λ+μ=1) |
| B11 | UML 用例之间的关系不含 | B(聚合关系) |
| B12 | 提供服务注册功能的 | A(UDDI) |
| B13 | 不属于事务特性的 | D(并发性) |
| B14 | R 有 m 个元组、S 有 n 个,笛卡尔积元组数 | D(m×n) |
| B15 | 最先进入队列的进程先分配处理机的调度算法 | C(先来先服务) |
| B16 | 多道程序设计提高 CPU 和外设的 | A(利用率) |
| B17 | 嵌入式实时系统的两种典型架构模型 | C(层次化模式架构和递归模式架构) |
| B18 | 12 个作业的项目最短工期 | A(26 天) |
| B19 | 安全性:保证信息不泄露给未授权者 | D(机密性) |
| B20 | 安全性:双方不能否认发送/接收行为 | C(不可否认性) |
| B21 | 安全保护等级划分准则中最高的 | D(访问验证保护级) |
| B22 | 软件可靠性管理中不属于需求分析阶段的工作 | C(可靠性建模) |
| B23 | 关注正常工作时间所占比例的质量属性 | A(可用性) |
| B24 | 关注与其他系统交换数据难易程度的质量属性 | C(互操作性) |
| B25 | ATAM 设计之初主要关注的四种质量属性 | B(性能、安全性、可修改性、可用性) |
| B26 | 构件组装常见方式不包括 | D(循环) |
| B27 | 提供接口是另一构件请求接口的子集属于 | D(操作不完备) |
| B28 | 精确描述质量属性的手段 | A(质量属性场景) |
| B29 | 描述激励到达后所采取行动的要素 | C(响应) |
| B30 | REST 描述不正确的 | B(URI 和资源是多对多关系) |
| B31 | 按生命周期划分质量属性 | B(开发期和运行期质量属性) |
| B32 | 软件复用中构造可复用资产的阶段 | A(获取可复用的资产) |
| B33 | 关于构件描述不正确的 | C(构件是通用实体,不能配置以适应应用系统) |
| B34 | 黑板体系结构风格属于哪一类的子风格 | A(以数据为中心风格) |
| B35 | 三层 C/S 中存在于客户机上的 | C(表示层) |
| B36 | DSSA 设计中获得领域模型的阶段 | D(领域分析) |
| B37 | 敏捷核心思想说法错误的 | C(敏捷方法是适应型、可预测型) |
| B38 | 系统测试的依据 | B(软件需求规格说明书) |
| B39 | 关于净室软件工程不正确的 | B(无需进行传统的模块测试) |
| B40 | 良好的架构设计不具有的作用 | C(使系统设计更符合需求) |
| B41 | 英语题:需求工程与软件体系结构 | 只有题材,答案待核实 |
统计(我按上面两张表人工数的):第一部分 23 个条目(其中 A17 无法还原,A10、A14 存在冲突,A22 有笔误),第二部分 40 个有答案的条目,加上有两个空的题目按题号展开,合计约 63 个小题有答案要点,约 12 题没有任何信息(含英语题)。此外 Nanki_ 还记了几条上面没出现的:第 17 条“UML:构件图不属于需求分析常用的图”、第 21 条“视角描述不同的架构”、第 26 条“不正确选项:架构设计一定要基于某个特定架构风格”、第 28 条“事件驱动不正确:一个事件的发生不会影响另一个事件”、第 15 条“线性规划”、第 24、25 条“管道”“应用服务器,客户机在表示层”等,我放在解析里一并说明,这些只有一个来源,标注为单源。
2.2 逐题解析(按知识块折叠)
A 组:操作系统、数据库、网络与计算机基础
A1:采样定理
奈奎斯特采样定理:要无失真还原模拟信号,采样频率必须不低于信号最高频率的 2 倍。信号 500Hz,所以至少 1000Hz,答案 1000Hz。记忆:“采样 ≥ 2 × 最高频率”;常见的 CD 音质 44.1kHz 就是为了覆盖人耳约 20kHz 的上限。另一个相关公式:数据量 = 采样频率 × 量化位数 × 声道数 × 时间 ÷ 8(字节)。
A2:交换机层次
二层交换机工作在数据链路层,依据 MAC 地址转发;路由器工作在网络层,依据 IP;集线器在物理层。三层交换机=二层交换+路由功能。Nanki_ 记的“二层交换机,数据链路层”与此一致。
A4:R∩S 的等价表达
关系代数里,R∩S = R−(R−S)。理解:R−S 是“在 R 里但不在 S 里”的元组,再从 R 里减掉这些,剩下的就是“既在 R 又在 S 里”的。同理 R∩S = S−(S−R)。笛卡尔积 R×S 的元组数是 m×n(B14),属性数是两者之和。
A8(部分)与 A15:进程状态与调度
三状态模型:就绪(等 CPU)、执行(占用 CPU)、等待/阻塞(等 I/O 等事件)。合法转换:就绪→执行(调度)、执行→就绪(时间片用完)、执行→等待(请求 I/O)、等待→就绪(事件发生)。等待→执行是不可能的,必须先回就绪队列等调度。YooYee 的题干里,选项为“运行到等待、运行到就绪、等待到执行、就绪到执行”,答案是 C(等待到执行)。
B1:分页地址映射
分页存储管理靠页表把逻辑页号映射到物理块号;分段管理靠段表。PCB 是进程控制块,JCB 是作业控制块,均与地址映射无关。
B15、B16:调度与多道程序
先来先服务(FCFS):按到达顺序,非抢占、简单公平,但对短作业不利;短作业优先(SJF)平均等待时间最短,但有饥饿风险;时间片轮转适合分时;高响应比优先 = (等待时间+服务时间)/服务时间,兼顾长短。多道程序设计的目的:让 CPU 和外设并行,提高利用率。
A11:曼彻斯特编码
曼彻斯特编码在每个比特中间有电平跳变,既表示数据又携带时钟,所以是自同步/时钟同步编码,代价是带宽翻倍(波特率是数据率的 2 倍)。差分曼彻斯特常用于令牌环;以太网 10Base-T 用曼彻斯特。
B3、B9、B13、B14:数据库四连
- 反规范化(B3):为了提高查询性能,故意引入冗余,属于逻辑设计阶段的调整(需求分析→概念设计→逻辑设计→物理设计)。两个来源一致。
- 完全依赖(B9):所有非主属性对码完全函数依赖 → 满足 2NF。
- 事务特性(B13):ACID=原子性、一致性、隔离性、持久性,没有“并发性”。
- 笛卡尔积(B14):m×n。
回链:数据库与关系代数见《综合知识精讲(下)》。
B10、B18:两道数学题
B10:线性规划的可行域是凸集,若 X、Y 都是最优解,它们的凸组合 λX+μY(λ,μ≥0 且 λ+μ=1)仍在可行域内且目标值相同,所以也是最优解,答案 C。B18:最短工期 26 天(A),对应的网络图没还原,我只能转述答案;这类题的通法是找关键路径,见 2023 下半年篇 A 组对进度计算的说明,或《2025 下半年篇》里的工作量计算。
B 组:信息安全、容灾与法规
A14:OSI 哪一层不提供安全服务(两源 vs 一源冲突)
回忆有两种说法:YooYee、rzleilei 写会话层,Nanki_ 写“没有加密功能,物理层”。我的判断倾向会话层:按 ISO 7498-2(X.800)给出的安全服务与层次对应表,物理层可提供连接机密性和业务流机密性,网络层提供认证、访问控制、机密性、完整性,传输层类似,应用层提供全部服务,而会话层、表示层不单独提供安全服务(表示层的功能由应用层实现)。所以“物理层没有加密”与标准表不符,但也可能是 Nanki_ 对另一道选项的记忆。结论:存在分歧,倾向会话层,遇到原题以选项为准。
A16、A17:访问控制
TBAC(基于任务的访问控制)的组成:工作流、授权结构体、受托人集、许可集。TBAC 强调“授权随任务状态动态变化”,适合工作流系统。对照:DAC(自主)、MAC(强制)、RBAC(基于角色)、ABAC(基于属性)。A17 题干丢失,我不猜。
A8:容灾等级
国家标准把容灾能力分为 6 级,从低到高大致是:基本支持、备用场地支持、电子传输和部分设备支持、电子传输及完整设备支持、实时数据传输及完整设备支持、数据零丢失和远程集群支持(第 6 级)。我这里的前几级名称来自我对标准的记忆,来源只给了最高级,前五级的措辞请自行核对。
B19–B21:安全属性与保护等级
- 机密性:信息不泄露给未授权的用户、实体或过程。
- 不可否认性:通信双方不能否认其发送或接收的行为,靠数字签名和时间戳实现。
- 等级:GB 17859 把计算机信息系统安全保护分为 5 级:用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级、访问验证保护级(最高)。
A9、A10:专利(含一处冲突)
A9:商标不属于专利客体,专利保护的是发明、实用新型和外观设计。A10:专利保护范围“以( )为主”,YooYee、rzleilei 记“权利说明书”,Nanki_ 记“权利要求说明书”。我核对到的法条是《专利法》第 64 条:发明或者实用新型专利权的保护范围以其权利要求的内容为准,说明书及附图可以用于解释权利要求的内容。所以正确概念是权利要求书,“权利说明书”是回忆者的笔误,冲突以 Nanki_ 的表述为准。
B8:知识产权属于民法
知识产权是民事权利,属民法范畴,答案 D。这个选项组有四个法律部门(行政法、刑法、经济法、民法),按“权利属性”判断即可。
C 组:软件工程、测试与 UML
A20、B39:净室软件工程
净室软件工程以正确性验证 + 统计质量控制(基于使用模型的统计测试)为特征,目标是“以合理成本开发高质量软件”,理论基础是函数理论和抽样理论。两个回忆条目说的是同一件事:A20 记“描述错误的是:不需要传统测试”,B39 的选项“无需进行传统的模块测试”被标为不正确。也就是说命题人认为“净室不需要传统模块测试”是错误说法(净室同样需要测试,只是测试方式是统计测试,且由独立小组依据使用模型进行)。其余三个选项(合理成本开发高质量软件、理论基础是函数与抽样理论、正确性验证大幅提高质量)是正确的。记忆:净室=正确性验证+统计测试,不是不测试。
A21、A22、B4:测试类型与说法
- 静态测试(A21):不运行程序,靠人工评审或工具检查代码,能发现表达式错误、复杂算法逻辑问题。
- 灰盒(A22):既看输入输出又看内部逻辑;回忆里的“灰度测试”是笔误(2023 下半年第 7 题是“灰盒测试”)。
- B4:“软件测试可以证明被测对象的正确性”是错的。Dijkstra 名言:测试只能证明缺陷存在,不能证明缺陷不存在。其他选项都对:每个用例必须有预期输出;还要包含非法输入;二八定律(80% 的错误集中在 20% 的模块)。
- B38:系统测试的依据是需求规格说明书(对照:单元测试依据详细设计,集成测试依据概要设计,验收测试依据需求与用户手册等)。
A23:4+1 视图
Kruchten 的 4+1 视图:逻辑视图、进程视图、开发视图、物理视图,加上场景(用例)视图。没有“测试视图”,答案正确。
B11:UML 用例之间的关系
用例之间有包含(include)、扩展(extend)、泛化(generalization)三种关系,没有“聚合”。Nanki_ 还提示:选项里的“继承关系”其实就是泛化,所以聚合才是答案。
B22:可靠性管理
需求分析阶段应当:分析影响可靠性的因素、确定可靠性目标、确定验收标准;而可靠性建模属于设计/测试评估阶段,答案 C。
B37:敏捷
“敏捷方法是适应型、可预测型”是错的,敏捷是适应型,而不是可预测型(预测型是传统的计划驱动方法)。敏捷遵循迭代增量、以人为本、以原型思想为基础,这三句都对。2023 下半年第 16 题考的是“以用例为中心”,两场合起来背就全了。
B40:良好的架构不具有的作用
“使系统设计更符合需求”不是架构的作用——需求是输入,架构是对需求(尤其是质量属性)的响应;架构的好处是降低理解成本、提高复用、提高可靠性和可维护性。答案 C。
D 组:架构风格、评估与质量属性
A5、A6、A7:设计模式与数据流风格
Bridge(桥接)是结构型,所以不属于创建型(创建型 5 个:抽象工厂、工厂方法、单例、建造者、原型;见《2025 下半年》的三分类表)。数据流风格:数据在管道中传输,处理数据的节点叫过滤器。另一个子风格是批处理序列。回忆里还有一条“管道:……”,含义同此。
A18、B25:架构评估
SAAM 是最早形成文档并广泛使用的评估方法。ATAM 设计之初主要关注四种质量属性:性能、安全性、可修改性、可用性(注意不含“可测试性”),选项 B。
A19:ADL
架构描述语言(ADL)代表:UniCon、Rapide、Darwin、Wright、ACME、AADL 等。它们用形式化方式描述构件、连接件与配置。
B28、B29:质量属性场景
精确描述质量属性用质量属性场景(效用树是组织手段)。场景的六要素是刺激源、刺激、环境、制品、响应、响应度量,“刺激到达后采取的行动”是响应。这题是后面案例 1 第 3 问的基础。
B23、B24、B31:质量属性分类
- 可用性:系统在一定时间内正常工作的时间所占比例(A = MTTF/(MTTF+MTTR))。
- 互操作性:与其他系统交换数据、调用服务的难易程度。
- 按生命周期:开发期质量属性(可修改性、可移植性、可重用性、可测试性等)与运行期质量属性(性能、安全性、可用性、易用性等)。
B30:REST
REST 是一种设计风格而非架构,以资源为中心,状态转移借助 HTTP 方法实现(GET、POST、PUT、DELETE)。“URI 和资源是多对多关系”不对:URI 是资源的标识,通常一个 URI 唯一对应一个资源,而同一资源可有多个表示。
B12:UDDI
Web 服务三件套:SOAP(消息格式)、WSDL(服务描述)、UDDI(服务注册与发现)。服务注册找 UDDI。回忆里选项写成“SOAL”是笔误。
B34、B35:黑板与 C/S
黑板体系结构属于以数据为中心(仓库)风格的子风格(教材里仓库风格包含数据库系统、超文本系统、黑板系统)。三层 C/S 里,整个应用逻辑在应用服务器,客户机只剩表示层。
B36、B32:领域工程与复用
DSSA 设计中领域分析阶段的主要目标是获得领域模型(与 2023 下半年第 53–54 题呼应)。软件复用三阶段:获取可复用资产(构造、开发可复用资产)、管理可复用资产、使用可复用资产。
A3、B17:嵌入式
嵌入式软件分应用层、中间件(系统服务层)、操作系统/驱动层,中间件的作用是屏蔽底层操作系统和硬件的差异,为应用提供统一接口。B17 选项“层次化模式架构和递归模式架构”是回忆给出的答案,这题我无法再用教材独立核对,按来源。
Nanki_ 的单源条目
- “事件驱动不正确:一个事件的发生不会影响另一个事件”——事件驱动风格里事件可以触发其他事件处理器,彼此有关联,所以“不影响”是错的。
- “系统架构风格不正确选项:架构设计一定要基于某个特定架构风格”——实际上架构设计可以组合多种风格,也可以不套用风格,“一定”说得太绝对。
- “构件图不属于需求分析常用的图”——构件图属于设计阶段。
- “体系结构演化:修改、增加或删除构件、更新构件间的相互作用、构件组装与测试”——演化的具体活动。
E 组:构件与新技术
B2、B26、B27、B33:构件
构件组装有顺序、层次、叠加三种,没有“循环”,所以“不包括”的是循环(同一知识点两题,各来源一致)。接口不兼容有三类:参数不兼容、操作不兼容、操作不完备;若一个构件的提供接口只是另一个构件请求接口的子集(对方要的你没全给),属于操作不完备。B33 “构件是通用实体,不能配置以适应应用系统”是错的,因为构件可以通过配置接口适应具体应用;“二进制形式、无需部署前编译”“元数据是构件本身相关数据”“独立软件单元”都是正确的。
A13:虚拟化
OpenVZ(容器级)、Xen(半虚拟化/裸金属型 hypervisor)、KVM(基于 Linux 内核的全虚拟化)都属于虚拟化技术,这题是送分题。Nanki_ 也记了“云计算虚拟化技术:OpenVZ、Xen、KVM”。
B5、B6、B7:数字孪生、物联网与 EAI
- 数字孪生:描述、诊断、预测、决策四个方面在共性应用层(D)。与 2023 下半年案例第 5 题的“数字孪生概念、技术选型”互相呼应,说明这是连续两场的热点。
- 物联网:感知层、网络传输层、应用层(D)。
- EAI:回忆里四个选项的文字是同一批词的不同排列,标的答案 D 的顺序是“通讯服务、信息传递与转化服务、应用连接服务、流程控制服务”。EAI 四个层次自下而上的教材顺序我记为:通信服务、信息传递(转换)服务、应用连接服务、流程控制服务,与 D 一致,但选项字母以卷面为准。
B41:英语题
英语题主题是“需求工程和软件体系结构(Requirements engineering and software architecture)”,5 个空左右,具体选项我没读到,答案待核实。
2.3 综合知识小结
- 本场综合知识的重点很集中:构件组装(两题)、质量属性(多题)、架构评估、净室与测试、数据库与 OS。
- 出现了 4 处冲突或笔误:专利保护范围(A10)、OSI 无安全服务的层(A14)、灰度/灰盒(A22)、SOAL/SOAP(B12)。
- 出题有重复模式:同一个知识点常常拆成两个空出两题(安全性、可用性与互操作性、构件组装、质量属性场景各一组)。
三、案例分析:五题还原
案例这一科,我读到了三个回忆整理:YooYee233(案例一、二、三、五,以及论文)、m0_61635017(案例一至五,带较详细的答案,并注明“此处有争议”“仅供参考”“来源于网络”)、rzleilei(案例一、三、四、五的题干要点)。另外环球网校的“考点总结”页给出了五题的分类。五题的考点在各来源间基本一致,只有第 5 题“网络通信设计”与“系统设计/存储”的叫法不同。
| 题号 | 考点 | 小问分值 | 可信度 |
|---|---|---|---|
| 1(必答) | 系统架构评估:微服务优缺点、质量效用树填空、质量属性场景六要素 | 7+6+12 | 三源一致 |
| 2 | UML:序列图消息、补全、交互图选取原则、组合片段 | — | 两源一致(分值未见) |
| 3 | 分布式锁:MySQL 锁缺点、Redis 锁死锁场景、ZSet 命令 | 9+10+6 | 三源一致 |
| 4 | 嵌入式(车载):SOME/IP、DDS、规控流程 | 9+6+10 | 两源(m0_61635017、rzleilei 提到第四题嵌入式) |
| 5 | 系统设计:存储架构图填空、MongoDB、冷热数据 | 11+10+4 | 三源一致 |
注:环球网校页面把五题分类为“质量属性效用树与微服务架构 / 软件系统建模与 UML 交互图 / Web 系统架构设计 / 数据存储设计、分布式锁与 Redis 命令 / 网络通信设计”,与上面回忆顺序不完全对应(它把“Web 系统”和“网络通信设计”单列)。我判断这是对同五题的不同归类,题序以回忆者为准,但无法完全核实,列入冲突项。
3.1 案例 1(必答,25 分):系统架构评估
问题 1(7 分):微服务架构及其与单体的对比、优缺点
题意:简述微服务架构,对比单体架构与微服务架构,并说明微服务的优缺点。
参考答案要点(两份回忆的答案一致,下面用我自己的话整理):
| 维度 | 单体架构 | 微服务架构 |
|---|---|---|
| 结构 | 一个应用整体构建、整体部署 | 拆成多个小型、独立部署的服务,围绕业务能力划分,轻量级通信(HTTP/REST、消息) |
| 部署与扩展 | 整体发布、整体扩容 | 各服务独立发布、按需独立扩容 |
| 技术栈 | 统一 | 可异构,每个服务选最合适的技术 |
| 数据 | 通常共享一个数据库 | 每个服务拥有自己的数据 |
| 复杂性 | 应用内部复杂,运维简单 | 应用内部简单,分布式与运维复杂 |
优点:独立部署与扩展、技术多样性、故障隔离、小团队自治、代码更聚焦。缺点:分布式系统复杂度(服务发现、治理、调用链)、数据一致性(分布式事务)、网络通信开销与延迟、部署与测试复杂、运维与监控成本高。答题时每条要写“现象 + 原因”,比如“数据一致性难:各服务独立库,跨服务事务要靠 Saga/最终一致”。
问题 2(6 分):质量效用树填空
题目给了一棵质量效用树,挖了 6 个空。回忆者说“忘了挖了哪几个空”,只记得涉及安全性、可用性、功能性、可修改性几个质量属性。我不具体填,只讲做法:效用树从“效用”出发,分解到一级质量属性(性能、可用性、安全性、可修改性、易用性等),再细分为属性分类,叶子是具体的质量属性场景;做题时根据叶子场景的内容反推它属于哪个质量属性:比如“断电后 10 秒内重启”→可用性;“用户登录后数据加密传输”→安全性;“新增支付渠道只需修改一个模块”→可修改性。注意:来源里出现“功能性”作为一类,标准质量属性清单里功能性并不总是放在质量属性里,所以具体空位答案待核实。
问题 3(12 分):用六要素描述两条可用性场景
题目给出一系列质量需求,其中 e)“可连续运行时间不少于 240h,断电或故障后 10s 内应重启”,h)“网络失效后,10s 内应发起重新连接”,要求用质量属性场景六要素描述。
参考答案(来源 YooYee233、m0_61635017 一致,下面是我改写并补充):
| 要素 | e) 断电或故障后 10s 内重启 | h) 网络失效后 10s 内重新连接 |
|---|---|---|
| 刺激源 | 断电或系统故障(电源、硬件或软件) | 网络设备或链路故障 |
| 刺激 | 断电或系统故障发生 | 网络连接中断 |
| 环境 | 系统运行环境,连续运行期间 | 系统联网运行的网络环境 |
| 制品 | 系统 | 系统的通信模块 |
| 响应 | 系统自动重启并恢复服务 | 自动发起重新连接 |
| 响应度量 | 10 秒内完成重启 | 10 秒内发起重连 |
两个来源对制品的写法略有不同(一个写“系统”,一个细化到模块),评分多半看六要素是否齐全、度量是否具体,我按更细的写法给出。回链:质量属性与 ATAM 见《综合知识精讲(上)》。
3.2 案例 2:UML(序列图与交互图)
回忆的小问:(1) 序列图的三种消息;(2) 序列图补全填空(图未还原,我不猜);(3) 分析设计过程中两种交互图的选取原则;(4) 序列图中表示条件分支的组合片段有哪些。
(1) 三种消息:同步消息、异步消息、返回消息(两源一致)。同步消息发送方要等待返回;异步消息发送后继续执行;返回消息表示被调用方返回结果。此外还有创建消息、销毁消息、自调用等,答题以“同步/异步/返回”三种为准。
(3) 两种交互图的选取原则:交互图有两种,序列图(顺序图)与通信图(协作图)。回忆里的答案是“序列图用于分析阶段、协作图用于设计阶段”。我认为这个说法不够准确,更稳妥的答法是:强调消息的时间顺序,选序列图;强调参与交互的对象及其链接关系(结构、组织),选通信图。两者语义等价、可相互转换。这里的来源答案与我的答法有出入,请以你的教材为准。
(4) 条件分支的组合片段:答案(两源一致):alt(选择,多分支互斥)、opt(可选,单分支)、loop(循环)、break(中断)、par(并行)。另一个来源还补充了 critical(临界区)、neg(否定,不应发生)、ref(引用)。严格来说,“表示条件分支”的主要是 alt 与 opt,loop、par 等是别的用途,评分时多写不扣分的可能性较大,但题目意图偏 alt/opt。
3.3 案例 3:分布式锁
问题 1(9 分):基于 MySQL 实现分布式锁的缺点
来源答案(m0_61635017 注明“答对 5 项即可满分”,这是博主的说法,未必是官方评分规则):性能瓶颈(高并发下大量加锁解锁请求压垮数据库)、单点故障、锁粒度问题、数据一致性问题(主从延迟等)、扩展性差、容错性差(不如 ZooKeeper 或 Redis 方案)。我补充实现层面的缺点:需要自己实现超时与死锁处理(行锁持有者宕机要靠定时清理)、不可重入需额外字段支持、不支持阻塞等待需轮询。
问题 2(10 分):举一个 Redis 分布式锁死锁的场景
这一问两个来源给出了完全不同的场景:YooYee233 写的是“两个服务各持一把锁又互相等待”的循环等待;m0_61635017 写的是“客户端持锁时间过长、另一个客户端一直等待,交替获取造成死锁”。后者的描述其实不是严格意义上的死锁。我自己的答案(也是 Redis 分布式锁最典型的死锁):
- 场景一:锁没有设置过期时间,客户端在持锁期间宕机或崩溃,锁永远不会被释放,其他客户端永远拿不到锁。对策:加锁时用
SET key value NX PX 30000一条命令同时设值和过期时间;用唯一 value 标识持有者,释放时用 Lua 脚本校验 value 再删除,避免误删别人的锁。 - 场景二:多把锁的循环等待,服务 A 持 K1 等 K2,服务 B 持 K2 等 K1。对策:所有服务按统一顺序加多把锁、设置获取锁的超时并回退。
- 附带:锁过期但任务没做完会导致两个客户端同时持锁(不是死锁而是锁失效),对策是看门狗续期(Redisson 的 watchdog)。
评分多半看“场景描述清楚 + 给出对策”,两种写法大概都能得分,我建议用场景一。
问题 3(6 分):基于 ZSet 的 Redis 命令(秒杀场景)
来源答案:存入秒杀分数:ZADD;获取某分数范围的成员:ZRANGE(严格说按分数范围取用 ZRANGEBYSCORE,Redis 6.2 之后 ZRANGE 加 BYSCORE 选项也可以);获取成员分数:ZSCORE。常用命令速记:
| 命令 | 作用 |
|---|---|
| ZADD key score member | 添加/更新成员及分数 |
| ZSCORE key member | 查询成员分数 |
| ZRANGE key start stop [WITHSCORES] | 按排名区间取成员 |
| ZRANGEBYSCORE key min max | 按分数范围取成员 |
| ZREM key member | 删除成员 |
| ZINCRBY key n member | 分数增加 n |
| ZCOUNT key min max | 统计分数范围内的成员数 |
| ZREVRANGE | 逆序取成员(排行榜) |
m0_61635017 吐槽:“关于 NoSQL 平时都关注理论层面,没想到考实践层面的命令”。这也是这场案例题的风格:从概念题向“会用命令”靠拢。另一小问(rzleilei 记)还问了“除了数据库锁和 Redis 锁,还有哪些分布式锁的类型”,答案方向是 ZooKeeper(临时顺序节点 + Watch)、etcd(租约 + 事务)等,属于我的知识补充,不是来源答案。
3.4 案例 4:嵌入式(车载通信与规控)
这题只有 m0_61635017 与 rzleilei 提到,rzleilei 只写了“第四题嵌入式系统:略”。下面用 m0_61635017 的回忆,答案标注“来源于网络”,我自己补了知识讲解。
问题 1(9 分):简要分析 SOME/IP 协议及特点
SOME/IP(Scalable service-Oriented MiddlewarE over IP)是 AUTOSAR 定义的面向服务的车载以太网中间件协议,位于应用层,基于 TCP/IP,支持 UDP 与 TCP。特点:面向服务架构 SOA(ECU 以服务提供者/消费者互动)、支持远程过程调用 RPC、服务发现(SOME/IP-SD)、事件通知与字段(field)、高伸缩性与灵活性,适合高带宽场景。
问题 2(6 分):把 DDS 与 SOME/IP 填进框图
来源的分析:DDS 一般用于框架/模块内部之间通信,SOME/IP 用于与外部设备之间通信,图没有还原,我不做逐空解答。DDS(Data Distribution Service)是 OMG 的发布—订阅数据分发标准,去中心化、强调实时与丰富的 QoS 策略,ROS 2 底层默认用它。可记“DDS 重数据流与 QoS,SOME/IP 重服务与 RPC”。
问题 3(10 分):规控(AP 模块)的流程框图
来源的分析:地图 → 定位 → 感知 → 预测(对环境中其他目标)→ 规划路径(考虑其他参与者)→ 控制决策 → 控制信息传递给交互界面/执行机构。这是自动驾驶软件常见的流水线:感知 → 预测 → 规划 → 控制。图没有还原,具体框图待核实。
3.5 案例 5:系统设计(存储架构、MongoDB、冷热数据)
问题 1(11 分):系统架构图填空,7 个空
选项给出:接口层、处理层、数据层、MySQL、HDFS、HBase、ES 等。博主 m0_61635017 特别注明“此处有争议,答案仅供参考,以官方为准”:争议点是瓦片地图用 HDFS 还是 HBase 存储。他指出这题的原型来自华中科技大学的一篇硕士论文,标准答案可能按论文来;并解释:栅格瓦片(图片,大文件顺序读)适合 HDFS;矢量瓦片(JSON/MVT,小文件随机读写)适合 HBase。这是个很有价值的判断依据,我完全认同这种分析方法,但7 个空的正确答案我无法确认,待核实。可以背的选型逻辑:
| 数据类型 | 推荐存储 | 理由 |
|---|---|---|
| 结构化业务数据、事务 | MySQL 等关系库 | 事务、强一致、SQL |
| 海量大文件、顺序读(栅格瓦片、日志归档) | HDFS | 高吞吐、适合大文件 |
| 海量小对象、随机读写、按行键检索 | HBase | 列族存储、低延迟随机读写 |
| 全文检索、复杂条件搜索 | Elasticsearch | 倒排索引 |
| 半结构化文档(JSON) | MongoDB | 灵活模式 |
问题 2(10 分):MongoDB 如何存储非结构化数据、优点
来源答案(两源一致,我整理):MongoDB 是文档型 NoSQL,以 BSON(二进制 JSON,支持日期、ObjectId 等更多类型)存储文档;无固定模式,同一集合里的文档可以有不同字段;字段可动态增删;支持对任意字段(含嵌套字段)建索引。优点:模型灵活、嵌套文档减少联表、易于扩展与演变、支持分片水平扩展与副本集高可用、聚合框架分析能力强。注意题面写的“矢量化存储”不是 MongoDB 的官方术语,来源也承认,按“处理复杂数据结构的能力”来答即可。
问题 3(4 分):热、温、冷数据分级存储的原因
来源答案(任意 4 点,博主称):资源优化、成本效率、性能提升、数据保护、扩展灵活。我的总结:按访问频率分层——热数据放内存/SSD 保证低延迟,温数据放普通磁盘,冷数据放对象存储/归档介质降成本;同时配合生命周期策略自动迁移。一句话:“把钱花在刀刃上,让快的存储只放常用的数据”。
回链:缓存、数据库与存储选型在《综合知识精讲(下)》;案例答题模板见《案例分析:题型拆解与答题模板》。
四、论文:四道题的考查方向与写作方案
四个题目方向(环球网校页面、YooYee233 各给出了完整的三问要求):
| 题号 | 题目方向 | 三问要求(概括) | 难度感受(我的判断) |
|---|---|---|---|
| 1 | 模型驱动架构设计方法及其应用 | 项目与职责;模型驱动架构(MDA)的开发全过程与特点;项目如何基于 MDA 分析、设计、开发 | 需要真用过 MDA/MDD,容易写虚 |
| 2 | 云上自动化运维及其应用 | 项目与职责;云上自动化运维(如 CloudOps)的主要衡量指标;项目如何实现云上自动化运维 | DevOps/云运维经验者好写 |
| 3 | 大数据 Lambda 架构 | 项目与职责;Lambda 架构三层(批处理层、加速层、服务层)的用途与特点;项目如何基于 Lambda 处理大数据 | 与 2023 下半年案例大数据题呼应 |
| 4 | 单元测试及运用 | 项目与职责;静态测试与动态测试的基本内容;如何确定白盒测试覆盖标准、如何组织实施回归测试 | 相对通用,素材多 |
一处冲突:rzleilei 把第 3 题记为“领域驱动开发”,其余来源(YooYee233、环球网校)均为“模型驱动架构”,且 YooYee 列出了完整三问;我采信多数来源,第 1 题为模型驱动架构,rzleilei 的“领域驱动开发”应是记混了(DDD 与 MDA 只差一个字母)。我没有找到官方标准范文,下面的写作方案是我自己整理的。通用骨架与自查清单见《论文写作:套路、模板与素材库》。
4.1 论模型驱动架构(MDA)设计方法及其应用
概念:MDA 是 OMG 提出的软件开发方法,核心思想是把“业务/功能规约”与“平台实现”分离,以模型为主要制品,通过模型转换生成代码。三类模型:CIM(计算无关模型,业务需求视角)、PIM(平台无关模型,系统功能但不含平台细节)、PSM(平台相关模型,绑定具体技术如 Java EE、.NET);再由 PSM 生成代码。核心是模型转换(CIM→PIM→PSM→代码),依托 UML、MOF、OCL、XMI 等标准。
全过程:业务建模(CIM)→ 构建 PIM → 选择平台并制定映射规则 → PIM 到 PSM 转换 → PSM 到代码生成 → 手写补充与测试 → 模型与代码同步维护。特点:提高抽象层次、平台可移植、提高一致性与文档同步、减少重复劳动;局限:工具链成熟度、模型转换规则复杂、逆向同步难、对团队建模能力要求高。
提纲:摘要 → MDA 概述(CIM/PIM/PSM 与转换)→ 项目背景与我的职责 → 项目中的建模与转换实践(举例:用 UML 描述订单域 PIM,转换到 Spring Boot PSM 生成骨架代码)→ 难点(模型转换规则维护、与手写代码合并、团队接受度)与对策 → 效果(研发效率、缺陷率)→ 总结。
4.2 论云上自动化运维及其应用
概念:云上自动化运维(CloudOps/AIOps 方向)是把部署、监控、扩缩容、故障自愈等运维动作脚本化、流程化、平台化,依托云厂商 API 与 IaC(基础设施即代码)。衡量指标(第二问)可答:可用性/SLA、MTTR(平均恢复时间)、MTTD(平均检测时间)、变更成功率与变更失败率、部署频率与前置时间、自动化率(自动化处理的事件占比)、告警准确率与噪声比、资源利用率与成本、容量预测准确率。
实现手段:IaC(Terraform/Ansible)统一环境;CI/CD 流水线;可观测性(指标、日志、链路)+ 告警分级;弹性伸缩与自愈(健康检查、自动重启、跨可用区切换);混沌演练;ChatOps 与工单联动;成本治理(标签、预算、闲置回收)。提纲:摘要 → 云上自动化运维概述与指标 → 项目背景 → 总体架构(采集、分析、决策、执行闭环)→ 落地过程与关键技术 → 难点(告警风暴、自动化误操作风险、多云差异)与对策(审批与灰度、熔断开关)→ 效果(MTTR、自动化率)→ 总结。
4.3 论大数据 Lambda 架构
这题与 2023 下半年案例第 1 题直接重合,三层的用途与特点务必背熟:
| 层次 | 用途 | 特点 |
|---|---|---|
| 批处理层 | 存储不可变的全量主数据集,周期性预计算批视图 | 吞吐高、结果准确、延迟高 |
| 加速层(速度层) | 处理最近的增量数据,生成实时视图 | 延迟低、结果近似、只保留短期数据 |
| 服务层 | 合并批视图与实时视图,提供低延迟查询 | 随机读、索引、对外服务 |
详细的对比与 Kappa 架构区别见本专栏 2023 下半年篇第三节(《2023 年下半年真题》)。写作要点:项目背景(日志分析、用户画像、风控)→ 三层技术选型(Kafka + Flink/Spark Streaming + HDFS/Hive + HBase/ClickHouse)→ 数据一致性与去重(以批视图为准修正实时视图)→ 难点:两套逻辑重复开发(可引入统一计算引擎或抽象层)、数据延迟对齐 → 效果 → 总结(可提 Kappa 作为演进方向)。
4.4 论单元测试及运用
静态测试:不运行被测程序,包括代码走查、评审、静态分析(规范检查、复杂度、潜在缺陷扫描)。动态测试:运行程序,包括黑盒(等价类、边界值、因果图、判定表)与白盒(逻辑覆盖)。白盒覆盖标准由弱到强:语句覆盖 < 判定(分支)覆盖 < 条件覆盖 < 判定/条件覆盖 < 条件组合覆盖 < 路径覆盖;实际项目常以语句覆盖 + 分支覆盖为基线(如 80%),关键模块提高到 MC/DC。回归测试:每次变更后重测受影响范围,组织方式:自动化用例库 + CI 触发 + 基于变更的选择与优先级;冒烟用例做守门。
提纲:摘要 → 单元测试概念与价值 → 项目背景 → 静/动态测试实践(工具:JUnit、Mockito、SonarQube、JaCoCo)→ 覆盖标准的确定(按模块风险分级)→ 回归测试组织(CI 流水线、用例分层)→ 问题(难以 Mock 依赖、遗留代码不可测)与对策 → 效果(缺陷逃逸率、覆盖率)→ 总结。
4.5 摘要示例(自写,仅供练手)
2023 年 8 月,我参与了某电商企业“实时经营分析平台”的建设,担任系统架构师,负责整体架构与技术选型。平台需要对秒级变化的交易数据做实时监控,同时保留全量历史数据做精确分析。本文结合该项目,论述了基于 Lambda 架构的大数据处理实践:批处理层基于 HDFS 与 Spark 对全量数据做预计算,加速层以 Kafka 加 Flink 处理增量数据,服务层合并两类视图并对外提供查询;针对两套逻辑重复开发与数据一致性的问题,采用统一指标口径与以批视图修正实时视图的机制。系统上线后,核心指标刷新延迟控制在秒级,历史查询结果与账务数据一致,验证了方案的有效性。
数字我故意没写死,请替换为真实项目的量化结果。论文最忌编造与项目不符的数据。
五、本场考点热度总结
| 科目 | 已确认出现的考点 | 建议优先级 |
|---|---|---|
| 综合知识 | 构件组装与接口不兼容、质量属性(可用性/互操作性/场景/分类)、ATAM 与 SAAM、净室与测试类型、OS 调度与进程状态、数据库范式与关系代数、信息安全与法规、物联网/数字孪生/EAI | 构件、质量属性、评估方法:必背;OS/DB 基础题:别丢分;法规:必拿分 |
| 案例分析 | 系统架构评估(微服务、效用树、六要素)、UML 序列图、分布式锁与 Redis、车载 SOME/IP 与 DDS、存储选型与 MongoDB | 质量属性场景描述:必练;Redis/分布式锁:按实践补课;存储选型:会讲理由 |
| 论文 | 模型驱动架构、云上自动化运维、Lambda 架构、单元测试 | 大数据、云运维、测试三条线各备一篇素材 |
复习建议:这场案例让我感受最深的是“实践化”——Redis 命令、存储选型、车载协议,都在问你“会不会用、能不能说出理由”。背概念不够,最好自己敲一遍命令、画一遍架构图。综合知识则要把构件、质量属性、评估这三块整理成表格反复过。
一句话备忘:2024 上半年这场:综合知识抓构件组装、质量属性、ATAM/SAAM、净室与测试;案例盯六要素场景、分布式锁与 Redis、存储选型的理由;论文备“模型驱动 / 云运维 / Lambda / 单元测试”;来源打架的地方(专利权利要求书、OSI 会话层、MDA 对 DDD)我都标了,不替你编。
六、答案冲突与待核实项
- 专利保护范围(A10):YooYee/rzleilei 记“权利说明书”,Nanki_ 记“权利要求说明书”;依《专利法》应为权利要求书,以 Nanki_ 为准。
- OSI 不提供安全服务的层(A14):两源“会话层”,一源“物理层”;我倾向会话层,原题以选项为准。
- 灰度/灰盒(A22):来源笔误,应为灰盒测试。
- 净室(A20、B39):两个条目一致,“不需要传统(模块)测试”被命题人视为错误说法。
- 案例 3 第 2 问:Redis 死锁场景两源写法完全不同,我给出了自己的标准答案。
- 案例 2 第 3 问:来源答案“序列图分析、协作图设计”与我认为的选取原则有出入。
- 案例 5 第 1 问:博主自己标注“有争议”,7 个空答案待核实。
- 论文第 1 题:MDA(多数来源)vs 领域驱动开发(rzleilei),采信多数。
- 案例五题的归类:环球网校与回忆者的叫法、顺序不完全相同,无法完全核实。
- 未采用的来源:一篇只公开 1–20 题字母答案、题序与其他回忆版无法对应的 CSDN 文章,以及仅含下载链接的环球网校/希赛网综合知识页面,均未用于答案。
- A17、B41 及其余约 12 题:没有信息,答案待核实;所有答案均为回忆版,不是官方答案。
参考资料
- CSDN YooYee233:2024 年 5 月份系统架构师考试真题完整版——综合知识带选项和答案、案例一/二/三/五要点、论文四题三问要求。
- CSDN rzleilei:2024 年上半年系统架构设计师真题-复原程度 90%——综合知识要点表、案例题干要点、论文题目(第 1 题为“领域驱动开发”,与其他来源冲突)。
- CSDN Nanki_:2024 年 5 月系统架构设计师综合知识真题——40 条考点简记,用于交叉核对(发现专利、OSI 的分歧)。
- CSDN m0_61635017:2024 年 5 月份架构师考试案例真题完整版——案例一至五的答案与解析,含案例四嵌入式、案例五存储争议说明。
- 环球网校:2024 年 5 月 25 日架构设计师考试考点内容(总结篇)——考试日期 5 月 25 日、综合知识考点、案例分类、论文四题。
- 环球网校:2024 年上半年系统架构设计师考试综合知识真题汇总——合格标准与成绩公布说明(题目正文为下载链接,未采用)。
- CSDN weixin_52894047:2024 年上半年综合知识真题(解析版)——只公开 1–20 题字母答案表,题序无法对应,未采用,列出仅为说明。
再次提醒:以上均为第三方回忆整理,可能存在遗漏或错误,请以考试主办方发布及正版真题为准;本文的解析与素材为个人整理,不代表官方评分标准。
一起聊聊