考前背 按频率 × 分值

软件设计师 | 10 月 24 日 | 两科各 ≥45,一场 75+75
排序:每年大约能拿多少分(下午必答 15 排最前)。每条只留口诀 + 一道原题。细讲回各专题。
按权重: 28 软工+DFD · 26 OO+UML · 24 算法 · 21 数据库 · 15 设计模式选答 · 6–8 OS · 6 程设 · 6 硬件 · 5+5 网络/安全 · 5 英语 · 3 知产
先保证下午四道必答套路(约 60),再扫本页上午口诀。希赛「排序 18、PV 16」是多年加总,单场没有那么多。

1. 软件工程 + DFD 每年约 28(上午 13 + 下午试题一 15)

1.1 下午 DFD · 15 分必答

圆角矩形=外部实体(人/外系统);圆=加工;两条横线=数据存储;箭头=数据流(必须是数据,不是控制)。
补流三板斧:① 说明里出现、图上没有;② 父图有、子图没有(平衡);③ 加工有进无出或有出无进。
实体名用说明里的名词;存储名常带「表 / 文件 / 库」。
套路题(每年试题一都是这个动作)
0 层图某个加工只有流出、没有流入。最可能缺的是( )。
A. 一条控制流 B. 一条数据流(流入该加工) C. 一个新实体 D. 把该加工删掉
答案 B 加工必须「吃数据、吐数据」。缺流入就补数据流。DFD 不含控制流。细讲见 DFD专题。

1.2 开发模型

缺灵活性 / 需求变更难 → 瀑布。需求不清先做样品 → 原型。带风险分析 → 螺旋。短周期可工作软件 → 敏捷。分批交付 → 增量。OO 阶段重叠 → 喷泉。测试与开发一一对应 → V 模型。
高频问法
某系统需求明确且稳定,要求各阶段严格评审、文档齐全,最适合的开发模型是( )。
A. 原型 B. 螺旋 C. 瀑布 D. 敏捷
答案 C 明确稳定 + 文档驱动 + 严格评审 = 瀑布。原型/敏捷对付需求变;螺旋多一个风险分析。

1.3 内聚耦合 · 测试 · 维护

目标:高内聚、低耦合。内聚最高=功能内聚;耦合最差=内容耦合。
覆盖从弱到强:语句 < 判定 < 条件 < 路径(路径最强)。
系统测试对应需求分析;集成→概要设计;单元→详细设计/编码。
维护:改 bug=改正;环境变=适应;加功能=完善(改善);防未来=预防。
不符合公司战略 = 商业风险。关键路径 = 最长路,总时差 0。
2024上 Q32
某个软件,不符合公司的战略决策,属于( )风险。
A. 商业风险 B. 项目风险 C. 开发风险 D. 人员风险
答案 A 战略/市场/卖不出去=商业。项目=进度资源预算。开发=技术选错。

2. 面向对象 + UML 每年约 26(上午 11 + 下午试题三 15)

2.1 下午 UML · 15 分必答

参与者 = 跟系统打交道的外部角色。用例 = 动宾短语。类 = 需求里的名词。
类图:实心菱=组合(同生共死);空心菱=聚合;空心三角实线=泛化;空心三角虚线=实现。
用例:include=每次必做;extend=可选;generalize=子继承父。
状态图:无括号=事件;[ ]=监护条件;/后=动作。状态图建模反应型对象。
上午也这么问 · 图用途
用于对反应型对象建模的是( )。
A. 用例图 B. 状态图 C. 活动图 D. 构件图
答案 B 状态图=一个对象状态怎么变。活动图=流程。用例=外部可见服务。2021 上原题口径。

2.2 多态 / 覆盖 / 绑定

覆盖=子类同名同参重写父类。重载=同类同名不同参。
多态=同一消息不同结果。动态绑定=运行时焊上(实现多态的手段,题干问「体现了」常选多态不是动态绑定)。
OOD 才有「识别包 / 定义属性服务」。OOA 是认定对象、组织对象。
2022下 · 鸭子题口径
子类重写父类同名方法,运行时按实际对象调用。这主要体现( )。
A. 继承 B. 重载 C. 动态绑定 D. 多态
答案 D 动态绑定是手段。卷面问「体现了什么机制」选多态。继承只说明 is-a。

2.3 设计原则信号词

只一种功能=单一责任。不强迫依赖不用的方法=接口分离。子类可替换父类=里氏替换。依赖抽象=依赖倒置。包无环=无环依赖。变化影响整包=共同封闭。
高频
包之间的依赖关系不能出现环,对应( )原则。
A. 共同重用 B. 无环依赖 C. 开闭 D. 接口分离
答案 B

3. 数据结构与算法 每年约 24(上午 9 + 下午试题四 15)

3.1 下午 C 填空 · 15 分必答

说明里「冲突就下一列、超出退回」= 回溯。切开独立子问题再合并= 分治。眼前最优、不退回= 贪心。重叠子问题+最优子结构、填表= 动规。广度搜解空间=分支限界。
2011上 Q51
要在 8×8 棋盘上摆 8 个皇后,任何两个不能同行同列同对角线,一般采用( )。
A. 分治 B. 动态规划 C. 贪心 D. 回溯
答案 D 试探、冲突就换、不行退回。下午试题四皇后/迷宫几乎都是回溯。

3.2 树叶子(几乎每年 1 分)

任意树:n0 = 1 + n2 + 2n3 + 3n4 + …。度 k 贡献 k−1。n1 用不上。
二叉树铁律:n0 = n2 + 1。哈夫曼无度 1,n 片叶子 → 总结点 2n−1。
森林叶子转二叉树后 = 没有左孩子(右孩子是兄弟)。
2024上 Q18
树 T 度为 4,5 个度 4、8 个度 3、6 个度 2、10 个度 1,叶子个数为( )。
A. 38 B. 29 C. 66 D. 57
答案 A n0=1+n2+2n3+3n4=1+6+16+15=38。那个 6 就是题干「6 个度为 2」。n1=10 扔掉。

3.3 排序 / 栈队列 / 查找

稳定:插、冒、归、基数。不稳定:选、快、堆、希尔。
小根堆:父 ≤ 两个孩子(下标 1 起,i 比 2i、2i+1)。
栈 LIFO=递归;队列 FIFO=BFS。循环队列留空位消假溢出。两栈共享:一头一尾,满是 top1−top2==1。
二分必须顺序+有序。「保证最多 k 次」别选哈希、别选歪 BST。
2022上 · 稳定排序
( )是稳定的排序算法。
A. 冒泡 B. 快速 C. 堆 D. 简单选择
答案 A
2014上 Q48
实现二分查找时,要求查找表( )。
A. 顺序存储,关键码无序 B. 顺序存储,关键码有序
C. 双向链表,无序 D. 双向链表,有序
答案 B

4. 数据库 每年约 21(上午 6 + 下午试题二 15)

下午:① 补 E-R 菱形联系,标 1:1 / 1:n / m:n。② 每个实体一张表;1:n 把 1 端主键塞进 n 端当外键;m:n 必须单独建联系表,双方主键都放进去。③ 主键 / 外键。④ 范式:1NF 原子、2NF 去部分依赖、3NF 去传递、BCNF 每个决定因素都是候选键。
上午:投影=竖切列;选择=横切行。GRANT 授权 / REVOKE 收回。Armstrong:自反、增广、传递。
转换铁律(下午问题 2)
学生与课程是多对多(一个学生选多门课,一门课被多个学生选)。正确做法是( )。
A. 只在学生表加课程号 B. 只在课程表加学号
C. 建选课表,主键含学号和课程号 D. 两表互相加对方主键即可
答案 C m:n 一定拆出联系表。A/B 会让一边无法表示多个对方。
上午高频 · 关系代数
从关系中选出满足条件的元组,对应( )运算。
A. 投影 B. 选择 C. 连接 D. 差
答案 B 选择横切(行/元组),投影竖切(列/属性)。

5. 下午选答:设计模式 15 分(Java / C++ 二选一)

见词选词:换接口=Adapter。部分-整体树=Composite。可切换算法=Strategy。一变全通知=Observer。统一门口=Facade。请求当对象=Command。存档恢复=Memento。算法骨架=Template Method。共享省内存=Flyweight。不直接引用=Mediator。
高频
对象状态改变时自动通知所有依赖者,属于( )模式。
A. 迭代器 B. 观察者 C. 中介者 D. 备忘录
答案 B

6. 操作系统 每年 6–8 分(几乎年年有 PV 连题)

前趋图:一条箭头一个信号量。箭头出发的进程 V,箭头到达的进程 P。
进程=资源分配最小单位;线程=调度最小单位。线程不共享栈/PC/寄存器。
等待不能直接到运行。磁盘时间=寻道+旋转+传输;转速翻倍只减半旋转。
chmod:r=4 w=2 x=1,所有者/组/其他。不死锁最少资源 n(k−1)+1。
页式无外碎片。FAT=链接。SPOOLing=磁盘假装独占设备。
每年必考口径
前趋图中 P1→P2 表示 P1 完成后 P2 才能开始。实现时应( )。
A. P1 做 P、P2 做 V B. P1 做 V、P2 做 P
C. 两个都做 P D. 两个都做 V
答案 B 起点释放(V),终点申请(P)。信号量初值 0。
2020下 Q28 口径
以下关于线程的叙述,错误的是( )。
A. 同一进程的线程共享代码段 B. 线程是调度的基本单位
C. 线程可共享另一线程的栈指针 D. 线程有自己的 PC
答案 C 栈指针、寄存器、PC 各线程一份。C 说反了。

7. 程序设计语言 每年约 6 分

C 顺序:预编译 → 编译 → 汇编 → 链接。解释通常比编译出的机器码慢。
传值改不了实参;引用/指针能改。后缀:左 右 运算符,语法树用后序。
|或、连接、*闭包。DFA 出路唯一无 ε;NFA 可多路可空边,能力一样。
Python:list+list=拼接;无 switch;finally 必跑。
2024上 Q11
x=[1,2,3]; y=x+[4,5,6] 之后 y 为( )。
A. 出错 B. [1,2,3,4,5,6] C. [5,7,9] D. [1,2,3,[4,5,6]]
答案 B 普通 list 的 + 是拼接。C 是对应相加(NumPy)。

8. 计算机硬件 每年约 6 分(轮换出)

PC=下一条指令地址(自动+1,JMP 改它)。IR=当前指令本体。
RISC:简单指令、多通用寄存器、硬布线、load/store 才访存。CISC:复杂指令、微程序。
中断:CPU 被喊再搬。DMA:成块搬,CPU 只开头结尾。查询=死等。
Cache 平均时间看模型:同时启动还是失败才访主存。对阶:小阶向大阶看齐,尾数右移。
串联可靠度相乘;并联 1−Π(1−Ri)。
2024上 · PC vs IR
CPU 中跟踪后继指令地址的寄存器是( )。
A. IR B. MAR C. PC D. MDR
答案 C 「跟踪后继+地址」=PC。IR 是指令本身;MAR 只管这一次访存地址。
CISC/RISC
以下关于 RISC 特点的叙述中,错误的是( )。
A. 指令种类少、功能简单 B. 指令种类多、功能强
C. 大量通用寄存器 D. 硬布线控制器
答案 B B 是 CISC。「指令多功能强」看见就判 CISC。

9. 网络 + 信息安全 每年约 5+5

集线器=物理层。交换机=链路层、MAC、帧。路由器=网络层、IP。
ARP/ICMP 都在网络层。HTTPS=HTTP+TLS,443。TCP 序号单位=字节。
端口:21FTP 22SSH 23TELNET 25SMTP 53DNS 80HTTP 110POP3 443HTTPS。
对称 DES/AES 快难分发;非对称 RSA 慢好分发。RSA 不是对称。
摘要 MD5/SHA=防篡改,不是加密。签名=自己私钥签摘要。证书里是用户公钥。
拖库=整库拖走 → 洗库 → 撞库。VLAN 隔广播域,不隔攻击。
2024上 Q50 口径
以太网交换机工作在( ),依据( )转发。
A. 物理层 / IP B. 数据链路层 / MAC C. 网络层 / MAC D. 传输层 / 端口
答案 B
签名
数字签名时,发送方使用( )对摘要加密。
A. 对方公钥 B. 对方私钥 C. 自己公钥 D. 自己私钥
答案 D 保密才用对方公钥锁文件。签名用自己私钥,别人用你的公钥验。

10. 专业英语 固定 5 分(上午最后 5 空)

先看阶段:analysis → design → implement 上线 → operations / support。
implemented 之后才进运维,不要选 designed。
decompose into;be triggered by。日常运行=execution。运维四件:maintenance / recovery / technical support / enhancement。
2024上 Q71
Once a system has been (71), it enters operations and support.
A. designed B. implemented C. investigated D. analyzed
答案 B 上线之后才运维。designed 还在图纸上。

11. 知识产权 每年约 3 分

著作权/软件著作权:创作完成自动产生,不用登记。保护程序(源+目标)和文档,不保护思想/算法/操作方法。
职务→单位。委托没约定→受托人。扔掉程序 ≠ 放弃著作权。
专利/商标要申请。专利先申请。商标 10 年可续展(可能无限期的是商标)。
引用只能已发表。看见未发表就是错。不知情买盗版:知道后侵权,一般不赔,付合理费用可继续用。
GB 强制、GB/T 推荐、GB/Z 指导文件。
2024上 Q57
关于引用,不正确的是( )。
A. 可适当引用已发表作品 B. 可引用未发表作品
C. 应指明作者姓名、作品名称 D. 不得构成引用人作品的主要部分
答案 B 未发表三个字就是错。你当时这题错过。
委托
委托开发软件,合同未约定著作权归属,权利归( )。
A. 委托人 B. 受托人 C. 双方共有 D. 国家
答案 B 有合同听合同;没约定归干活的受托人。
上场顺序
下午先 DFD / 库 / UML / C,四道都是套路。选答设计模式挑熟的语言。
上午:软工模型+测试维护 → OO 关系+原则 → 树叶子/排序/栈 → PV 箭头 → 知产三句 → 英语先看阶段 → 网络层次/签名扫一眼。
硬件只记 PC、RISC 硬布线、中断 vs DMA、串并联公式。