本页目录 · 7 节
- 一、本卷元信息
- 答案与可信度标注体系
- 二、综合知识(选择题)
- (一)操作系统(1—4)
- (二)数据库(5—8)
- (三)嵌入式与安全攸关系统(9—12)
- (四)网络与性能评价(13—17)
- (五)系统规划与集成(18—21)
- (六)软件工程过程(22—30)
- (七)构件与逆向工程(35—41)
- (八)测试与架构(42—57)
- (九)质量属性场景与安全(58—65)
- (十)知识产权与数学(66—70)
- (十一)专业英语(71—75,五空同一篇)
- 三、收录说明
- 四、案例分析(1 必做 + 4 选 2)
- 试题一(必做):用户管理系统 —— 基于规则 vs 面向对象 + 效用树(25 分)
- 试题二:在线订餐管理系统 —— 0 层 DFD 补全(25 分)
- 试题三:宇航装备 CPS —— 定义、分层与安全威胁(25 分)
- 试题四:分布式缓存 —— 双写不一致与缓存三大问题(25 分)
- 试题五:物流车辆管理系统 —— 非功能需求分类 + 分层架构填空 + SQL 注入(25 分)
- 五、论文(4 选 1)
- 试题一:论软件设计方法及其应用
- 试题二:论软件系统架构评估及其应用
- 试题三:论数据湖技术及其应用
- 试题四:(本卷第四题在公开源中未单列,仅见前三题完整题面)
- 六、使用建议
- 七、来源
2019 年下半年(11 月)系统架构设计师 · 真题套卷
一、本卷元信息
| 项目 | 内容 |
|---|---|
| 考试名称 | 计算机技术与软件专业技术资格(水平)考试 · 高级 · 系统架构设计师 |
| 场次 | 2019 年下半年(2019 年 11 月 9 日,纸笔) |
| 科目 | 综合知识(75 题单选)/案例分析(1 必做 + 4 选 2)/论文(4 选 1) |
| 主要来源 | CSDN「程序员小圆」《系统架构设计师-2019 年下半年上午综合知识真题及答案》(143683751)、《…下午案例真题及答案》(143686774)、《…下午论文真题及答案》(143686931) |
| 题源性质 | 回忆版+详细解析:综合知识题面完整、每题均带官方口径解析;案例 5 题题面与答案完整;论文 4 题题面 + 写作要点 |
| 收录范围 | 综合知识 75 题全收录;案例分析 5 题全收录;论文 4 题 + 写作要点 |
答案与可信度标注体系
| 标记 | 含义 |
|---|---|
| 答案 X(机构答案) | 公开源给出答案且与解析一致 |
| 答案 X(推导) | 来源未给答案或答案与解析矛盾,由本库推导 |
| 答案 存疑 | 选项缺失、题干残损或答案存争议 |
| 〔图缺失〕 | 原题依赖图形,回忆版未保留 |
二、综合知识(选择题)
(一)操作系统(1—4)
1.(前趋图) 进程集 P={P1…P8},给定前趋图,前趋关系集合可记为()。
A. {(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P7),(P5,P6),(P6,P7),(P6,P8),(P7,P8)}
B. {(P1,P2),(P3,P1),(P4,P1),(P5,P2),(P5,P3),(P6,P4),(P7,P5),(P7,P6),(P6,P8),(P8,P7)}
C. {(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P6),(P4,P7),(P5,P6),(P6,P7),(P6,P8),(P7,P8)}
D. {(P1,P2),(P1,P3),(P2,P3),(P2,P5),(P3,P6),(P3,P4),(P4,P7),(P5,P6),(P6,P7),(P6,P8),(P7,P8)}
答案 D(机构答案)
解析:前趋图(DAG)的边表示"必须先完成"。本图关系为:P1→P2、P1→P3、P2→P3、P2→P5、P3→P4、P3→P6、P4→P7、P5→P6、P6→P7、P6→P8、P7→P8。只有 D 同时含"P2→P3"与"P3→P4"等全部 11 条边。
陷阱:A 漏掉 P2→P3 和 P3→P4;B 含大量反向边(P3→P1 等);C 把 P3→P4 写成 P4→P7 而漏了 P3→P4,且 P3→P6 与 P2→P5 缺 P5→P6 之外的对应。数边数 + 检查是否成环是最快的判据。
2—3.(页式存储 · 地址变换与页面淘汰) 进程 P 有 8 页(0—7),页面大小 4K,分配 4 个存储块,页表状态位 1/0 表示在/不在内存。逻辑地址 5148H 变换后的物理地址是();若要访问的页面不在内存,应淘汰页号为()的页面。
第 1 空:A. 3148H B. 5148H C. 7148H D. 9148H
第 2 空:A. 1 B. 2 C. 5 D. 9
答案 A、B(机构答案)
解析:4K=2¹²,5148H 拆为页号 5 + 页内偏移 148H;查页表页号 5 对应物理块号 3 → 物理地址 3148H。淘汰时,1、5、7 号页最近都被访问过,2 号页最近未被访问 → 按局部性原理淘汰未被访问的页;若都访问过,再优先淘汰未修改过的页(无需写回)。
陷阱:把页内偏移算成 48H(应按 3 位十六进制 148H 保留);按 LRU 选"最近最久未使用"时忽略"状态位=0 的页本来就不在内存(9 号页不存在,直接排除)。
4.(文件共享) 网络操作系统环境中,用户 UserA 的文件或文件夹被共享后,则()。
A. UserA 的安全性与未共享时相比将会有所提高
B. UserA 的安全性与未共享时相比将会有所下降
C. UserA 的可靠性与未共享时相比将会有所提高
D. UserA 的方便性与未共享时相比将会有所下降
答案 B(机构答案)
解析:共享把资源暴露给网络上的其他用户,他人可能读取、复制、更改共享内容,故安全性下降;共享带来的好处是方便性提高。
陷阱:选"方便性下降"(共享的初衷就是提高方便性);把"可用性/可靠性"与"安全性"混。
(二)数据库(5—8)
5.(数据库安全 · 存储过程) 数据库安全机制中,通过提供()供第三方开发人员调用进行数据更新,从而保证数据库的关系模式不被第三方获取。
A. 索引 B. 视图 C. 存储过程 D. 触发器
答案 C(机构答案)
解析:存储过程把多条更新语句封装在数据库内部,第三方只传入参数、调用过程,看不到表结构。视图能限制行列可见范围,但视图定义本身暴露了基表结构;触发器是被动触发,不供主动调用。
陷阱:选"视图"(视图解决"能看到哪些数据",存储过程解决"看不到表结构、只调接口")。
6—7.(函数依赖 · 分解) R(U,F),U={A,B,C,D,E},F={A→BC, B→D, D→E}。关于 F 说法正确的是();把 R 分解为 ρ={R1(ABC), R2(BDE)},则分解 ρ()。
第 1 空:A. F 蕴涵 A→B、A→C,但不存在传递依赖 B. F 蕴涵 E→A、A→C,故存在传递依赖
C. F 蕴涵 A→D、E→A、A→C,但不存在传递依赖 D. F 蕴涵 A→D、A→E、B→E,故存在传递依赖
第 2 空:A. 无损连接并保持函数依赖 B. 无损连接但不保持函数依赖
C. 有损连接并保持函数依赖 D. 有损连接但不保持函数依赖
答案 D、A(机构答案)
解析:
- 由 A→BC 用分解规则得 A→B、A→C;再由 A→B、B→D 用传递律得 A→D;A→D、D→E 得 A→E;B→D、D→E 得 B→E → 存在传递依赖,D 正确。
- 无损判定:U1∩U2 = {B},B→D、B→E 成立(B→U2−U1 = {D,E})→ 无损连接;F1=A→B、A→C,F2=B→D、D→E,(F1∪F2)⁺ = F⁺ → 保持函数依赖。
陷阱:把"存在传递依赖"与"传递依赖导致某范式不成立"混;无损判定时用错交集(本题交集是 B 而不是 A);忘记 B→D、D→E 可推出 B→E。
8.(分布式数据库模式) 定义分布式数据库中数据整体逻辑结构、使数据使用如同没有分布一样的是()。
A. 分片模式 B. 全局外模式 C. 分布模式 D. 全局概念模式
答案 D(机构答案)
解析:分布式数据库模式层次(自顶向下):全局外模式 → 全局概念模式 → 分片模式 → 分布模式 → 局部概念模式 → 局部内模式。全局概念模式定义全局逻辑结构("如同没有分布");分片模式定义逻辑分片方式;分布模式定义分片在各站点的物理分布。
陷阱:把"分片模式"当全局逻辑结构(分片解决"怎么切",全局概念模式解决"整体是什么");"全局外模式"是全局概念模式的子集。
(三)嵌入式与安全攸关系统(9—12)
9—10.(软件安全性需求) 软件安全性需求是指通过约束软件的行为,使其不会出现();软件安全需求的获取是根据已知的(),如软件危害条件等。
第 1 空:A. 不可接受的系统安全的行为 B. 有可能影响系统可靠性的行为
C. 不可接受的违反系统安全的行为 D. 系统不安全的事故
第 2 空:A. 系统信息 B. 系统属性 C. 软件属性 D. 代码信息
答案 C、A(机构答案)
解析:安全攸关(safety-critical)系统的安全性需求 = 使软件不出现"不可接受的违反系统安全的行为";其获取依据是已知的系统信息(危害条件、系统数据与通用惯例)。A 少了"违反",D 是"事故/结果"而非"行为",B 混淆了 safety 与 reliability。
陷阱:把"安全性(safety)"与"可靠性(reliability)"混;把"事故"当需求约束的对象(需求约束的是行为)。
11.(实时调度) 某任务执行接近自己的截止期时,调度算法把该任务优先级调到系统最高,此类算法是()。
A. 优先级调度算法 B. 抢占式优先级调度算法 C. 最晚截止期调度算法 D. 最早截止期调度算法
答案 C(机构答案,存疑)
解析:来源解析的表述是:"最晚截止期调度算法按每个任务最接近其截止期末端的时间进行调度,系统根据当前任务截止期情况,选取最接近截止期的任务运行"。按该表述,"接近截止期即可抢占最高优先级"对应 C(最晚截止期);而 EDF(最早截止期优先)是按绝对截止期最早排序,题干未强调"最早"。
说明:工程上"临近 deadline 提升优先级"更常被解释为 EDF,故本题在学界存在争议,记忆时以"最晚截止期调度 = 关注最接近截止期末端的任务"为准,标注存疑。
陷阱:把 EDF 与"最晚截止期"的中文翻译搞混(英文 Latest Deadline First ≠ EDF)。
12.(混成系统) 关于混成系统的说法,正确的是()。
A. 由离散分离组件并行组成,行为由计算模型控制
B. 由离散分离组件和连续组件并行或串行组成,行为由计算模型控制
C. 由连续组件串行组成,行为由计算模型控制
D. 由离散分离组件和连续组件并行或串行组成,行为由同步/异步事件管理
答案 B(机构答案)
解析:混成系统(hybrid system)= 离散组件 + 连续组件,可并行或串行组合,组件间行为由计算模型统一控制。D 错在把"计算模型"换成"同步/异步事件"(事件只是通信机制,不能替代计算模型)。
陷阱:D 最具迷惑性(事件机制确实存在,但"管理组件行为"的仍是计算模型)。
(四)网络与性能评价(13—17)
13.(TCP 端口) TCP 端口号的作用是()。
A. 流量控制 B. ACL 过滤 C. 建立连接 D. 对应用层进程的寻址
答案 D(机构答案)
解析:IP 地址标识主机,端口号标识主机上的应用进程(16 位,0—65535),二者合起来构成套接字(socket)实现进程间通信。
陷阱:选"建立连接"(那是三次握手的功能);端口号可用于 ACL 过滤但是副作用,不是其设计作用。
14.(Web 访问过程) 浏览器发出 HTTP 请求报文之前,不可能执行的操作是()。
A. 查询本机 DNS 缓存,获取主机名对应的 IP 地址
B. 发起 DNS 请求,获取主机名对应的 IP 地址
C. 发送请求信息,获取将要访问的 Web 应用
D. 发送 ARP 协议广播数据包,请求网关的 MAC 地址
答案 C(机构答案)
解析:访问流程:URL 解析 → 查本地 DNS 缓存 →(未命中)发 DNS 查询 → 得到 IP → ARP 请求网关 MAC → TCP 三次握手 → 发送 HTTP 请求。"发送请求信息获取 Web 应用"就是 HTTP 请求本身,在请求报文发出之前不可能发生。
陷阱:误以为 ARP 在 HTTP 之后(同网段/跨网段都要先解析 MAC 才能发帧)。
15.(DHCP) 关于 DHCP 服务的说法,正确的是()。
A. 一个园区网中可以存在多台 DHCP 服务器
B. 默认情况下,客户端使用 DHCP 服务需指定服务器地址
C. 默认情况下,DHCP 客户端选择本网段内的 IP 地址作为本地地址
D. 在 DHCP 服务器上,DHCP 服务功能默认开启
答案 A(机构答案)
解析:DHCP 客户端通过广播 DISCOVER 自动发现服务器,无需预配服务器地址(B 错);客户端使用服务器分配的地址,不是自行选择本网段地址(C 错);DHCP 服务安装后一般需要手动启动/授权(D 错);大型园区可按 VLAN/网段部署多台 DHCP 服务器(冗余 + 分担)。
陷阱:B 把 DHCP 与"静态配置"混;注意 DHCP 依赖广播,跨网段需 DHCP 中继(Relay)。
16—17.(基准测试程序) 评价程序评测准确度最高的是();用得最多、最频繁的()被称为基准测试程序。
第 1 空:A. 真实程序 B. 核心程序 C. 小型基准程序 D. 核心基准程序
第 2 空:A. 真实程序 B. 核心程序 C. 小型基准程序 D. 核心基准程序
答案 A、B(机构答案)
解析:评价程序四类(准确度由高到低):真实程序 > 核心程序 > 小型基准程序 > 合成程序。真实程序最能反映实际负载,准确度最高;核心程序是从真实程序中提取的最常用、最频繁的关键代码段,被用作基准测试程序。
陷阱:把两空答案对调;认为"小型基准程序"最常用(它是简化版,准确度低)。
(五)系统规划与集成(18—21)
18—19.(关键成功因素法 CSF) CSF 法通过识别关键成功因素,找出实现目标所需的关键信息集合,从而确定系统开发的();从组织目标分解、关键成功因素识别、()识别,一直到产生数据字典。
第 1 空:A. 系统边界 B. 功能指标 C. 优先次序 D. 性能指标
第 2 空:A. 系统边界 B. 功能指标 C. 优先次序 D. 性能指标
第 1 空 答案 C(机构答案);第 2 空 答案 D(存疑)
解析:CSF 法的作用是确定系统开发的优先次序(先做什么、后做什么),这是它的标志性结论。第 2 空的正确内容应为"数据类识别"(目标分解 → 关键成功因素识别 → 数据类识别 → 数据字典),公开源给出的选项 D"性能指标"与教材不符,疑为"数据类"的录入错误,故标存疑。
陷阱:把 CSF 与 SST(战略目标集转化法)、BSP(企业系统规划法,核心是 U/C 矩阵与数据类)混——"数据类"是 BSP 的概念,CSF 的落点是优先级。
20—21.(应用集成) 系统应用集成构建统一标准的基础平台,在各应用系统接口之间共享数据和功能,基本原则是保证应用程序的();应用集成提供 4 个层次的服务,最上层是()服务。
第 1 空:A. 独立性 B. 相关性 C. 互操作性 D. 排他性
第 2 空:A. 通信 B. 信息传递与转化 C. 应用连接 D. 流程控制
答案 A、D(机构答案)
解析:应用集成的基本原则是保证应用程序的独立性(各应用不因集成而被改造/侵入);四个层次由低到高:通信服务 → 信息传递与转化服务 → 应用连接服务 → 流程控制服务,最上层是流程控制(跨应用业务流程编排)。
陷阱:把"互操作性"当基本原则(互操作是目标/结果,独立性是约束);四层顺序记反。
(六)软件工程过程(22—30)
22—23.(软件生命周期) 软件生命周期划分为软件定义、软件开发和()三个阶段;可行性研究属于()阶段的任务。
第 1 空:A. 软件运行与维护 B. 软件对象管理 C. 软件详细设计 D. 问题描述
第 2 空:A. 软件定义 B. 软件开发 C. 软件评估 D. 软件运行与维护
答案 A、A(机构答案)
解析:三阶段:软件定义(问题定义、可行性研究、需求分析)→ 软件开发(设计、编码、测试)→ 软件运行与维护。
陷阱:把"测试"从开发中拆出并列(四阶段说法的常见错误);把可行性研究放到开发阶段。
24—25.(需求变更管理) 需求变更管理过程包括问题分析和变更描述、()、变更实现;关于需求变更管理的描述中,()是不正确的。
第 1 空:A. 变更调研 B. 变更判定 C. 变更定义 D. 变更分析和成本计算
第 2 空:A. 需求变更要控制,防止失控导致项目混乱 B. 需求变更对软件项目开发有利无弊
C. 需求变更通常按特定流程进行 D. 变更审批由 CCB 负责
答案 D、B(机构答案)
解析:需求变更管理三阶段:问题分析与变更描述 → 变更分析与成本计算 → 变更实现;变更须经 CCB(变更控制委员会)审批,按流程执行。"有利无弊"是绝对化表述,明显错误(变更会带来返工、延期与成本)。
陷阱:第 1 空选"变更判定/变更定义"(教材术语是"变更分析与成本计算");绝对化表述是第 2 空的送分点。
26—28.(软件方法学) ()先对最高层次问题定义、设计、编程和测试,未解决的问题作为子任务放到下一层解决;()从具体器件、逻辑部件或相似系统出发,通过相互连接、修改和扩大构成系统;()建立在严格数学基础上。
第 1 空:A. 面向对象开发方法 B. 形式化开发方法 C. 非形式化开发方法 D. 自顶向下开发方法
第 2 空:A. 自底向上开发方法 B. 形式化开发方法 C. 非形式化开发方法 D. 原型开发方法
第 3 空:A. 自底向上开发方法 B. 形式化开发方法 C. 非形式化开发方法 D. 自顶向下开发方法
答案 D、A、B(机构答案)
解析:自顶向下(逐步求精、子任务下移);自底向上(从器件/部件/相似系统组装);形式化方法(基于严格数学,如 Z、VDM、B、净室软件工程)。
陷阱:三空顺序错乱;把"原型法"当形式化(原型是迭代试错,非数学基础)。
29—30.(软件开发工具) ()是辅助建立软件系统抽象模型的工具,例如 Rose、Together、WinA&D、()等。
第 1 空:A. 编程工具 B. 设计工具 C. 测试工具 D. 建模工具
第 2 空:A. LoadRunner B. QuickUML C. Delphi D. WinRunner
答案 D、B(机构答案)
解析:Rose、Together、WinA&D、QuickUML 都是 UML 建模工具;LoadRunner/WinRunner 是性能/功能测试工具,Delphi 是开发(编程)工具。
陷阱:第 1 空选"设计工具"(设计工具范围更宽,题干强调"建立抽象模型"= 建模);第 2 空选 Delphi(它是 IDE,不是建模工具)。
31—32.(概要设计) 软件概要设计把软件需求转化为软件设计的()和软件的()。
第 1 空:A. 算法流程 B. 数据结构 C. 交互原型 D. 操作接口
第 2 空:A. 系统结构 B. 算法流程 C. 内部接口 D. 程序流程
答案 B、A(机构答案)
解析:概要设计(高层设计)确定软件体系结构(系统结构)+ 数据结构 + 接口;详细设计才确定算法流程与程序流程。
陷阱:把"算法流程"放概要设计(它属详细设计)。
33.(结构化设计任务) 软件结构化设计包括()等任务。
A. 架构设计、数据设计、过程设计、原型设计
B. 架构设计、过程设计、程序设计、原型设计
C. 数据设计、过程设计、交互设计、程序设计
D. 架构设计、接口设计、数据设计、过程设计
答案 D(机构答案)
解析:结构化设计四任务:体系结构(架构)设计、接口设计、数据设计、过程(详细)设计。"原型设计"属原型法,不是结构化设计的任务。
陷阱:选项 A/B 混入"原型设计"(原型法 vs 结构化方法是两套方法学)。
34.(模块化设计) 关于模块化设计,错误的是()。
A. 模块是执行某一特定任务的数据结构和程序代码
B. 模块的接口和功能定义属于其模块自身的内部特性
C. 每个模块完成相对独立的特定子功能,与其他模块关系最简单
D. 模块设计的重要原则是高内聚、低耦合
答案 B(机构答案)
解析:模块分外部特性(接口、功能,即"做什么")与内部特性(内部数据、算法,即"怎么做");接口与功能定义属于外部特性,是模块间协作的依据。
陷阱:把"接口"当内部特性(正相反,接口是外部可见的契约)。
(七)构件与逆向工程(35—41)
35—37.(构件分类方法) ()按领域分析结果把概念从抽象到具体逐次分解为树形/DAG;()用 Facet 描述构件功能、数据、语境等特征;()使检索者按联想思维跳转到相关概念或构件文档。
第 1—3 空选项:A. 关键字分类法 B. 刻面分类法 C. 语义匹配法 D. 超文本方法
答案 A、B、D(机构答案)
解析:三大类构件分类/检索方法:关键字分类法(受控词表 + 层次树)、刻面分类法(多维度 Facet 组合描述)、超文本方法(链接 + 联想跳转)。
陷阱:把"刻面"与"关键字"对调(关键字是单一树形层次,刻面是多维组合);"语义匹配法"不是标准分类法名称。
38.(构件组装) 不属于构件组装技术的是()。
A. 基于功能的构件组装技术 B. 基于数据的构件组装技术 C. 基于实现的构件组装技术 D. 面向对象的构件组装技术
答案 C(机构答案)
解析:三类组装技术:基于功能、基于数据、面向对象。"基于实现"不是教材分类(实现级是逆向工程的抽象层次概念,易混)。
陷阱:把逆向工程的"实现级"混进来。
39—41.(逆向工程) 逆向工程导出信息的四个抽象层次中,()反映程序各部分之间相互依赖关系;()反映程序段功能及程序段之间关系;()是在逆向工程获取信息基础上修改或重构系统、产生新版本。
第 1 空:A. 实现级 B. 结构级 C. 功能级 D. 领域级
第 2 空:A. 实现级 B. 结构级 C. 功能级 D. 领域级
第 3 空:A. 逆向分析 B. 重组 C. 设计恢复 D. 重构工程(Re-engineering)
答案 B、C、D(机构答案)
解析:四层次:实现级(语法树、符号表)→ 结构级(模块调用/依赖关系)→ 功能级(程序段功能及段间关系)→ 领域级(业务领域概念与规则)。重构工程(Re-engineering) = 逆向工程 + 重构/前向工程,产出新版本;设计恢复只恢复设计信息,不改造系统。
陷阱:把"重组(restructuring)"当重构工程(重组只改结构不改功能,如重构代码);实现级与结构级对调。
(八)测试与架构(42—57)
42—43.(性能测试类型) ()用于在限定系统下考察软件系统极限运行情况;()用于测试系统同时处理的在线最大用户数量。
第 1 空:A. 强度测试 B. 负载测试 C. 压力测试 D. 容量测试
第 2 空:A. 强度测试 B. 负载测试 C. 压力测试 D. 容量测试
答案 A、D(机构答案)
解析:强度测试——在资源(CPU/内存/网络)极限条件下系统能否正常运行(考察极限运行);容量测试——确定系统可处理的最大数据量/最大并发用户数等容量指标;负载测试——逐步加压找性能拐点;压力测试——超负荷下系统是否崩溃/能否恢复。
陷阱:四个术语边界模糊,记口诀:"极限资源→强度,最大容量→容量,找拐点→负载,超载崩溃→压力"。
44—45.(UML 图与 4+1 视图) 下图属于软件架构设计中的(),用于()视图描述软件系统。
第 1 空:A. 对象图 B. 时序图 C. 构件图 D. 类图
第 2 空:A. 进程 B. 开发 C. 物理 D. 用户
答案 D、B(机构答案,存疑)
解析:来源答案为"类图 + 开发视图"。但按 4+1 模型,类图通常归逻辑视图,开发视图对应包图/构件图;本题第 2 空选项中没有"逻辑",只能选"开发",属命题不严谨,故标存疑。记忆时以"类图 → 逻辑视图"为准。
陷阱:把时序图当"进程视图"(时序图可辅助描述进程间交互,但 4+1 中进程视图主用活动图/状态图);把构件图与部署图混。
46—48.(Garlan & Shaw 风格分类) ()属于数据流体系结构风格;()属于虚拟机体系结构风格;下图描述的属于()体系结构风格。
第 1 空:A. 面向对象 B. 事件系统 C. 规则系统 D. 批处理
第 2 空:A. 面向对象 B. 事件系统 C. 规则系统 D. 批处理
第 3 空:A. 层次型 B. 事件系统 C. 规则系统 D. 批处理
答案 D、C、A(机构答案)
解析:Garlan & Shaw 五类:数据流(批处理、管道-过滤器)、调用/返回(主程序-子程序、面向对象、层次型)、独立构件(进程通信、事件系统)、虚拟机(解释器、规则系统)、仓库(数据库、超文本、黑板)。故批处理属数据流、规则系统属虚拟机;图示为分层调用 → 层次型。
陷阱:把"规则系统"归数据流或独立构件(它属虚拟机,靠解释引擎执行);把"事件系统"归调用/返回。
49—50.(ESB) ()是由中间件技术实现并支持 SOA 的一组基础架构,其优势在于()。
第 1 空:A. ESB B. 微服务 C. 云计算 D. Multi-Agent System
第 2 空:A. 支持服务请求者与提供者之间的直接链接 B. 支持二者紧密耦合
C. 消除了服务请求者与服务提供者之间的直接链接 D. 消除了二者之间的关系
答案 A、C(机构答案)
解析:ESB(企业服务总线)提供消息路由、协议转换、服务注册与编排,使请求者与提供者不再直接连接(解耦、位置透明、可替换),这是其核心价值。B 说"紧密耦合"、D 说"消除关系"都错(关系仍存在,只是经总线中介)。
陷阱:选 D(总线不是消除关系,而是间接化)。
51—53.(ABSDM 六子过程) ABSDM 把基于体系结构的软件过程划分为体系结构需求、体系结构设计、体系结构文档化、()、()和体系结构演化 6 个子过程;其中()的主要输出是体系结构规格说明和测试体系结构需求的质量设计说明书。
第 1 空:A. 体系结构复审 B. 体系结构测试 C. 体系结构变更 D. 体系结构管理
第 2 空:A. 体系结构实现 B. 体系结构测试 C. 体系结构建模 D. 体系结构管理
第 3 空:A. 体系结构设计 B. 体系结构需求 C. 体系结构文档化 D. 体系结构测试
答案 A、A、C(机构答案)
解析:六子过程固定顺序:需求 → 设计 → 文档化 → 复审 → 实现 → 演化。文档化的产物是体系结构规格说明 + 质量设计说明书(供复审与实现使用)。
陷阱:把"体系结构测试"塞进六阶段(教材六阶段无独立"测试");第 3 空选"设计"(设计产物是架构方案,文档化才产出规格说明)。
54—57.(创建型模式) 按目的划分,()模式是对对象实例化过程的抽象。例如()确保一个类只有一个实例并提供全局访问入口;()允许在不了解确切类及创建细节的情况下创建对象;()将复杂对象的构建与其表示分离。
第 1—4 空选项(后三空):A. Facade B. Builder C. Prototype D. Singleton
答案 A(创建型)、D(Singleton)、C(Prototype)、B(Builder)(机构答案)
解析:创建型模式 = 对对象实例化过程的抽象;Singleton 唯一实例 + 全局访问;Prototype 克隆原型、无需知道具体类;Builder 构建过程与表示分离;Facade 是结构型(外观)。
陷阱:把 Facade 当创建型(它属结构型);Builder 与 Prototype 的功能对调。
(九)质量属性场景与安全(58—65)
58—63.(电子交易清算系统 · 三场景六空)
场景 1:"数据传递时延不大于 1s,并提供相应的优先级管理" → 与()相关,可采用()策略;
场景 2:"双机热备,主备机实时监测对方状态以便实时切换" → 与()相关,可采用()策略;
场景 3:"系统应能防止 99% 的黑客攻击" → 与()相关,可采用()策略。
属性选项:A. 可用性 B. 性能 C. 安全性 D. 可修改性
策略选项:A. 限制资源 B. 引入并发 C. 资源仲裁 D. 限制访问 A. 记录/回放 B. 操作串行化 C. 心跳 D. 资源调度 A. 检测攻击 B. Ping/Echo C. 选举 D. 权限控制
答案 B、C、A、C、C、A(机构答案)
解析:
- 场景 1:时延 + 优先级管理 → 性能;"按优先级分配资源"= 资源仲裁(调度策略);
- 场景 2:双机热备 + 实时监测切换 → 可用性;监测手段 = 心跳;
- 场景 3:防黑客攻击 → 安全性;首要策略 = 检测攻击(入侵检测),其次才是限制访问/权限控制。
陷阱:场景 1 选"资源调度"(资源仲裁是"按优先级决定谁先用",资源调度是"分配多少",题干强调优先级 → 仲裁);场景 2 选"选举"(选举用于集群选主,题干是主备心跳检测);场景 3 选"限制访问"("防止攻击"的第一步是检测)。
64.(邮件安全协议) 与电子邮箱安全无关的协议是()。
A. SSL B. HTTPS C. MIME D. PGP
答案 C(机构答案)
解析:SSL/TLS 为邮件传输(SMTPS/IMAPS/POP3S)提供加密通道;HTTPS 用于 Web 邮箱的传输安全;PGP 提供端到端加密与签名;MIME 只是邮件内容格式扩展(支持附件、多字符集),本身不提供安全机制。
陷阱:把 MIME 当加密协议;把 PGP 当传输层协议(它是端到端应用层方案)。
65.(网络冗余设计) 关于网络冗余设计,错误的是()。
A. 网络冗余设计避免网络组件单点失效造成应用失效
B. 备用路径与主路径同时投入使用,分担主路径流量
C. 负载分担通过并行链路提供流量分担以提高性能
D. 网络中存在备用链路时,可以考虑加入负载分担设计
答案 B(机构答案)
解析:备用路径平时不承载业务(standby),只在主路径故障时接管;同时使用并分担流量的是负载分担(load balancing),二者概念不同。B 把两者混为一谈。
陷阱:把"冗余备份"与"负载均衡"混(前者是故障切换,后者是性能分担)。
(十)知识产权与数学(66—70)
66.(著作权保护期) 著作权中,()的保护期不受期限限制。
A. 发表权 B. 发行权 C. 展览权 D. 署名权
答案 D(机构答案)
解析:署名权、修改权、保护作品完整权永久保护;发表权与财产权(发行、展览、复制、信息网络传播等)为作者终生 + 死后 50 年。
陷阱:把"发表权"当永久(发表权有 50 年期限,且只能行使一次)。
67.(软件著作权) 关于计算机软件著作权,正确的是()。
A. 软件著作权自软件开发完成之日生效
B. 非法进行拷贝、发布或更改软件的人被称为软件盗版者
C. 开发者在单位任职期间所开发软件的著作权归个人所有
D. 用户购买具有版权的软件,则具有对该软件的使用权和复制权
答案 A(机构答案)
解析:我国软件著作权自软件开发完成之日起自动产生(无需登记,登记仅为初步证明)。B 定义不严谨(盗版者指未经授权复制/发行者,"更改"属修改权范畴);C 职务作品一般归单位;D 购买只获得使用权(及许可范围内的复制,如安装),不含任意复制权。
陷阱:D 是高频错项("买了就能随便复制");B 的"更改"扩大了盗版定义。
68.(源程序修改) A 公司购买某软件源程序后,将其中所有标识符全面修改,作为该公司产品销售,该行为()。
A. 尚不构成侵权 B. 侵犯了著作权 C. 侵犯了专利权 D. 属于不正当竞争
答案 B(机构答案)
解析:修改标识符不改变程序的表达实质,属于对原软件的修改/复制,侵犯著作权(修改权、复制权、发行权);若仅购买源程序而未获授权销售,还违反许可协议。
陷阱:认为"改了变量名就是新软件"(著作权保护表达,改标识符不构成独创性新作品)。
69.(灵敏性分析) 根据数学模型求出最优解或满意解后,还需进行(),检验计算结果对参数变化的反应程度。
A. 一致性分析 B. 准确性分析 C. 灵敏性分析 D. 似然性分析
答案 C(机构答案)
解析:灵敏度(灵敏性)分析研究参数变化对最优解的影响程度,识别"关键参数",是运筹学/数学建模的标准步骤。
陷阱:选"准确性分析"(准确性是结果与真值接近程度,与参数扰动无关)。
70.(网络计划 · 总时差) 某项目含 A—F 六个作业,衔接关系与工期如表,作业 D 最多可拖延()天而不影响总工期。
A. 0 B. 1 C. 2 D. 3
〔图/表缺失〕 > 答案 C(机构答案,存疑:无网络图无法复核)
解析:作业的可拖延时间 = 总时差 TF = 最迟开始 − 最早开始 = 最迟完成 − 最早完成;总时差为 0 的作业在关键路径上,不能拖延。来源给出 D 的总时差为 2 天。
陷阱:把"自由时差(不影响紧后作业最早开始)"当"总时差(不影响总工期)";关键路径上的作业误判为可拖延。
(十一)专业英语(71—75,五空同一篇)
71—75.(系统分析阶段的数据组织 · 英文填空)
During the systems analysis phase, you must decide how data will be organized, stored, and managed. A ( 71 ) is a framework for organizing, storing, and managing data. Each file or table contains data about people, places, things, or events. One of the potential problems existing in a file processing environment is ( 72 ), which means that data common to two or more information systems is stored in several places. In a DBMS, the linked tables form a unified data structure that greatly improves data quality and access. A(n) ( 73 ) is a model that shows the logical relationships and interaction among system entities. It provides an overall view of the system and a blueprint for creating the physical data structures. ( 74 ) is the process of creating table designs by assigning specific fields or attributes to each table in the database. A table design specifies the fields and identifies the primary key in a particular table or file. The three normal forms constitute a progression in which ( 75 ) represents the best design. Most business-related databases must be designed in that form.
| 空 | 正确选项 | 答案 |
|---|---|---|
| 71 | A. data entity B. data structure C. file collection D. data definition | B |
| 72 | A. data integrity B. the rigid data structure C. data redundancy D. the many-to-many relationship | C |
| 73 | A. entity-relationship diagram B. data dictionary C. database schema D. physical database model | A |
| 74 | A. Normalization B. Replication C. Partitioning D. Optimization | A |
| 75 | A. standard notation form B. first normal form C. second normal form D. third normal form | D |
参考译文:在系统分析阶段,必须决定数据如何组织、存储和管理。数据结构是组织、存储和管理数据的框架,每个文件或表包含关于人、地点、事物或事件的数据。文件处理环境的一个潜在问题是数据冗余,即两个或多个信息系统共用的数据被存储在多个地方。在 DBMS 中,相互链接的表构成统一的数据结构,极大提升数据质量与访问效率。实体联系图(E-R 图)是表示系统实体之间逻辑关系与交互的模型,提供系统整体视图和创建物理数据结构的蓝图。规范化是通过为数据库中每张表指定字段/属性来创建表设计的过程;表设计规定字段并标识主键。三个范式构成一个递进过程,其中第三范式代表最佳设计,多数业务数据库都应按第三范式设计。
陷阱:72 选 data integrity(完整性是目标,冗余才是"同一数据存多处"的问题);75 选 second normal form("best design" 对应 3NF)。
三、收录说明
| 项目 | 情况 |
|---|---|
| 综合知识 | 75 题题面完整、解析详细(多数为官方口径),是质量很高的一套 |
| 存疑题 | 第 11(最晚/最早截止期表述)、19(选项疑为"数据类"误录)、44—45(类图与 4+1 视图归属)、70(缺网络图) |
| 残缺 | 第 44 题 UML 图、第 70 题作业表未保留,标〔图缺失〕 |
| 案例分析 | 5 题全收录,参考答案完整 |
| 论文 | 4 题题面 + 写作要点(SAAM/ATAM 对比、6 种软件设计方法、数据湖 vs 数据仓库六维对比) |
| 建议用法 | 综合知识适合整卷模考;案例一(规则 vs 面向对象 + 效用树)与 2020/2021 必做题同型,可三卷连做;案例四(缓存三问)是"缓存一致性"专题的核心母题 |
四、案例分析(1 必做 + 4 选 2)
试题一(必做):用户管理系统 —— 基于规则 vs 面向对象 + 效用树(25 分)
题面要点
按消费级别、消费历史、信用情况划分用户等级并给出折扣方案。需求:(a) 四级用户且能动态调整;(b) 安全防护、检测防御黑客攻击;(c) 正常负载下商品查询 0.5 秒响应;(d) 节假日按实时消费动态调整折扣力度;(e) 主站点断电后 5 秒内重定向;(f) 用户名规则;(g) 网络失效后 15 秒内发现并启用备用网络;(h) 视频 1024×768、40 帧/秒;(i) 扩容 10 人/月内完成部署测试;(j) 用户信息数据库所有操作完整记录;(k) 更改 Web 界面接口 4 人/周内完成;(l) 提供远程调试接口。
问题
- 指出更适合的架构风格,并从用户级别、折扣规则定义的灵活性、可扩展性、性能四方面比较两种风格。
- 在效用树中填质量属性名称,并把 (a)—(l) 填入对应位置。
解题框架
第 1 问:更适合基于规则的系统(rule-based system)。
| 比较项 | 面向对象风格 | 基于规则的风格 |
|---|---|---|
| 用户级别 | 级别被编码为类/对象,新增级别需改代码、重新编译 | 级别描述为规则数据,可在运行期增删改 |
| 折扣规则定义灵活性 | 规则硬编码在方法中,调整需改代码并重启系统 | 规则与执行分离,可动态修改、即时生效 |
| 可扩展性 | 新增级别/规则需重新定义对象 + 重启,扩展成本高 | 只需新增规则条目,由解释器加载,扩展性好 |
| 性能 | 直接调用、无解释开销,性能好 | 需实时解释规则,性能较差 |
- 结论理由:题干反复强调"动态调整等级""按实时消费动态调整折扣"→ 规则变化频繁是主要矛盾 → 选规则系统;若规则稳定、追求高性能才选面向对象。
- 得分点:四栏逐项对比;点明"规则以数据形式外置 + 解释执行"这一机制;承认规则系统性能较差(辩证)。
- 典型失分:只说"规则系统灵活"不比较;把性能栏写反(规则系统因解释而慢)。
第 2 问(效用树):
| 质量属性 | 需求编号 |
|---|---|
| 安全性 | (b) 攻击检测防御、(j) 数据库操作完整记录 |
| 可修改性 | (i) 10 人/月扩容、(k) 4 人/周改界面 |
| 性能 | (c) 0.5 秒查询、(h) 1024×768@40fps |
| 可用性 | (e) 5 秒重定向、(g) 15 秒发现并启用备用网络 |
- (a)(d)(f)(l) 属功能需求/约束,不入质量属性树:(a) 等级动态调整是功能;(f) 用户名规则是约束;(l) 远程调试可归可测试性(若树中有该分支)。
- 得分点:四类属性齐全;"人·月/人·周"→可修改性、"秒"且与故障相关→可用性、"秒"且与正常请求相关→性能。
- 陷阱:把 (h) 视频分辨率/帧率当可用性(它是性能的响应度量);把 (j) 审计当可修改性。
试题二:在线订餐管理系统 —— 0 层 DFD 补全(25 分)
题面要点
功能:在线订餐(客户选餐→提交订单→显示费用→确认→支付)、厨房备餐(按已付款订单加工)、食材采购(库存低于阈值自动向供应商采购并更新库存)、生成报表(周末/月末给经理出订单与库存统计)。给出未完成的 0 层 DFD。
问题
- 给出外部实体 E1—E4 与加工 P1—P4 的名称。
- 说明需补充哪些数据流才能构成完整的 0 层 DFD。
- 说明 DFD 与系统流程图的区别。
解题框架
第 1 问:
- E1 = 客户;E2 = 厨房;E3 = 经理;E4 = 供应商。
- P1 = 在线订餐;P2 = 厨房备餐;P3 = 生成报表;P4 = 食材采购。
- 技巧:实体从"谁提交/谁接收"倒推;加工名直接从功能条目取动宾短语。
第 2 问(补 4 条流,按 DFD 平衡规则):
- 增加 E1 → P1"餐品订单"(P1 原本只有输出无输入 → "无输入"错误);
- 增加 P1 → P2"餐品订单"(P2 同样无输入);
- 增加 D1 → P3"订单汇总"(P3 需要订单数据);
- 增加 P3 → E3"统计报表"(P3 只有输入无输出 → "黑洞"错误)。
- 得分点:每条流写"起点 → 终点 + 数据流名称"三要素;指出错误类型(无输入/黑洞/灰洞)。
- 陷阱:只写数据流名称不写方向;忘记"数据流必须从加工/实体/存储之一出发并终止于另一元素"。
第 3 问(三点区别):
- 并发性:DFD 中加工可并行;系统流程图在某一时刻只能处于一个处理过程(串行控制流)。
- 描述内容:DFD 描述数据流(数据从哪来、经什么加工、到哪去);系统流程图描述控制流(执行顺序)。
- 计时标准:DFD 展现全局处理过程、各过程遵循不同计时标准;系统流程图各处理过程遵循一致的计时标准。
- 可补:DFD 用于逻辑建模(与实现无关),系统流程图用于物理建模(涉及具体技术与环境)。
试题三:宇航装备 CPS —— 定义、分层与安全威胁(25 分)
题面要点
CPS 结构分感知层、网络层、控制层。给出飞行器系统功能组成图(10 项功能:飞行传感器管理、步进电机控制、显控、发电机控制、环控、配电管理、转速传感器、传感器总线、飞行员、火警信号探测)。
问题
- (300 字内)说明 CPS 定义及各层含义。
- 判断 10 项功能分别属于哪一层,指出哪项不属于任何一层。
- (100 字内)说明 CPS 的三类安全威胁,每类至少举两例。
解题框架
第 1 问:
- 定义:CPS 是计算进程与物理进程的统一体,集计算(Computation)、通信(Communication)、控制(Control)于一体(3C 融合),通过人机交互接口与物理过程交互,以远程、可靠、实时、安全、协作的方式操控物理实体。
- 感知层:由传感器、控制器、采集器等末端设备组成,负责采集物理环境数据并上传、接收指令并执行变换。
- 网络层:连接信息世界与物理世界的桥梁,负责数据传输,提供实时网络服务,保证分组传输的实时性与可靠性。
- 控制层:对感知数据进行分析/认知,做出决策并将结果返回客户端(可视化呈现/下发控制)。
第 2 问:
- 感知层:2 步进电机控制、4 发电机控制、7 转速传感器、10 火警信号探测(传感器与末端执行设备);
- 网络层:8 传感器总线(传输通道);
- 控制层:1 飞行传感器管理、3 显控、5 环控、6 配电管理(数据分析与管理决策);
- 不属于任何一层:9 飞行员(人是 CPS 的人机交互接口/操作者,不是系统层次内的组件)。
- 得分点:按"末端采集/执行 → 感知层;总线/网络 → 网络层;管理/决策/显示 → 控制层"归类;明确指出"人不在层内"。
第 3 问:
- 感知层:感知数据破坏、信息窃听、节点捕获(可加:节点被旁路、物理篡改);
- 网络层:拒绝服务攻击(DoS)、选择性转发、方向误导(可加:女巫攻击、合谋攻击);
- 控制层:用户隐私泄露、恶意代码、非授权访问(可加:控制指令篡改)。
- 得分点:三类分层写清,每类 ≥2 例;字数控制在 100 字内(要精炼,只写"层:威胁1、威胁2")。
试题四:分布式缓存 —— 双写不一致与缓存三大问题(25 分)
题面要点
高并发下用 Redis 缓解数据库压力。团队方案:读时先读缓存、未命中读库;写时"先写缓存再写库"或"先写库再写缓存"。运行中出现:缓存未命中导致大量请求打到数据库(含黑客用不存在的随机 key 攻击);大量 key 同时失效导致数据库瞬时爆量。
问题
- (100 字内)说明原方案为何未解决数据不一致。
- 补全王工方案中读写的 (a)—(d)。
- (100 字内)说明"空值缓存"方案的问题与解决思路。
- (100 字内)给出解决"大量 key 同时失效"的两种思路。
解题框架
第 1 问:
- 存在双写不一致:无论先写缓存还是先写库,都可能一方成功、另一方失败(缓存写成功而库写失败,或反之),造成两边数据不同;多请求并发时还会产生读写冲突(旧值覆盖新值)。
- 得分点:"双写 + 部分失败 + 并发冲突"三个词。
第 2 问:
- (a) 从数据库中读取数据(读库);
- (b) 更新缓存中该 key 的值(回填缓存);
- (c) 数据库(先写库);
- (d) 删除缓存 key(或使该 key 失效)。
- 要点:写路径必须是"先写库、后删缓存"——写库失败可直接返回失败;写库成功后删缓存,下次读时自然回填,避免"两次写"的不一致。这是 Cache Aside 标准范式。
- 陷阱:(d) 写"更新缓存"(并发下仍可能旧值覆盖,删除比更新更安全)。
第 3 问:
- 问题:系统中不存在的 key 是无限的,若都缓存空值会耗尽内存、引发性能急剧下降(还可能被恶意随机 key 打爆)。
- 解决:请求先过滤——只允许"系统中可能存在的 key"进入缓存/查询(如用 Bitmap/BloomFilter 做前置过滤,或用正则/ID 规则校验),非法 key 直接拒绝。
第 4 问(任答两种):
- 给不同 key 设置随机/不同过期时间,使失效时间均匀分布(从根源避免同时失效);
- 加互斥锁/队列,控制回源数据库的线程数(缓存更新串行化,牺牲部分吞吐换稳定);
- 多级缓存(本地 Caffeine + Redis),减少对数据库的直接访问;
- 预热 + 限流降级(对数据库侧做保护)。
- 得分点:"随机过期"是最标准的答案,必须写。
试题五:物流车辆管理系统 —— 非功能需求分类 + 分层架构填空 + SQL 注入(25 分)
题面要点
非功能需求:(1) >50 终端并发;(2) 车牌识别 <1s;(3) 7×24 工作;(4) 友好界面;(5) 抵御 SQL 注入;(6) 独立事务响应 <3s;(7) 故障 1 小时内恢复;(8) 新用户学习 <1 小时。采用分布式架构,使用 Kafka、Redis。
问题
- 把 (1)—(8) 归入性能、安全性、可用性、易用性四类。
- 从 (a)—(j) 中选择补全架构图(7 空):(a) 数据存储层、(b) Struts2、(c) 负载均衡层、(d) 表现层、(e) HTTP 协议、(f) Redis 数据缓存、(g) Kafka 分发消息、(h) 分布式通信处理层、(i) 逻辑处理层、(j) CDN 内容分发。
- (200 字内)说明什么是 SQL 注入,并给出两种抵御方式。
解题框架
第 1 问:
- 性能:(1) 50 并发、(2) 识别 <1s、(6) 事务响应 <3s;
- 安全性:(5) 抵御 SQL 注入;
- 可用性:(3) 7×24、(7) 1 小时恢复;
- 易用性:(4) 友好界面、(8) 学习 <1 小时。
- 判据:并发/时延→性能;防护→安全性;持续服务与恢复→可用性;学习成本/界面→易用性。
- 陷阱:把 (2) 车牌识别 <1s 当"功能需求"(它是带指标的性能需求);把 (8) 当"可测试性"。
第 2 问(自下而上四层):
- (a) 数据存储层(最底层,MySQL/文件)
- (h) 分布式通信处理层(Kafka 消息、RPC)
- (g) Kafka 分发消息(通信层内的具体组件)
- (i) 逻辑处理层(业务逻辑)
- (f) Redis 数据缓存(旁挂于逻辑/存储层之间的缓存)
- (c) 负载均衡层(Nginx/LVS,分发请求)
- (d) 表现层(Web/App 界面)
- 未使用:(b) Struts2(SSM/SpringMVC 时代已不用)、(e) HTTP 协议(是协议不是层)、(j) CDN(静态资源分发,图中无对应位置)。
- 得分点:能说出"分层架构 + 每层职责 + 技术选型理由";干扰项要说明为何不选。
- 陷阱:把"表现层"放最下面;把 CDN 当负载均衡。
第 3 问:
- 定义:SQL 注入是把 SQL 命令插入到 Web 表单输入、URL 参数或页面请求的查询字符串中,欺骗服务器执行恶意 SQL,从而窃取/篡改数据、绕过认证甚至控制数据库。
- 防御(任答两种):
- 参数化查询/预编译语句(PreparedStatement),把输入当数据而非代码;
- 输入合法性校验(白名单、正则、类型/长度限制);
- 用存储过程封装查询;
- 最小权限的数据库账号 + ORM 框架避免拼接 SQL;
- 部署 WAF/数据库防火墙、漏洞扫描;
- 敏感数据加密存储、错误信息不回显。
- 得分点:定义中"拼接/插入 SQL 命令 + 欺骗服务器执行";防御要点名"参数化查询"(最标准答案)。
五、论文(4 选 1)
本卷附写作要点(软件设计方法 6 种、SAAM 与 ATAM 对比、数据湖与数据仓库六维差异),以下为要点整理 + 结构补充。
试题一:论软件设计方法及其应用
三问:①项目背景与本人工作;②有哪些软件设计方法及各自适用场景;③项目中用了哪种、实施效果。
要点(六种方法)
- 模型驱动设计:用图形化模型描述系统技术与实现,从分析阶段的逻辑模型导出设计模型,设计模型作为构造与实现的蓝图。适用:模型可自动/半自动转换、需要早期验证的复杂系统。
- 结构化设计:面向过程,自顶向下分解为模块层次(模块 = 指令集合/子程序),遵循高内聚、低耦合与设计指南。适用:需求稳定、以数据处理为主的中小型系统。
- 信息工程:模型驱动、以数据为中心但对过程敏感,主要工具是(物理)实体关系图。适用:数据密集型、以数据库为核心的企业系统。
- 原型设计:迭代、设计者与用户紧密协作,构造小规模、不完整但可运行的示例。适用:需求不明确、用户参与度高、界面/交互为主的系统。
- 面向对象设计:精化 OOA 阶段的对象需求定义并补充设计相关对象,消除"数据"与"过程"的分离。适用:业务模型复杂、需复用与演化的系统。
- 快速应用开发(RAD):结构化技术(尤其信息工程)+ 原型化 + 联合应用开发(JAD)的组合,反复迭代快速定义需求并设计系统。适用:工期紧、可分解、用户可全程参与的项目。
- 写作建议:主写 1—2 种(如"结构化设计做总体、面向对象设计做核心子系统"),其余作对比;效果给量化(缺陷率、复用率、工期)。
试题二:论软件系统架构评估及其应用
三问:①项目背景与本人工作;②有哪些评估方法,并从评估目标、质量属性、评估活动比较;③项目中用了哪种、实施过程与效果。
要点(SAAM vs ATAM)
| 维度 | SAAM | ATAM |
|---|---|---|
| 定位 | 最早的场景驱动架构分析方法,最初用于比较不同架构、分析可修改性,后扩展到可移植性、可扩充性 | 在 SAAM 基础上发展,多质量属性折中分析(性能、可用性、安全性、可修改性) |
| 评估目标 | 验证架构对特定系统需求的适用能力,验证基本架构假设与原则;可比较不同架构 | 在多个相互影响的质量属性下理解架构,确定折中的必要性,识别风险点/敏感点/权衡点 |
| 质量属性 | 以可修改性为主,可扩展到其他单一属性 | 同时处理多个质量属性并做 trade-off |
| 评估活动 | 五步:场景开发 → 架构描述 → 单个场景评估 → 场景交互 → 总体评估 | 四活动域:场景与需求收集 → 架构视图与场景实现 → 属性模型构造与分析 → 折中 |
- 可补:CBAM(成本效益分析法,在 ATAM 基础上引入经济性)、ARID(针对部分架构)、SAEM、ALMA(针对可修改性/可维护性)。
- 实施过程可写:组建评估小组 → 收集架构文档与业务目标 → 与利益相关者开发质量属性场景(刺激-环境-响应)→ 构造效用树并按"重要度/实现难度"排序 → 映射到架构决策 → 识别风险点/敏感点/权衡点 → 形成评估报告与改进建议。
- 效果:提前发现 N 个高风险决策、减少返工 X 人天。
试题三:论数据湖技术及其应用
三问:①项目背景与本人工作;②数据湖技术,并从主要数据来源、Schema 转换时机、存储成本、数据质量、面对用户、主要支撑应用类型六方面对比数据仓库;③项目中如何用数据湖做企业数据管理及效果。
要点(六维对比)
| 维度 | 数据仓库 | 数据湖 |
|---|---|---|
| 主要数据来源 | 以业务系统(ERP/CRM)的关系数据为主,经 ETL 抽取 | 关系数据 + 移动 App、IoT 设备、社交媒体、日志、音视频等半/非结构化数据 |
| Schema 转换时机 | 写时模式(Schema-on-Write):入库前必须定义结构并清洗转换 | 读时模式(Schema-on-Read):先存原始数据,使用时再定义结构 |
| 存储成本 | 较高(专用 MPP 设备/商业数据库) | 较低(对象存储/HDFS,按需扩展) |
| 数据质量 | 高(经清洗、丰富、转换,是"可信单一信息源") | 原始数据质量参差,需在分析时治理 |
| 面对用户 | 业务分析师、报表用户 | 数据科学家、算法工程师、分析师(范围更广) |
| 主要支撑应用 | 报表、BI、OLAP 多维分析 | 大数据处理、实时分析、全文搜索、机器学习、数据可视化 |
- 补充:数据湖风险 = 易退化为"数据沼泽",需数据治理/元数据/数据目录;架构上可写"湖仓一体(Lakehouse:Delta/Iceberg/Hudi + 计算引擎)"。
- 效果:数据接入周期从周级降到天级、支撑 N 个 AI 模型、存储成本下降 X%。
试题四:(本卷第四题在公开源中未单列,仅见前三题完整题面)
说明:公开源 S3 仅收录 2019 下论文试题一至试题三的完整题面与写作要点,试题四缺失。本库不猜测、不补题,如需第四题请以官方真题集核验。
六、使用建议
- 综合知识解析质量高,解析本身就是教材复习材料,建议"做题 → 读解析 → 回教材定位"三步法。
- 高频送分点:前趋图边集、页式地址变换与淘汰、存储过程/视图的区别、函数依赖闭包与无损分解、分布式数据库模式层次、DHCP、基准测试程序、CSF 优先次序、应用集成四层、软件生命周期三阶段、需求变更三阶段、软件方法学三分类、构件分类三法、逆向工程四层次、性能测试四类型、Garlan & Shaw 五类风格、ESB、ABSDM 六阶段、创建型模式四例、质量属性场景 + 策略、MIME/PGP、著作权保护期、总时差。
- 案例一与 2020/2021 必做题构成"效用树三连做",务必把"六类质量属性 + 关键词判据"练到条件反射。
- 案例四(缓存)与 2021 下案例三、2020 下案例四共同组成"缓存一致性专题",建议三题合并整理成一张"读路径/写路径/穿透/击穿/雪崩"对照表。
- 论文:SAAM/ATAM 对比表、数据湖 vs 数据仓库六维表可直接背诵;软件设计六方法适合做"方法论"通用素材。
七、来源
| 编号 | 来源 | 用途 | 可信度 |
|---|---|---|---|
| S1 | CSDN「程序员小圆」《系统架构设计师-2019 年下半年上午综合知识真题及答案》 https://blog.csdn.net/yuanmayuzhou/article/details/143683751 | 综合知识 75 题 + 详细解析 | 高(解析为官方口径,题面完整) |
| S2 | CSDN「程序员小圆」《系统架构设计师-2019 年下半年下午案例真题及答案》 https://blog.csdn.net/yuanmayuzhou/article/details/143686774 | 案例 5 题 + 参考答案 | 高(5 题齐全) |
| S3 | CSDN「程序员小圆」《系统架构设计师-2019 年下半年下午论文真题及答案》 https://blog.csdn.net/yuanmayuzhou/article/details/143686931 | 论文 3 题题面 + 写作要点 | 中高(仅 3 题,试题四缺失) |
说明:
- 第 11、19、44—45、70 题存在表述或选项异常,已标存疑并在解析中说明两种理解。
- 论文试题四在公开源中缺失,本库不补题。
- 案例二/三的图示(DFD 图、飞行器功能组成图)未保留,答案依据来源解析复原。