软件架构设计师 · 考前突击复习

整合重要考点 + 易错题 + 考察重点 | 最后冲刺

📋 13篇考点总结 ⚠️ 8类易错题 🎯 5项考察重点 📅 2026年5月
1

计算机基础

⭐⭐⭐ 进程管理 | ⭐⭐ 存储·死锁·磁盘
计算机基础 ├── 进程三态转换 ⭐⭐⭐ 就绪→运行→等待(等待态不能直接到运行态) ├── PV 操作 ⭐⭐⭐ P申请(S--) V释放(S++) 前驱图箭头=信号量 ├── 死锁四条件 ⭐⭐ 互斥·请求保持·不剥夺·循环等待 ├── 银行家算法 ⭐⭐ Need=Max-Allocation 安全序列判断 ├── 页式/段式/段页式 ⭐⭐ 页固定·段可变·段页兼有 └── 磁盘调度 ⭐⭐ FCFS→SSTF→SCAN→CSCAN 索引文件 1KB/4B=256
考点等级核心内容
进程三态转换⭐⭐⭐就绪→运行(调度)、运行→就绪(时间片到)、运行→等待(等事件)、等待→就绪(事件发生)
PV 操作与前驱图⭐⭐⭐P(S): S--申请资源;V(S): S++释放资源;S>0可用资源数,S<0等待进程数;前驱图中箭头数=信号量数
死锁必要条件⭐⭐互斥条件、请求与保持、不剥夺条件、循环等待 —— 破坏任一即可预防死锁
银行家算法⭐⭐Need = Max - Allocation;找 Need ≤ Available 的进程,假设完成释放资源,重复判断安全序列
页式/段式/段页式⭐⭐页式:页大小固定、利用率高;段式:逻辑分段、长度可变;段页式:先分段再分页
索引文件计算⭐⭐物理块1KB÷地址项4B=256项;直接索引=项数×块;一级间接=256×块;二级=256²×块
磁盘调度算法⭐⭐FCFS先来先服务、SSTF最短寻道优先(可能饥饿)、SCAN电梯算法、CSCAN循环扫描
位示图每bit表示一个磁盘块:0空闲、1占用;字长16位则一字表示16块
⚠️ 易错点:
① 等待态不能直接到运行态,必须先经过就绪态!
② P是申请(S--),V是释放(S++)——不要记反!
③ 线程是CPU调度单位,进程是资源分配单位——"进程管资源,线程管执行"
④ 页式存储地址转换:页面大小4K=1000H,逻辑地址÷1000H得页号,余数为页内偏移;页号换块号,偏移不变。
🧠 速记口诀
进程三态:就绪→调度→运行→时间片到→就绪;运行→等事件→等待→事件到→就绪
死锁:互请不循(互斥·请求保持·不剥夺·循环等待)
PV:P申请V释放,前驱P后继V,初值为0
存储:页固定段可变段页先分后分页
磁盘:F-S-S-C(先来·最短·电梯·循环)
2

计算机网络

⭐⭐⭐ OSI七层·协议端口 | ⭐⭐ 子网划分·设备层次
计算机网络 ├── OSI七层 ⭐⭐⭐ 应表会传网数物 | TCP/IP四层合并上三下二 ├── 常用端口 ⭐⭐⭐ HTTP80 HTTPS443 DNS53 SMTP25 FTP20/21 DHCP67/68 ├── TCP vs UDP ⭐⭐ TCP可靠面向连接 | UDP不可靠效率高 ├── ARP/RARP ⭐⭐ ARP=IP→MAC RARP=MAC→IP | ICMP=ping ├── 设备层次 ⭐⭐ 交换机(数据链路层/MAC) 路由器(网络层/IP) 集线器(物理层) ├── 子网划分 ⭐⭐ 子网数=2^借位数 主机数=2^主机位-2(减网络+广播地址) └── 综合布线 ⭐ 水平同楼层 垂直跨楼层 设备间建筑核心
协议端口作用协议端口作用
HTTP80网页传输HTTPS443加密HTTP
FTP20/21文件传输SMTP25邮件发送
POP3110邮件收取IMAP143邮件访问
DNS53域名解析DHCP67/68自动分配IP
Telnet23远程登录(明文)SSH22安全远程登录
SNMP161网络管理

TCP

面向连接·可靠·保证顺序·流量控制·拥塞控制·效率低
HTTP/FTP/SMTP/SSH

UDP

无连接·不可靠·不保证顺序·无流量控制·效率高
DNS/DHCP/视频/语音/直播

交换机

数据链路层 | 根据MAC地址转发帧 | 隔离冲突域

路由器

网络层 | 根据IP地址选路 | 隔离广播域
⚠️ 易错点:
① 交换机≠网络层设备(它在数据链路层,看MAC地址)
② 路由器≠数据链路层设备(它在网络层,看IP地址)
③ ARP=IP→MAC,RARP=MAC→IP —— 名字和方向反着记:ARP看似"地址解析"但实际是IP找MAC
④ 子网主机数必须减2(网络地址+广播地址)
⑤ 综合布线:管理子系统=同一楼层,设备间=整个建筑,垂直=不同楼层
🧠 速记口诀
OSI:应表会传网数物 | TCP/IP:应传网接(合并上三下二)
端口:20/21FTP 22SSH 23Telnet 25SMTP 53DNS 67/68DHCP 80HTTP 110POP3 143IMAP 161SNMP 443HTTPS
子网:借n位→子网数=2ⁿ,主机数=2^(32-n)-2
3

信息安全基础

⭐⭐⭐ 加密·签名 | ⭐⭐ PKI·安全协议·安全模型
信息安全基础 ├── 五要素 ⭐⭐⭐ 机密性·完整性·可用性·可控性·可审查性 ├── 对称加密 ⭐⭐⭐ 一个密钥·速度快·密钥分发难 | DES/3DES/AES/IDEA/SM1/SM4 ├── 非对称加密 ⭐⭐⭐ 公钥+私钥·速度慢·适合签名 | RSA/ECC/SM2 ├── 信息摘要 ⭐⭐⭐ 单向·定长·雪崩效应 | MD5/SHA/SM3 ├── 数字签名 ⭐⭐⭐ 发送方私钥签名+公钥验证 | 接收方公钥加密+私钥解密 ├── PKI ⭐⭐ CA签发证书·RA审核申请·证书库存储 ├── 安全协议 ⭐⭐ IPsec网络层 | SSL/TLS/SSH应用层 | PPTP/L2TP数据链路层 └── 安全模型 ⭐⭐ BLP机密性(保密) | Biba完整性(防篡改)
对比对称加密非对称加密
密钥一个共享密钥公钥+私钥
速度
密钥分发困难容易(公钥可公开)
用途大量数据加密数字签名·密钥交换·认证
算法DES/3DES/AES/IDEA/SM1/SM4RSA/ECC/SM2
⚠️ 易错点:
① 机密性=不泄露,完整性=不篡改 —— 两码事!
② 被动攻击破坏机密性(偷看不改),主动攻击破坏完整性/可用性
③ 数字签名=发送方私钥签名;保密传输=接收方公钥加密 —— 方向别搞反!
④ 摘要≠加密(摘要不可逆,只用于完整性校验)
⑤ SM2非对称·SM3摘要·SM4对称
⑥ BLP关注机密性,Biba关注完整性
🧠 速记口诀
五要素:机密性·完整性·可用性·可控性·可审查性
加密:对称快分发难,非对称慢适合签名
签名:发送方私钥签名+公钥验证;传输:接收方公钥加密+私钥解密
国产:SM2非对称 SM3摘要 SM4对称
协议层次:IPsec网络层 | PPTP/L2TP数据链路层 | SSL/TLS/SSH应用层
模型:BLP机密 Biba完整
4

系统可靠性分析

⭐⭐⭐ 串联·并联计算 | ⭐⭐ N版本·恢复块
系统可靠性 ├── 核心公式 ⭐⭐⭐ R(t)=1-F(t) | MTBF=MTTF+MTTR | MTTF=1/失效率 ├── 串联系统 ⭐⭐⭐ R=R₁×R₂×...×Rₙ 全部正常才正常,部件越多可靠性越低 ├── 并联系统 ⭐⭐⭐ R=1-(1-R₁)(1-R₂)...(1-Rₙ) 一个正常就正常 ├── N版本程序设计 ⭐⭐ 表决器·向前恢复·实时性好·多机 └── 恢复块方法 ⭐⭐ 验证测试·向后恢复·实时性差·单机

🔗 串联系统

公式:R = R₁ × R₂ × ... × Rₙ
失效率:λ = λ₁ + λ₂ + ... + λₙ
特点:全部正常才正常,越多越不可靠

🔀 并联系统

公式:R = 1 - (1-R₁)(1-R₂)...(1-Rₙ)
n个相同R₀:R = 1 - (1-R₀)ⁿ
特点:一个正常就正常,冗余提高可靠性
对比项恢复块方法N版本程序设计
运行环境单机多机
错误检测验证测试程序表决器
恢复策略向后恢复向前恢复
实时性
关键风险验证测试不准确多版本不独立·共同缺陷
⚠️ 易错点:
① F(t)是失效概率,R(t)才是可靠度,R(t)=1-F(t)
② 并联系统不要直接乘!先算"全部失效概率",再用1减
③ 软件没有物理磨损!失效来自潜在缺陷被触发
④ MTTF=坏之前平均时间,MTTR=修好平均时间,MTBF=两次故障间隔
⑤ 恢复块靠验证测试+N版本靠表决器+向前/向后恢复方向
🧠 速记口诀
可靠性 = 规定条件+规定时间+规定功能
R(t)=1-F(t) | MTBF=MTTF+MTTR | MTTF=1/失效率
串联:全部正常才正常 R=R₁×R₂×...×Rₙ
并联:一个正常就正常 R=1-(1-R₁)(1-R₂)...(1-Rₙ)
恢复块=验证测试+向后恢复+实时性差 | N版本=表决器+向前恢复+实时性好
5

需求工程

⭐⭐⭐ DFD数据流图 | ⭐⭐ UML用例图·类图关系
需求工程 ├── 需求分类 ⭐⭐ 业务需求→用户需求→功能需求 | 基本·期望·兴奋(QFD) ├── 结构化分析 ⭐⭐⭐ DFD(功能模型)+STD(行为模型)+E-R图(数据模型)+数据字典 ├── DFD答题技巧 ⭐⭐⭐ 补充实体(人物/外部系统)·存储("...表")·数据流(父图与子图平衡)·加工(动词+名词) ├── UML用例图关系 ⭐⭐ include包含(必须)·extend扩展(可选)·泛化(父子) ├── UML类图关系 ⭐⭐ 依赖·泛化·关联·聚合(生命周期不同)·组合(生命周期相同)·实现 └── 需求获取 ⭐ 访谈·问卷·观察·原型·JAD
⚠️ 易错 — 用例图关系 vs 类图关系:
用例图只有3种关系:包含(include)必须执行、扩展(extend)可选、泛化父子继承
类图有6种关系:依赖·泛化·关联·聚合·组合·实现
聚合vs组合:聚合生命周期不同(车队和车),组合生命周期相同(人和心脏)
包含vs扩展:包含是必须的(⟪include⟫),扩展是可选的(⟪extend⟫)
💡 DFD答题套路:
1. 数据平衡原则:父图与子图数据流一致
2. 补充实体:找人物角色或外部系统
3. 补充存储:找"...表"、"文件"关键词
4. 补充数据流:对比顶层图和0层图差异、检查加工是否只有入无出或反之
5. 补充加工名:在说明文字中找"动词+名词"
🧠 速记口诀
用例图关系:包(含)饭(泛化)菜(扩展)
类图关系:依饭关聚组实(依赖·泛化·关联·聚合·组合·实现)
聚合组合同为整体部分,聚合生命不同组合同
6

软件测试

⭐⭐⭐ 白盒覆盖·黑盒方法 | ⭐⭐ 测试阶段
软件测试 ├── 白盒测试 ⭐⭐⭐ 6种覆盖标准(从弱到强) │ 语句覆盖 < 判定覆盖 < 条件覆盖 < 判定-条件覆盖 < 条件组合覆盖 < 路径覆盖 ├── 黑盒测试 ⭐⭐⭐ 等价类划分·边界值分析·因果图·判定表·场景法·错误推测 ├── 测试阶段 ⭐⭐ 单元(白盒/详细设计)→集成(灰盒/概要设计)→系统(黑盒/需求)→确认(黑盒/需求) └── 灰盒测试 介于白盒黑盒之间,用于集成测试
⚠️ 核心易错:条件覆盖不一定满足判定覆盖!
这是白盒测试中最经典的考点。条件覆盖只要求每个条件的T/F都出现过,但不要求整个判定表达式的T/F分支都覆盖。
例:if(A&&B) — A=true,B=false 和 A=false,B=true 满足了条件覆盖,但if永远为false,true分支从未执行!
覆盖标准要求强度
语句覆盖每条语句至少执行一次最弱
判定覆盖每个判定的T/F分支各执行一次
条件覆盖每个条件的T/F各出现一次中(不保证判定覆盖!)
判定-条件覆盖同时满足判定覆盖+条件覆盖较强
条件组合覆盖条件的所有组合各执行一次
路径覆盖所有可能路径各执行一次最强
🧠 速记口诀
白盒覆盖:语句定条判条路(语句·判定·条件·判定-条件·条件组合·路径)
黑盒方法:等边因判场错(等价类·边界值·因果图·判定表·场景法·错误推测)
测试阶段:单集成系确(单元→集成→系统→确认)
条件覆盖不一定满足判定覆盖!← 必考
7

大型网站架构演化

⭐⭐⭐ 六阶段演化 | ⭐⭐ 五大设计原则
大型网站架构演化(自底向上逐层解耦) 阶段① 单体→垂直拆分 应用·数据库·文件分离 阶段② 引入缓存层 Memcache/Redis,旁路缓存模式 阶段③ 集群+负载均衡 Session共享(Redis) 有状态→无状态 四层/七层负载均衡 阶段④ CDN加速 动静分离·边缘节点就近访问 阶段⑤ NoSQL多元化 按数据特征选型 Redis/MongoDB/ES/HBase 阶段⑥ 微服务+响应式 JWT无状态认证·响应式Web设计
#阶段核心变革关键技术
1单体→垂直拆分应用/数据库/文件分离独立服务器
2引入缓存读压力从数据库剥离Memcache/Redis
3集群+负载均衡横向扩展,Session共享Nginx/LVS/Redis
4CDN加速静态资源就近访问CDN/动静分离
5NoSQL多元化按数据特征选存储引擎MongoDB/ES/HBase
6微服务+适配无状态认证+多端适配JWT/响应式设计
💡 五大设计原则:
① 纵向拆分——应用·数据·文件分离 ② 横向扩展——集群+负载均衡
③ 缓存前置——层层加缓存(浏览器→CDN→反向代理→本地→分布式) ④ 职责分离——不同数据不同存储
⑤ 无状态设计——服务不存状态,Redis或JWT解耦
8

Redis 与缓存

⭐⭐⭐ 缓存三大问题 | ⭐⭐ CAP定理·持久化·分布式
Redis 与缓存 ├── 五大数据类型 ⭐ String·Hash·List·Set·Sorted Set(排行榜) ├── 持久化 ⭐⭐ RDB快照全量快恢复低安全 | AOF日志增量慢恢复高安全 ├── 缓存三大问题 ⭐⭐⭐ │ ├── 雪崩:大量key同时失效 → 随机失效时间/二级缓存/加锁 │ ├── 穿透:查询不存在的数据 → 布隆过滤器/缓存空值 │ └── 击穿:单个热点key过期 → 互斥锁/逻辑过期/永不过期 ├── Cache-Aside ⭐⭐ 读:先缓存后数据库 | 写:先数据库后删缓存 ├── 分布式方案 ⭐⭐ 主从(手动切)→哨兵(自动切)→集群(slots分片) ├── CAP定理 ⭐⭐ C一致性 A可用性 P分区容错 | 三者不可兼得 | 分布式默认需P └── 淘汰策略 ⭐ noeviction默认 | LRU最近最少用 | volatile-仅过期key | allkeys-全部key

❄️ 缓存雪崩

原因:大量key同时失效
方案:①随机失效时间 ②加锁/队列 ③二级缓存

🔮 缓存穿透

原因:查询不存在的数据
方案:①布隆过滤器 ②缓存空值(短过期)

💥 缓存击穿

原因:单个热点key过期+高并发
方案:①互斥锁 ②逻辑过期 ③永不过期

bgsave不阻塞原理

fork()子进程+Copy-on-Write
子进程读快照写RDB
父进程继续服务不阻塞
方案故障切换数据分片适用
主从模式手动不支持读写分离
哨兵模式自动不支持高可用
集群模式自动slot分片高可用+高扩展
⚠️ 易错点:
① CAP三者不可兼得,分布式系统默认必须P,在C和A间权衡
② RDB的save会阻塞主线程,bgsave不会(fork子进程+CowW)
③ Redis默认淘汰策略是noeviction(不淘汰,内存满写入报错)
④ Cache-Aside写流程:先更新数据库→再删除缓存(不是先删缓存!)
🧠 速记口诀
五类型:S H L S Z(String·Hash·List·Set·ZSet)
RDB快AOF安,bgsave fork不阻塞
雪崩=大量同时失效·穿透=查不存在·击穿=热点过期
主从手动→哨兵自动→集群slots
CAP不可兼得,分布式P必选
9

技术组件与中间件

⭐⭐ 构件三大标准·中间件分类·CORBA·大数据五层
技术组件与中间件 ├── 构件 ⭐⭐ 独立部署单元·无外部状态·可第三方组装 │ ├── 三大标准:CORBA(跨平台)·J2EE EJB(Java)·DNA 2000(微软) │ ├── 复用流程:检索→理解→修改→组装 │ └── 检索方法:关键字·刻面(Facet)·超文本 ├── 中间件 ⭐⭐ │ ├── 六分类:通信·事务·数据存取·Web·安全·跨平台 │ └── CORBA架构:ORB+桩/存根+伺服对象+对象适配器+IDL └── 大数据分层 ⭐⭐ 数据源→采集(Flume/Sqoop/Kafka)→存储(HDFS/Hive/HBase)→分析(Spark/Flink)→应用
构件标准平台语言特点
CORBA跨平台多语言通用性强·复杂度高
J2EE EJBJavaJava企业级·生态完善
DNA 2000Windows.NET微软体系·易集成

构件 vs 模块 vs 对象

模块=结构化·不独立
对象=有状态·有唯一标识
构件=独立部署·无外部状态

EJB三种Bean

会话Bean→业务逻辑
实体Bean→O/R映射
消息驱动Bean→异步并发
💡 CORBA核心工作流程:
客户端桩→客户ORB→服务器ORB→对象适配器→伺服对象(真正执行)→原路返回
ORB=对象请求代理,负责解释调用、查找对象、传递参数、返回结果
🧠 速记口诀
构件三标准:CORBA EJB DNA
中间件六类:通事数Web安跨(通信·事务·数据存取·Web·安全·跨平台)
大数据五层:源采存分用(数据源→采集→存储→分析→应用)
ETL=抽取+转换+加载 | 采Flume·存HDFS·算Spark/Flink
10

五大架构风格

⭐⭐⭐ 风格识别·子风格判断 | ⭐⭐ 优缺点·扩展方式
五大架构风格 ├── ① 数据流 ⭐⭐⭐ 批处理·管道过滤器 | 数据驱动·松耦合·交互差 | 编译器·ETL ├── ② 调用返回 ⭐⭐⭐ 主子程序·OO·分层 | 控制流驱动·紧耦合·调用清晰 | 单体·分层架构 ├── ③ 独立构件 ⭐⭐⭐ 事件驱动·进程通信 | 松耦合·难调试·控制流难预测 | 微服务·消息系统 ├── ④ 虚拟机 ⭐⭐ 解释器·规则系统 | 解释执行·灵活·性能较低 | DSL·规则引擎·专家系统 └── ⑤ 仓库 ⭐⭐ 数据库·黑板·超文本 | 数据共享·控制复杂 | 协同编辑·知识推理
风格驱动方式耦合度调试难度并行支持典型应用
数据流数据驱动编译器·ETL·图像处理
调用返回控制流较紧分层架构·C/S
独立构件事件驱动微服务·消息系统
虚拟机规则/程序规则引擎·DSL
仓库数据共享黑板系统·数据库
💡 考场上快速判断风格:
① 看数据是否流动处理 → 数据流(批处理/管道过滤器)
② 看是否函数调用 → 调用返回(主子程序/OO/分层)
③ 看构件是否独立、通过事件通信 → 独立构件(事件驱动)
④ 看是否有解释层/规则引擎 → 虚拟机(解释器/规则系统)
⑤ 看是否围绕共享数据 → 仓库(数据库/黑板/超文本)
⚠️ 独立构件 vs 调用返回(高频对比):
独立构件:事件驱动·构件不直接交互·松耦合·分散控制
调用返回:函数调用·构件直接调用·紧耦合·集中控制
解释器 vs 规则系统:解释器执行程序,规则系统执行规则;规则系统智能性更高、复杂度更高
🧠 速记口诀
五大风格:数调独虚仓(数据流·调用返回·独立构件·虚拟机·仓库)
数据流=水管流水 | 调用返回=打电话 | 独立构件=广播电台
虚拟机=翻译官 | 仓库=图书馆
扩展:流加管·调加服·独加件·虚优引·仓扩存
11

架构描述与评估

⭐⭐⭐ 风险·敏感·权衡点 | ⭐⭐ 4+1视图·ATAM·ADL
架构描述与评估 ├── 4+1视图 ⭐⭐ 逻辑(功能)·开发(代码)·进程(并发)·物理(部署)·用例(驱动其他四视图) ├── ADL三要素 ⭐⭐ 构件·连接件·架构配置(房间墙壁·门走廊·平面图) ├── 四大评估概念 ⭐⭐⭐ │ ├── 风险点=潜在隐患 非风险点=安全决策 │ ├── 敏感点=影响一个质量属性 权衡点=影响多个质量属性 │ └── 权衡点是多个敏感点的交集 = ATAM核心产出 ├── 三大评估方法 ⭐⭐ SAAM(可修改性)→ATAM(多属性权衡)→CBAM(+成本效益) ├── ATAM四阶段 ⭐⭐ ①场景收集→②视图实现→③属性分析→④折中(识别敏感点+权衡点) └── 质量属性 ⭐⭐ 性能·可用性·安全性·可修改性 | 开发期vs运行期

🔴 风险点

潜在的、存在问题的架构决策带来的隐患
例:单点故障·不成熟技术

🟢 非风险点

不会带来隐患的可接受决策
例:采用Spring Boot·使用MySQL

🔵 敏感点

影响某一特定质量属性的构件特性
例:数据库索引→只影响性能

🟣 权衡点

影响多个质量属性的特性
例:缓存策略→影响性能+一致性
=多个敏感点的交集
4+1视图面向对象关注点
逻辑视图用户/设计者功能需求·类·对象
开发视图程序员代码结构·配置·装配
进程视图系统集成人员并发·性能·吞吐量
物理视图系统工程师硬件节点·网络拓扑·部署
用例视图(场景)分析/测试人员功能场景·驱动其他4个视图
评估方法全称侧重点关系
SAAM软件架构分析方法可修改性最早的方法
ATAM架构权衡分析方法多质量属性评价与折中在SAAM基础上发展
CBAM成本效益分析方法成本效益分析在ATAM基础上+成本
⚠️ 易混淆 — 敏感点 vs 权衡点(案例分析必考):
敏感点=影响一个质量属性 | 权衡点=影响多个质量属性 | 权衡点是多个敏感点的交集
风险点≠敏感点:风险点是"隐患",敏感点是"特性"
ADL三要素=构件+连接件+架构配置 | 类比:墙壁+门走廊+平面图
🧠 速记口诀
4+1视图:逻开进物用(用例驱动)
ADL三要素:构件·连接件·架构配置
评估四概念:风险(隐患)·非风险(安全)·敏感(一个)·权衡(多个)
评估三方法:SAAM→ATAM→CBAM(可修改性→多属性→+成本)
ATAM四阶段:场景收集→视图实现→属性分析→折中
12

设计模式(23种 GoF)

⭐⭐⭐ 三类区别 | ⭐⭐ 易混淆模式对比
设计模式 23种 ├── 创建型(5) ⭐⭐ 关注对象创建·创建与使用分离 │ 单例·原型·工厂方法·抽象工厂·构建器 ├── 结构型(7) ⭐⭐ 关注类/对象组合·构建更大结构 │ 代理·适配器·装饰·桥接·外观·享元·组合 └── 行为型(11) ⭐⭐ 关注对象交互·职责分配 模板方法·策略·命令·责任链·状态·观察者·中介者·迭代器·访问者·备忘录·解释器
类型关注点核心问题关键词
创建型对象创建如何创建对象?创建与使用分离
结构型组合结构如何组合类或对象?构建更大结构
行为型交互职责对象之间如何交互?通信方式·职责分配
⚠️ 易混淆模式对比(高频选择/案例题):
工厂方法 vs 抽象工厂:工厂方法创建一种产品,抽象工厂创建产品族
代理 vs 适配器:代理控制访问,适配器接口转换
装饰 vs 代理:装饰增强功能(层层包装),代理控制访问
策略 vs 状态:策略算法可互换(主动切换),状态行为随状态变(被动改变)
组合 vs 聚合(UML):组合生命周期相同(人和心脏),聚合生命周期不同(车队和车)
🧠 分类速记
创建型(5):单原工抽构 — 单例·原型·工厂方法·抽象工厂·构建器
结构型(7):代适装桥外享组 — 代理·适配器·装饰·桥接·外观·享元·组合
行为型(11):模策命责状观中迭访备解 — 模板方法·策略·命令·责任链·状态·观察者·中介者·迭代器·访问者·备忘录·解释器
13

UML 图

⭐⭐ 结构图·行为图分类 | 活动图易错·时序图消息
UML图分类 ├── 结构图(静态) ⭐⭐ │ 类图·对象图·构件图·部署图·制品图·包图 ├── 行为图(动态) ⭐⭐ │ ├── 用例图:功能需求·参与者交互 │ ├── 活动图:工作流程·动作状态(原子)vs活动状态(可分解) │ ├── 状态图:对象状态转换 │ └── 交互图:顺序图(时间顺序)·通信图(对象链接)·定时图(时间约束)·交互概览图 └── 序列图片段 ⭐ 循环/选择等复杂交互使用序列片段 消息类型:同步·异步·返回·创建·销毁
图类型关键词触发适用阶段
用例图功能需求·参与者·用例需求分析
类图静态结构·类·关联详细设计
顺序图时间顺序·消息交互详细设计
活动图业务流程·工作流需求/设计
状态图状态变化·事件触发设计/测试
部署图物理部署·硬件节点实现/部署
⚠️ 活动图易错 — 动作状态 vs 活动状态:
动作状态:原子性·不可中断·立即执行·不可分解·小圆角矩形(如计算、赋值)
活动状态:非原子性·可中断·需要时间·可分解·大圆角矩形(如处理订单、审批流程)
决策vs合并:决策=一入多出(分支),合并=多入一出(汇合) | 都是菱形
分叉vs汇合:分叉=一入多出(并行开始),汇合=多入一出(并行结束) | 都是粗横线
🧠 速记口诀
结构图(6):类对构部制包
行为图(4):用活状交
交互图(4):顺通定交
答题:功能需求→用例图 | 业务流程→活动图 | 状态变化→状态图 | 时间顺序→顺序图
动作状态=小而快不可分 | 活动状态=大而慢可分解
14

ORM 考察重点

⭐⭐ Hibernate vs MyBatis | 持久层设计
维度HibernateMyBatis
映射方式全自动ORM半自动ORM(SQL映射)
SQL控制自动生成·控制力弱手动编写·完全控制
数据库移植性好(HQL+方言)差(SQL绑定数据库)
学习成本
复杂查询配置复杂·调优困难灵活·性能可控
缓存一级(Session)+二级(SessionFactory)一级(SqlSession)+二级(需配置)
适用场景CRUD快速开发·多数据库复杂查询·高并发·遗留系统
💡 数据持久层在三层架构中的位置:表示层→业务逻辑层→数据持久层→数据库
主要职责:数据访问封装·对象关系映射·事务管理(ACID)·连接池管理·缓存管理
🧠 速记口诀
Hibernate全自动·MyBatis手写SQL
Hibernate移植好·MyBatis性能高
简单CRUD用Hibernate·复杂查询用MyBatis

易错题合集(全部科目)

高频踩坑 考前必过一遍
🔴 计算机基础易错:
① 等待态不能直接到运行态,必须经过就绪态!
② 线程=CPU调度单位,进程=资源分配单位
③ P是申请(S--),V是释放(S++)——"P申请V释放"
④ 页式地址转换:页面4K=1000H,页号换块号,偏移不变
⑤ 索引文件:物理块大小÷地址项长度 = 一个索引块的地址项数
🔴 计算机网络易错:
① 交换机=数据链路层(MAC),路由器=网络层(IP)
② ARP=IP→MAC,RARP=MAC→IP
③ 子网主机数必须减2(网络地址+广播地址)
④ 综合布线:管理子系统=同一楼层,设备间=整个建筑,垂直=不同楼层
⑤ DHCP Discover→Offer→Request→ACK
🔴 信息安全易错:
① 机密性≠完整性(不泄露 vs 不被篡改)
② 被动攻击破坏机密性,主动攻击破坏完整性/可用性
③ 数字签名=发送方私钥签名;保密传输=接收方公钥加密
④ 摘要≠加密(不可逆·仅校验完整性)
⑤ SM2非对称·SM3摘要·SM4对称
⑥ BLP=机密性,Biba=完整性
🔴 软件测试易错:
条件覆盖不一定满足判定覆盖(最经典考点)
② 语句覆盖最弱,路径覆盖最强
③ 路径覆盖的局限:循环结构路径无限
④ 白盒覆盖顺序:语→判→条→判条→条组→路
🔴 耦合强度(从高到低):
内容耦合 → 公共耦合 → 外部耦合 → 控制耦合 → 标记耦合 → 数据耦合 → 非直接耦合
(非直接耦合最弱最好,内容耦合最强最差)
🔴 需求工程/UML易错:
① 用例图只有3种关系(包含·扩展·泛化),没有聚合/组合!
② 用例图:包含=必须(⟪include⟫),扩展=可选(⟪extend⟫)
③ 类图:聚合(生命周期不同) vs 组合(生命周期相同)
④ 活动图:动作状态(原子·不可分) vs 活动状态(可分解)
🔴 可靠性/架构易错:
① 并联系统计算:先算全部失效概率,再用1减!
② 软件无物理磨损,失效来自缺陷被触发
③ 恢复块=验证测试+向后恢复+实时性差;N版本=表决器+向前恢复+实时性好
④ 敏感点影响一个属性,权衡点影响多个属性(不要混淆!)
🎯

考察重点速览(命题方向)

考纲解读 | 复习策略

📝 上午选择题重点

  • 操作系统·进程管理·存储管理
  • 计算机网络·协议端口·子网划分
  • 信息安全·加密算法·安全协议
  • 软件工程·需求·测试·可靠性
  • 设计模式识别·UML图选择
  • 新技术:AI·边缘·数字孪生·CPS
  • 标准化·知识产权·运筹方法

📋 下午案例分析重点

  • 架构评估(必做题核心):质量属性·风险/敏感/权衡点·ATAM
  • 架构风格识别与选择
  • Redis缓存三大问题
  • 层次式Web架构·负载均衡
  • 大数据架构·Lambda/Kappa
🎯 论文高频方向:
① 云原生架构与微服务(首选)② 层次式架构设计 ③ 安全架构设计
④ SOA设计与实施 ⑤ 大数据架构(Lambda/Kappa)⑥ 架构评估实践(ATAM)
💡 总体复习策略:
重中之重:云原生/微服务·架构评估(ATAM)·层次式Web架构
次重点:设计模式·UML·数据库(含NoSQL)·软件工程·可靠性
论文准备:至少准备2个项目的完整描述,覆盖架构设计全过程
📖

考前速背大全(进考场前最后一瞥)

全部口诀 浓缩精华
🧠 计算机基础
进程:就绪→调度→运行→时间片→就绪 | 运行→等待→事件→就绪 (等待不直达运行)
死锁:互请不循 | PV:P申请V释放,前驱P后继V
存储:页固定段可变段页先分后分页 | 磁盘:F-S-S-C
索引:1KB/4B=256 | 地址=页号换块号偏移不变
🧠 计算机网络
OSI:应表会传网数物 | TCP/IP:应传网接
端口:20/21FTP 22SSH 23Telnet 25SMTP 53DNS 67/68DHCP 80HTTP 110POP3 143IMAP 161SNMP 443HTTPS
ARP=IP→MAC RARP=MAC→IP | 子网数=2ⁿ 主机数=2^(32-n)-2
设备:交换(链/MAC) 路由(网/IP) 集线(物/比特)
🧠 信息安全
五要素:机密性·完整性·可用性·可控性·可审查性
对称快分发难 | 非对称慢适合签名
签名=发送私钥签+公钥验 | 传输=接收公钥加+私钥解密
SM2非对称 SM3摘要 SM4对称
IPsec网络层 | SSL/TLS/SSH应用层 | BLP机密 Biba完整
🧠 软件测试 + 可靠性
测试:语判条判条条路(弱→强) | 等边因判场错
条件覆盖不一定满足判定覆盖!← 必考
R(t)=1-F(t) MTBF=MTTF+MTTR
串联R=∏Rᵢ 并联R=1-∏(1-Rᵢ)
恢复块=验证+向后 | N版本=表决+向前
🧠 Redis + 架构
五类型:S H L S Z | RDB快AOF安 bgsave fork不阻塞
雪崩=大量同时失效 穿透=查不存在 击穿=热点过期
CAP不可兼得 P必选 | 主从手动→哨兵自动→集群slots
架构五风格:数调独虚仓
4+1视图:用例驱动 | ADL=构件+连接件+架构配置
风险(隐患) 非风险(安全) 敏感(一个属性) 权衡(多个属性)
评估:SAAM→ATAM→CBAM
🧠 设计模式 + UML + ORM
创建型:单原工抽构 | 结构型:代适装桥外享组 | 行为型:模策命责状观中迭访备解
聚合≠组合(生命周期) | 工厂≠抽象工厂(产品族)
用例图3关系:包含(必须)·扩展(可选)·泛化
类图6关系:依饭关聚组实
动作状态(原子)vs活动状态(可分解)
Hibernate全自动移植好 | MyBatis手写SQL性能高
DB

数据库系统

⭐⭐⭐ 三级模式·范式·关系代数·SQL·事务 | ⭐⭐ E-R模型·封锁·CAP
数据库系统 ├── 三级模式 ⭐⭐ 外模式(视图)·模式(基本表)·内模式(物理文件) │ 外/模式映射→逻辑独立性 | 模式/内映射→物理独立性 ├── 关系代数 ⭐⭐⭐ σ选择(行/WHERE)·π投影(列/SELECT)·⋈连接(JOIN)·÷除法("全部"问题) ├── 范式 ⭐⭐⭐ 1NF(属性原子)·2NF(消部分依赖)·3NF(消传递依赖)·BCNF(决定因素都是候选键)·4NF(消多值依赖) ├── SQL ⭐⭐⭐ DDL(CREATE/ALTER/DROP)·DML(INSERT/UPDATE/DELETE)·DQL(SELECT)·DCL(GRANT/REVOKE) ├── 事务ACID ⭐⭐⭐ 原子性(UNDO)·一致性(目标)·隔离性(锁/MVCC)·持久性(REDO) ├── 并发控制 ⭐⭐ 封锁(一级防丢失更新·二级加防脏读·三级防不可重复读)·2PL(可串行化充分条件但不防死锁) ├── E-R模型 ⭐⭐ 1:1并入任一·1:N归N端·M:N独立建表 └── CAP定理 ⭐ C一致性·A可用性·P分区容错 | 三选二·分布式P必选

三级模式结构

层次名称别名对应对象
外层外模式子模式/用户模式视图(VIEW)
中层模式概念模式/逻辑模式基本表
内层内模式存储模式物理文件

范式体系(必背!)

范式条件消除的问题关键词
1NF每个属性都是不可再分的原子值属性不可再分
2NF消除非主属性对候选键的部分函数依赖部分依赖非主属性完全依赖于候选键
3NF消除非主属性对候选键的传递函数依赖传递依赖非主属性不传递依赖于候选键
BCNF消除主属性对候选键的部分和传递依赖主属性依赖每个决定因素都是候选键
4NF消除非平凡的多值依赖多值依赖消除多值依赖

关系代数速查

运算符号对应SQL操作对象
选择σWHERE行(水平筛选)
投影πSELECT 列列(垂直筛选)
连接JOIN表(等值/自然/外连接)
除法÷NOT EXISTS嵌套"全部"问题
并/交/差∪ ∩ −UNION/INTERSECT/EXCEPT元组集合运算

事务ACID + 并发控制

特性含义实现
A 原子性全做或全不做UNDO日志
C 一致性事务前后数据一致由AID共同保证
I 隔离性并发事务互不干扰封锁/MVCC
D 持久性提交后永久保存REDO日志
封锁协议规则防止的问题
一级修改前加X锁,事务结束释放丢失更新
二级一级+读前加S锁,读后释放丢失更新+脏读
三级一级+读前加S锁,事务结束释放丢失更新+脏读+不可重复读

X锁(排他锁/写锁)

与其他任何锁不兼容
加锁条件:写操作

S锁(共享锁/读锁)

与S锁兼容,与X锁不兼容
加锁条件:读操作
⚠️ 数据库易错:
① WHERE不能用聚合函数,HAVING可以(分组后过滤)
② M:N联系必须独立建表,1:1和1:N可并入实体
2PL是可串行化的充分条件,但不防止死锁
④ 自然连接=等值连接+去重复列
⑤ 左外连接保留左表所有行,右外连接保留右表所有行
⑥ 范式判断:先找候选键→判断部分依赖(2NF)→传递依赖(3NF)→决定因素(BCNF)
⑦ E-R合并冲突:属性冲突·命名冲突·结构冲突
⑧ 分片透明>位置透明>复制透明
🧠 数据库速记口诀
三级模式:"外视内物中逻辑" | 独立性:"外/模式保逻辑,模式/内保物理"
范式:"一二三BC四,二消部三消传"
封锁:"一写二短三长"(一级只管写·二级短读·三级长读)
ACID:"原一隔永"(原子·一致·隔离·持久)
关系代数:"σ选行π选列,⋈连接÷全部"
E-R转换:"1:1归任一,1:N归多,M:N独立建表"
"全部"问题的SQL:NOT EXISTS双重否定
候选键求解:L类和N类一定在候选键中,R类一定不在
MCU

嵌入式系统

⭐⭐ 处理器分类·RTOS调度·优先级反转·微内核
嵌入式系统 ├── 定义 ⭐⭐ 以应用为中心·软硬件可裁剪·专用计算机系统 ├── 处理器分类 ⭐⭐ MPU(微处理器·需外接)·MCU(单片机·集成)·DSP(信号处理)·GPU(并行)·SoC(系统级芯片) ├── 实时系统 ⭐⭐ 硬实时(超时即失败·飞行控制)·软实时(允许偶尔超时·视频播放) ├── RTOS调度 ⭐⭐ RMS(静态优先级·周期短优先·利用率≤~69%)·EDF(动态·截止早优先·利用率≤100%) ├── 优先级反转 ⭐⭐ 低优持锁→高优等→中被抢占→解决方案:优先级继承/优先级天花板 ├── 微内核vs宏内核 ⭐ 微内核(服务隔离·安全·鸿蒙/QNX)·宏内核(性能高·Linux/Windows) ├── 嵌入式软件层次 ⭐ 硬件→BSP/HAL→OS→中间件→应用 └── 初始化流程 ⭐ 片级(CPU/时钟)→板级(外设/总线)→系统级(OS/应用)

处理器分类对比

类型全称特点典型代表应用
MPU微处理器功能强,需外接存储和外设ARM Cortex-A、x86手机、工控机
MCU微控制器/单片机CPU+存储+I/O集成单芯片STM32、51、ESP32家电、传感器
DSP数字信号处理器哈佛架构,MAC运算优化TI TMS320音频、雷达
GPU图形处理器大规模并行计算Mali、NVIDIA Jetson图像、AI推理
SoC片上系统完整系统集成单芯片骁龙、Apple M系列手机、平板

RTOS调度算法对比

算法优先级类型规则CPU利用率上限
RMS静态周期越短优先级越高n(2^1/n-1),n→∞约69.3%
EDF动态截止时间越近优先级越高可达100%
LLF动态空闲时间越短优先级越高与EDF类似

优先级反转问题

🔴 问题

高优先级任务等低优先级释放资源,被中优先级任务抢占→高优无限延迟

🟢 解决

优先级继承:持有资源的低优任务临时提升到等待者优先级
优先级天花板:获取资源时立即提升到可能使用该资源的最高优先级

微内核 vs 宏内核

对比宏内核(Linux)微内核(鸿蒙/QNX)
结构所有服务在内核空间仅基本服务在内核,其他在用户空间
性能高(系统调用开销小)相对低(IPC开销大)
稳定性内核崩溃→系统崩溃服务崩溃可恢复
安全性攻击面大攻击面小·形式化验证
可移植性移植复杂移植容易
代表Linux、Windows鸿蒙、QNX、seL4、Fuchsia

鸿蒙操作系统核心特性

分布式能力

分布式软总线·数据管理·任务调度
一次开发多端部署

微内核优势

安全性高·可靠性强·可扩展·确定性
内核攻击面小·形式化验证
⚠️ 易错点:
MCU≠MPU:MCU集成度高(单片机),MPU需外接存储和外设
硬实时≠软实时:硬实时超时即失败,软实时允许偶尔超时
RMS静态优先级,EDF动态优先级:RMS利用率上限约69%,EDF可达100%
优先级继承vs天花板:继承是被动提升,天花板是主动提升
初始化顺序:片级→板级→系统级(不能颠倒)
DSP特点:哈佛架构+MAC运算,编译效率高执行速度快
🧠 嵌入式速记口诀
处理器:MPU通用需外接·MCU单片机集成高·DSP信号处理快·SoC系统全集成
实时系统:硬实时超时即失败·软实时偶尔可超时
调度:RMS静态周期短优先上限69%·EDF动态截止早优先可达100%
优先级反转:低持锁→高等待→中抢占→继承/天花板解决
微内核:服务隔离·安全可靠·易移植但IPC开销大
初始化:片→板→系统(CPU→外设→OS)