软考系统架构师 列表全部文章
软考系统架构师
软考系统架构师第 2 / 16 篇

系统架构设计师 2024 年上半年真题与答案解析

2024 年 5 月 25 日场次复盘:架构师首次增设的上半年考试。整理综合知识 60 多题的答案要点并自写解析,还原案例分析五题的考点与要点答案(微服务与质量属性、UML、分布式锁、嵌入式、存储设计),并给出四道论文题的写作素材,标注各来源间的冲突。

更多

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 题靠运气,这是个人感受。

2024 年 5 月 25 日场次:三科结构与“本文能核实到什么” 科目一 综合知识 75 题 / 75 分 / 45 分合格 约 63 个小题有答案要点 科目二 案例分析 5 题,第 1 题必答 5 题考点全部还原,2 处图未还原 科目三 论文 4 选 1 / 75 分 4 题题目与要求已核实 有答案要点 综合知识约 63 小题(2 源交叉) 案例 1、2、3、4、5 的要点 答案待核实 综合知识约 12 题无信息 案例各图填空、案例 2 序列图 自写补充 逐题知识点解析 案例要点与论文素材

二、综合知识:回忆版答案速对与逐题解析

这一场的综合知识,我读到了三个相互有重叠的回忆版: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一致
A14OSI 七层中不提供安全服务的层次会话层(YooYee、rzleilei);Nanki_ 记“物理层”冲突(我倾向会话层)
A15等待/就绪/执行三状态中不可能发生的转换等待态 → 执行态一致(两源)
A16TBAC 的组成工作流、授权结构体、受托人集、许可集一致
A17RBAC / OBAC / TBAC 三选一的某题回忆写“RBAC”,题干丢失待核实
A18最早形成文档并广泛使用的架构分析方法SAAM一致
A19属于 ADL 的UniCon、Rapide、Darwin、Wright 等一致
A20净室工程描述错误的“不需要传统测试”一致
A21发现表达式错误和复杂算法逻辑问题属于静态测试一致
A22不仅关心功能还关心代码逻辑的测试回忆写“灰度测试”(应为灰盒测试)来源笔误
A234+1 视图不包含测试视图一致

第二部分(回忆版带选项,有选项字母;选项顺序以回忆版为准,不保证与考场一致):

编号考点答案
B1分页存储管理中页号到物理块号的映射B(页表)
B2构件组装方式不包括D(循环)
B3反规范化设计属于数据库设计的哪个阶段C(逻辑设计)
B4关于软件测试说法错误的C(软件测试可以证明被测对象的正确性)
B5数字孪生中包括描述、诊断、预测、决策四方面的层D(共性应用层)
B6物联网应用三层D(感知层、网络传输层、应用层)
B7EAI 从下至上四个服务层次D(通讯服务、信息传递与转化服务、应用连接服务、流程控制服务)
B8知识产权法属于哪类法D(民法)
B9满足所有非主属性对主码完全依赖的标准B(2NF)
B10X、Y 均为线性规划最优解,λX+μY 也是最优解的条件C(λ,μ≥0 且 λ+μ=1)
B11UML 用例之间的关系不含B(聚合关系)
B12提供服务注册功能的A(UDDI)
B13不属于事务特性的D(并发性)
B14R 有 m 个元组、S 有 n 个,笛卡尔积元组数D(m×n)
B15最先进入队列的进程先分配处理机的调度算法C(先来先服务)
B16多道程序设计提高 CPU 和外设的A(利用率)
B17嵌入式实时系统的两种典型架构模型C(层次化模式架构和递归模式架构)
B1812 个作业的项目最短工期A(26 天)
B19安全性:保证信息不泄露给未授权者D(机密性)
B20安全性:双方不能否认发送/接收行为C(不可否认性)
B21安全保护等级划分准则中最高的D(访问验证保护级)
B22软件可靠性管理中不属于需求分析阶段的工作C(可靠性建模)
B23关注正常工作时间所占比例的质量属性A(可用性)
B24关注与其他系统交换数据难易程度的质量属性C(互操作性)
B25ATAM 设计之初主要关注的四种质量属性B(性能、安全性、可修改性、可用性)
B26构件组装常见方式不包括D(循环)
B27提供接口是另一构件请求接口的子集属于D(操作不完备)
B28精确描述质量属性的手段A(质量属性场景)
B29描述激励到达后所采取行动的要素C(响应)
B30REST 描述不正确的B(URI 和资源是多对多关系)
B31按生命周期划分质量属性B(开发期和运行期质量属性)
B32软件复用中构造可复用资产的阶段A(获取可复用的资产)
B33关于构件描述不正确的C(构件是通用实体,不能配置以适应应用系统)
B34黑板体系结构风格属于哪一类的子风格A(以数据为中心风格)
B35三层 C/S 中存在于客户机上的C(表示层)
B36DSSA 设计中获得领域模型的阶段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三源一致
2UML:序列图消息、补全、交互图选取原则、组合片段—两源一致(分值未见)
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 内应发起重新连接”,要求用质量属性场景六要素描述。

质量属性场景六要素(以 e 条“断电或故障后 10 秒内重启”为例) 刺激源供电/系统故障 刺激断电或故障发生 环境系统连续运行中 制品整个系统 响应自动重启恢复 响应度量10 秒内重启 “连续运行不少于 240 小时”可作为环境或可用性目标补充说明,不必硬塞进某一格 写法:一句话场景 → 拆成六格 → 响应度量必须可量化(时间、次数、比例)

参考答案(来源 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 架构、单元测试大数据、云运维、测试三条线各备一篇素材

案例五题各落在哪个知识领域 案例1(必答)架构评估微服务/效用树/六要素 案例2UML 建模序列图/组合片段 案例3分布式锁MySQL/Redis/ZSet 案例4嵌入式(车载)SOME/IP/DDS/规控 案例5存储架构设计HDFS/HBase/MongoDB 对比 2023 下半年:那一场必答的是大数据架构,这一场必答的是架构评估 说明“必答题的主题”每场都可能变,不要只押一个方向

复习建议:这场案例让我感受最深的是“实践化”——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 题:没有信息,答案待核实;所有答案均为回忆版,不是官方答案。

参考资料

再次提醒:以上均为第三方回忆整理,可能存在遗漏或错误,请以考试主办方发布及正版真题为准;本文的解析与素材为个人整理,不代表官方评分标准。

— 感谢读到这里 —发现错误,或想补充?告诉我 →
TURN KNOWLEDGE INTO SOMETHING REAL

有想法,也想把它做出来?

从技术方案到上线交付,聊聊你的下一个项目。

聊聊需求

一起聊聊

搜索文章

输入关键词,按标题和摘要即时筛选。

浏览分类文章归档

阅读设置

字号
行宽
专注模式

专注模式会隐藏页头与侧栏,只留正文。设置保存在当前浏览器。

稍后阅读

保存在当前浏览器,留给下一次安静阅读。

总浏览 -- 次 · 总访客 -- 人 · 今日浏览 -- 次 · 今日访客 -- 人