夜雨聆风学习资料网

ARTICLE · 1238471

软件设计师 考前18页纸

软件设计师 考前18页纸

第5版教程(2025年启用)· 近5年真题高频 · 10月24日下午场

命题画像与今日下午时间表· 依据软考办2026年下半年批次安排通告

卷别

题量与分值

命题规律

基础知识

75题×1分=75分最长120分钟、最短90分钟及格45分

软件工程12—14分、面向对象10—12分、数据结构与算法9—11分为三大块;语言、硬件、操作系统、数据库各5—7分

应用技术

6题中做5题前4题必答,5/6二选一每题15分共75分

固定五题:DFD、数据库设计、UML、算法C语言、Java或C++;前三题套路极稳,是及格生命线

两科连考

14:30—18:30总作答240分钟

基础知识交卷后进入应用技术;开考2小时后可离场,结束前60分钟可交卷;两科须一次全过

今日提醒

10月24日下午第一批

无纸化机考、闭卷;带身份证+准考证;下午易困,进场前小憩;提前40分钟到场

使用说明 星级★★★必背/★★重点/★了解;括号内为真题热度。红色=必背关键词,蓝色=辨析与口诀,黄底=公式与关键数字第1—9章覆盖上午主体与结构化方法,第10—16章为下午五题专项(DFD、数据库、UML、算法、Java/C++),第17—18章收口网络与法规,末附七张速查表。

第1章 考情画像与两科策略· 开篇必读

1. 两科结构与时间(★★★|官方口径)

(1)基础知识75题×1分,最长120分钟、最短90分钟;交卷后进入应用技术,两科总作答240分钟。(2)应用技术为6道大题,前4题必答、后2题(Java与C++)二选一,每题15分,共5题75分。(3)本场次14:30开考、18:30结束,开考2小时后可离场,结束前60分钟可交卷。

▸下午场容易困,进场前小睡20分钟;答题时先做1、2、3题,把15分×3稳住再攻算法。

2. 基础知识分数地图(★★★|5年统计)

模块

分值

拿分要点

软件工程

12—14

生命周期模型、测试、CMM、进度计算

面向对象与UML

10—12

类图关系、多重度、设计模式

数据结构与算法

9—11

复杂度、树与图、排序稳定性

程序设计语言

5—7

编译过程、文法、自动机、传参

计算机硬件

5—7

浮点数、流水线、Cache、可靠性

操作系统

5—7

PV操作、死锁、页面置换、磁盘调度

数据库系统

5—7

关系代数、范式、SQL、并发

网络与信息安全

8—10

协议分层、子网、加密与防火墙

标准化与知识产权

3—4

期限与标准代号

专业英语

5

术语填空,靠积累

3. 应用技术五题结构(★★★|必知)

题号

题型

分值

拿分难度

第1题

数据流图DFD补全

15

低,套路固定

第2题

数据库设计(ER+关系模式)

15

低,读图题

第3题

UML建模(类图/用例/顺序图)

15

低,套路固定

第4题

算法设计(C语言填空)

15

高,目标8分

第5/6题

Java或C+++设计模式

15

中,语法+模式

▸第1—3题合计45分,是及格的生命线;第4题填空答不全也要把能填的填满。

4. 下午题答题顺序(★★★)

(1)先做第1、2、3题(约70分钟),再做第5或第6题(约25分钟),最后攻第4题算法(约20分钟)。(2)语言选自己熟的:Java选手选第6题,C++选手选第5题,不要临场换。(3)每题先看小问分值,按分值分配字数,12分的问要写6条以上。

5. 两科保分策略(★★)

(1)上午目标50分以上:软件工程+面向对象+数据结构三块拿满,等于及格线的一半。(2)下午目标50分以上:前三题拿40分,语言题拿10分,算法题拿5分即可。(3)不追求全对,追求「会的不丢分」:计算题写公式,概念题写关键词。

6. 机考操作与时间刻度(★★)

(1)基础知识部分交卷后不可返回,做题时先易后难,遇到计算量大的标记跳过,最后统一处理。(2)应用技术界面提供题干与作答区,画图题用文字描述替代(如「实体A—联系R—实体B」),不必真画。(3)建议时间刻度:14:30—15:50基础知识,15:50—17:30前三题,17:30—18:00语言题,18:00—18:20算法题。(4)18:30系统自动收卷,最后15分钟务必检查每题是否有空问未答。

7. 上午高频陷阱清单(★★★)

(1)「稳定性」与「时间复杂度」分开记,快排平均最快但不稳定。(2)「耦合越低越好、内聚越高越好」,题目常把方向写反。(3)「验证=符合规格、确认=满足需求」,两个词的英文也要认识。(4)「原型法适合需求不清」而不是「适合大型项目」,大型高风险用螺旋。

第2章 计算机硬件与体系结构· 约6分

1. 数据表示与运算(★★★)

(1)原码、反码、补码:正数三者相同;负数补码为反码加1,补码可把减法变加法。(2)移码用于浮点数阶码,符号位取反,便于比较大小。(3)IEEE 754单精度:1位符号+8位阶码+23位尾数,共32位;双精度1+11+52共64位。

▸单精度偏移量127,双精度1023,这是浮点数题的第一考点。

2. CPU与寻址(★★)

(1)CPU由运算器、控制器、寄存器组组成;PC存下条指令地址,IR存当前指令。(2)寻址方式:立即、直接、间接、寄存器、寄存器间接、相对、变址、基址。(3)CISC与RISC:RISC指令少、定长、寄存器多、适合流水线。

3. 流水线(★★★|计算常考)

(1)执行时间=(k+n-1)×Δt,k为流水段数,n为指令条数。(2)吞吐率TP=n÷总时间;加速比=顺序执行时间÷流水执行时间。(3)流水线冲突:结构冲突、数据冲突、控制冲突,用停顿、旁路、分支预测缓解。

4. 存储体系与Cache(★★★)

(1)层次:寄存器—Cache—主存—外存;Cache解决速度差,虚拟存储解决容量差。(2)平均访问时间=h×Tc+(1-h)×Tm,h为命中率。(3)替换算法:随机、FIFO、LRU;写策略:写回(Write Back)与写直达(Write Through)。

5. 可靠性与校验(★★★)

(1)串联系统R=R1×R2×…×Rn;并联系统R=1-(1-R1)(1-R2)…。(2)海明码校验位满足2^k ≥ m+k+1,可纠1位错、检2位错。(3)CRC用生成多项式做模2除法,检错强不能纠错;奇偶校验只能检奇数位错。

▸m=8需k=4,m=16需k=5,m=32需k=6,直接背这三组。

6. 进制与编码(★★★)

(1)二进制转十六进制每4位一组,转八进制每3位一组;十进制转二进制用除2取余、逆序排列。(2)n位补码表示范围-2^(n-1)到2^(n-1)-1,8位补码范围是-128到127。(3)溢出判断:同号相加结果异号即溢出;进位与符号位进位不同也说明溢出。(4)汉字编码:国标码GB2312、机内码、区位码,输入码与字形码用途不同。

7. 总线与I/O(★★)

(1)数据总线宽度决定一次传输的位数,通常等于机器字长;地址总线宽度n决定最大寻址2^n个单元。(2)I/O控制方式:程序查询(CPU等待)、中断(CPU响应)、DMA(直接内存访问,CPU只在开始结束参与)。(3)DMA适合大批量数据块传输,如磁盘读写;中断适合随机事件。(4)总线按功能分数据总线、地址总线、控制总线,按位置分内总线、系统总线、外总线。

8. 性能指标(★★)

(1)主频=外频×倍频,主频越高不一定越快,还要看CPI与指令集效率。(2)MIPS=指令条数÷(执行时间×10^6),MFLOPS衡量浮点性能。(3)CPI=时钟周期数÷指令条数,执行时间=指令数×CPI×时钟周期。(4)基准测试程序比单一指标更能反映实际性能。

9. 校验码计算示例(★★★)

(1)数据位m=8时,需满足2^k ≥ 8+k+1,k=4满足(16≥13),校验位放在2的幂次位置。(2)海明码可纠正1位错、检测2位错;校验方程组异或结果为0说明无错。(3)CRC计算:被除数后补r个0,用生成多项式模2除,余数即校验码。(4)奇偶校验只能发现奇数个位错误,不能定位,因此不能纠错。

第3章 程序设计语言与编译· 约6分

1. 编译与解释(★★★)

(1)编译过程:词法分析—语法分析—语义分析—中间代码生成—优化—目标代码生成。(2)词法分析输出记号流,语法分析构建语法树,语义分析做类型检查。(3)解释器不生成目标代码,逐条解释执行,灵活但速度慢;编译执行速度快、可优化。

2. 文法与自动机(★★★|每年必考)

(1)文法四元组:非终结符集Vn、终结符集Vt、产生式P、开始符号S。(2)乔姆斯基分类:0型短语文法、1型上下文有关、2型上下文无关、3型正规文法。(3)正规式与有限自动机等价:DFA无ε边且转移唯一,NFA可有ε边,二者可相互转换。

▸正规式只能描述3型语言;题目给DFA求正规式,先按路径列方程再化简。

3. 参数传递与作用域(★★★)

(1)传值:单向,形参改变不影响实参;传地址:双向,形参改变影响实参。(2)传名:相当于宏替换,可能重复求值产生副作用。(3)作用域分静态(词法)与动态,静态看定义位置,动态看调用链。

4. 语言特性与运行(★★)

(1)静态类型在编译期检查,动态类型在运行期确定。(2)强类型不允许隐式类型转换;弱类型允许,易出错。(3)程序运行时的内存分区:代码区、静态区、栈(局部变量)、堆(动态分配)。

5. 表达式与树(★★)

(1)中缀转后缀用栈:遇操作数输出,遇运算符按优先级出栈。(2)后缀表达式求值:遇操作数入栈,遇运算符取两个操作数计算后入栈。(3)语法树的后序遍历即后缀表达式,中序遍历可还原中缀。

6. 编译各阶段的产物(★★★)

(1)词法分析输出记号流,语法分析输出语法树,语义分析输出带语义标注的中间表示。(2)中间代码常见形式:四元式、三元式、逆波兰式、树;便于优化与移植。(3)优化分局部优化与全局优化,常见有常量合并、公共子表达式提取、循环不变式外提。(4)符号表贯穿全过程,记录标识符的类型、作用域、地址等信息。

7. 程序设计语言分类(★★)

(1)按范式分:命令式(C、Pascal)、面向对象(Java、C++)、函数式(Lisp、Haskell)、逻辑式(Prolog)。(2)按执行方式分:编译型、解释型、混合型(Java先编译为字节码再解释/JIT)。(3)动态语言(Python、JavaScript)类型在运行期确定,静态语言在编译期检查。(4)脚本语言通常解释执行、开发效率高、运行效率低。

8. 正规式与自动机转换(★★)

(1)正规式a(b|c)*表示以a开头、后接任意个b或c的串。(2)由正规式构造NFA:连接用串接、选择用分支、闭包用自环。(3)NFA转DFA用子集构造法,DFA最小化用划分法。(4)考试常见问法:给出自动机问接受什么串,或给正规式画自动机。

第4章 数据结构· 约9分

1. 线性表、栈与队列(★★★)

(1)顺序表随机访问O(1)、插入删除O(n);链表插入删除O(1)但查找O(n)。(2)栈后进先出,用于递归、表达式求值、括号匹配;队列先进先出,用于调度与BFS。(3)循环队列判满:(rear+1) mod n == front,牺牲一个单元。

2. 树的性质(★★★|计算必考)

(1)二叉树:第i层最多2^(i-1)个结点,深度为k最多2^k-1个结点。(2)叶子与度为2的结点关系:n0=n2+1,这是最高频的一个公式。(3)完全二叉树n个结点,深度为⌊log₂n⌋+1;顺序存储适合完全二叉树。

3. 二叉树与哈夫曼(★★★)

(1)遍历:前序根左右、中序左根右、后序左右根;已知中序+前序(或后序)可唯一确定树。(2)二叉排序树:左小右大,中序遍历有序;查找平均O(log n),最坏O(n)。(3)哈夫曼树带权路径长度最小,构造是每次取两个最小权值合并,可用于哈夫曼编码。

4. 图(★★★)

(1)存储:邻接矩阵适合稠密图,邻接表适合稀疏图;无向图边数最多n(n-1)÷2。(2)遍历:DFS用栈、BFS用队列;BFS可求无权图最短路径。(3)最小生成树:Prim适合稠密图O(n²),Kruskal适合稀疏图O(e log e)。(4)最短路径:Dijkstra不能处理负权,Floyd可处理负权但不能有负环。

5. 查找(★★★)

(1)顺序查找O(n);二分查找要求有序,O(log n),判定树深度为⌈log₂(n+1)⌉。(2)哈希查找平均O(1),冲突处理:开放定址(线性探测、二次探测)、链地址法。(3)装填因子α=记录数÷表长,α越大冲突越多。

6. 排序对比(★★★|每年2—3分)

排序

平均时间

最坏时间

空间

稳定

直接插入

O(n²)

O(n²)

O(1)

稳定

希尔

O(n^1.3)

O(n²)

O(1)

不稳定

冒泡

O(n²)

O(n²)

O(1)

稳定

快速

O(nlog₂n)

O(n²)

O(log₂n)

不稳定

简单选择

O(n²)

O(n²)

O(1)

不稳定

堆排序

O(nlog₂n)

O(nlog₂n)

O(1)

不稳定

归并

O(nlog₂n)

O(nlog₂n)

O(n)

稳定

基数

O(d(n+r))

O(d(n+r))

O(n+r)

稳定

▸稳定性口诀「插冒归基稳定,快希选堆不稳」;快排最坏出现在基本有序时。

7. 串与KMP(★★★)

(1)串的模式匹配朴素算法最坏O(n×m),KMP利用next数组避免主串回溯,达到O(n+m)。(2)next数组含义是「模式串当前位置之前的最长相等前后缀长度」,next[1]通常取0。(3)求next的过程本质是模式串自己匹配自己,考试只考next值填写与匹配趟数。(4)串是特殊的线性表,元素为字符,子串个数为n(n+1)/2+1(含空串)。

8. B树与B+树(★★)

(1)B树是多路平衡查找树,每个结点含多个关键字与孩子指针,降低树高减少磁盘I/O。(2)B+树所有关键字都出现在叶子结点,叶子间用链表相连,适合范围查询与顺序遍历。(3)数据库索引多用B+树,因为范围扫描效率高、树高稳定。(4)哈希索引适合等值查询,不支持范围查询。

9. 排序过程与特征(★★★)

(1)快排一趟划分确定一个元素的最终位置,递归处理左右子区;基本有序时退化为O(n²)。(2)堆排序建初堆O(n),每次调整O(log n),总计O(nlog n),适合求前k大。(3)归并排序需要O(n)辅助空间,适合外部排序与链表排序。(4)基数排序按位分配收集,不比较关键字,适合整数与定长字符串。

10. 堆与优先队列(★★)

(1)大顶堆满足父结点不小于孩子,用于堆排序与求前k大。(2)插入与删除调整均为O(log n),取堆顶O(1)。(3)建初堆从最后一个非叶结点开始向下调整,总代价O(n)。(4)优先队列可用堆实现,广泛用于调度与Dijkstra算法。

11. 拓扑排序与关键路径(★★★)

(1)拓扑排序适用于有向无环图,用于确定任务执行顺序,结果不唯一。(2)AOE网中关键路径是源点到汇点的最长路径,决定总工期。(3)活动的最早开始时间取所有前驱最早完成的最大值,最晚开始时间反向推算。(4)关键活动的松弛时间为0,缩短非关键活动不能缩短工期。

第5章 操作系统· 约7分

1. 进程与PV操作(★★★|高频)

(1)进程三态:就绪、运行、阻塞;五态增加新建与终止。(2)P操作申请资源(S=S-1,小于0则阻塞),V操作释放资源(S=S+1,小于等于0则唤醒)。(3)互斥信号量初值1,同步信号量初值通常为0或资源数。

2. 死锁(★★★)

(1)四个必要条件:互斥、请求并保持、不可剥夺、循环等待,破坏任一即可预防。(2)银行家算法属死锁避免,判断是否存在安全序列。(3)死锁处理策略:预防、避免、检测与解除;鸵鸟策略是忽略。

3. 存储管理(★★★)

(1)分区、页式、段式、段页式;页式无外部碎片有内部碎片,段式便于共享与保护。(2)逻辑地址=页号+页内偏移,通过页表映射到物理块。(3)虚拟存储基于局部性原理,缺页中断由硬件与操作系统共同处理。

4. 页面置换与磁盘调度(★★★)

(1)OPT最优但不可实现,FIFO简单但可能Belady异常,LRU近似最优、开销大。(2)磁盘调度:FCFS、SSTF最短寻道、SCAN电梯、CSCAN单向扫描。(3)磁盘访问时间=寻道时间+旋转延迟+传输时间,寻道占主导。

5. 文件系统(★★)

(1)文件物理结构:连续、链接、索引;索引结构支持随机访问。(2)空闲空间管理:位示图、空闲链表、成组链接。(3)目录是文件控制块的集合,多级目录解决重名,绝对路径与相对路径区别在起点。

6. 设备与作业管理(★★)

(1)SPOOLING技术用磁盘缓冲把独占设备虚拟为共享设备,典型是打印池。(2)缓冲目的:缓和CPU与I/O速度差、减少中断、提高并行度。(3)作业调度算法:FCFS、短作业优先、优先级、响应比高者优先。

7. 进程调度算法(★★★)

(1)先来先服务FCFS简单但平均等待时间长,对短作业不利。(2)短作业优先SJF平均等待最短,但长作业可能饥饿;最短剩余时间优先是其抢占版。(3)时间片轮转RR适合分时系统,时间片过大退化为FCFS,过小切换开销大。(4)多级反馈队列兼顾响应与吞吐,优先级高时间片短,逐步降级。

8. 进程与线程(★★★)

(1)进程是资源分配单位,线程是CPU调度单位;同一进程的线程共享地址空间与文件描述符。(2)线程切换开销小于进程切换,因为不需要切换地址空间。(3)进程通信:共享存储、消息传递、管道、信号;线程通信靠共享变量与同步机制。(4)管程把共享资源与操作封装,配合条件变量实现同步,比PV更不易出错。

9. I/O软件层次与文件共享(★★)

(1)层次:用户层I/O—设备无关软件—设备驱动—中断处理—硬件。(2)设备无关层负责缓冲、分配、错误处理,驱动层负责具体寄存器操作。(3)文件共享用硬链接(同一inode)与软链接(路径指向)。(4)文件保护靠访问控制表ACL与权限位,备份靠转储与日志。

10. 页面置换计算(★★★)

(1)FIFO按进入内存的先后淘汰,可能出现Belady异常(分配帧增多缺页反而增多)。(2)LRU淘汰最久未使用的页面,需要记录访问时间,开销较大。(3)OPT淘汰将来最久不用的页面,缺页次数最少但无法实现。(4)计算题按引用串逐步画表,每次标记命中或置换,最后统计缺页次数与缺页率。

第6章 数据库系统· 约6分

1. 关系模型与代数(★★★)

(1)基本运算:并、差、笛卡尔积、选择、投影;导出运算:交、连接、除。(2)投影会去掉重复元组;自然连接按同名属性等值连接并去掉重复列。(3)关系完整性:实体完整性(主键非空)、参照完整性(外键)、用户定义完整性。

▸关系代数题先写属性列(投影),再写条件(选择),最后看是否要连接。

2. SQL语句(★★★)

(1)查询顺序:FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY。(2)聚集函数COUNT/SUM/AVG/MAX/MIN,WHERE不能用聚集函数,过滤分组用HAVING。(3)外连接保留未匹配行,LEFT JOIN以左表为准;视图是虚表,可简化查询与控制权限。

3. 范式与规范化(★★★|每年必考)

(1)1NF属性不可再分;2NF消除非主属性对码的部分函数依赖;3NF消除传递函数依赖。(2)BCNF要求每个决定因素都包含码,消除了主属性对码的部分与传递依赖。(3)模式分解要满足无损连接与保持函数依赖,二者不一定同时满足。

▸判断口诀:先找候选键,再看非主属性依赖「部分」还是「传递」,逐级往上判。

4. 并发控制(★★★)

(1)事务ACID:原子性、一致性、隔离性、持久性。(2)并发问题:丢失更新、读脏数据、不可重复读、幻读。(3)封锁:排他锁X与共享锁S;两段锁协议保证可串行化;三级封锁协议分别解决不同问题。

5. 备份与分布式(★★)

(1)备份:完全、差量(自上次完全)、增量(自上次任意);日志备份支持时间点恢复。(2)分布式数据库透明性:分片透明、位置透明、复制透明、逻辑透明。(3)两阶段提交2PC:准备阶段与提交阶段,解决分布式事务一致性,但可能阻塞。

6. 三级模式与两级映像(★★★)

(1)外模式是用户视图,模式是全局逻辑结构,内模式是物理存储结构。(2)外模式/模式映像保证逻辑独立性,模式/内模式映像保证物理独立性。(3)数据的物理独立性指改变存储结构不影响逻辑结构与应用。(4)DBA负责模式定义与权限管理,用户通过外模式访问数据。

7. 关系代数典型题(★★)

(1)投影π取列,选择σ取行,连接⋈按条件合并两表。(2)除运算用于「查询选修了全部课程的学生」这类全称量词问题。(3)外连接保留未匹配元组,左外连接以左表为准,右外连接以右表为准。(4)关系代数与SQL可相互转换,考题常要求「用关系代数表示查询」。

8. 故障恢复(★★)

(1)恢复技术依赖转储(后备副本)与日志文件。(2)事务故障用UNDO回滚未提交事务;系统故障用UNDO+REDO。(3)介质故障用最近转储+日志重做,恢复到故障前一致状态。(4)检查点技术减少恢复时需要重做的日志量。

第7章 数据库设计专题(下午第2题)· 下午第2题

1. 设计四阶段(★★★)

(1)需求分析—概念结构设计(E-R图)—逻辑结构设计(关系模式)—物理结构设计。(2)概念设计独立于DBMS,逻辑设计把E-R转成关系模式,物理设计关注索引与存储。(3)题目通常给需求描述与不完整的E-R图,要求补全实体、联系、属性并转换。

2. E-R转关系模式规则(★★★|必背规则)

(1)每个实体转为一张表,实体的码即主键。(2)1:1联系可合并到任一端,把另一端的码作为外键。(3)1:n联系合并到n端,把1端的码作为外键。(4)m:n联系单独成表,两端码组合为主键,并加入联系自身的属性。

▸「多端加外键、多对多单独建表」是阅卷给分点,写反就丢分。

3. 答题步骤(★★★)

(1)第一步通读需求,圈出名词(实体)与动词(联系)。(2)第二步补全E-R图:实体矩形、联系菱形、属性椭圆,标注1:1、1:n、m:n。(3)第三步写关系模式:表名(属性…),下划线标主键,注明外键。(4)第四步按需做规范化检查,指出是否满足3NF并说明理由。

4. 常见扣分点(★★)

(1)主键漏标或标错,外键未注明参照关系。(2)多对多联系忘记单独建表,导致数据冗余。(3)属性放错位置:把联系属性放到实体表里。(4)关系模式未写全属性,或把派生属性冗余存储。

5. 物理设计与索引(★★)

(1)物理设计内容:存储结构、索引设计、分区、冗余与聚簇。(2)聚簇索引决定数据的物理顺序,一张表只能有一个;非聚簇索引是独立结构。(3)索引加快查询但降低插入更新速度,写多读少的表要慎建索引。(4)在频繁出现在WHERE、JOIN、ORDER BY的列上建索引,选择区分度高的列。

6. 完整性约束落地(★★)

(1)主键约束唯一且非空,可用自增或序列生成。(2)外键约束保证参照完整性,删除父表数据要考虑级联删除或置空。(3)检查约束(CHECK)限制取值范围,默认值约束简化插入。(4)业务规则尽量用约束在数据库层保证,应用层校验作为补充。

7. 反规范化(★★)

(1)反规范化是为提升查询性能而有意引入冗余,如增加冗余列、派生列、汇总表。(2)代价是写入一致性维护成本上升,需要触发器或应用层保证。(3)适用读多写少、关联查询频繁的报表场景。(4)规范化为减少冗余,反规范化为提升性能,二者要权衡。

第8章 软件工程基础· 约13分

1. 生命周期模型(★★★)

(1)瀑布模型阶段串行、文档驱动,适合需求明确;缺点是后期变更代价大。(2)原型模型快速确认需求;螺旋模型以风险分析为核心,适合大型高风险项目。(3)增量与迭代分批交付;V模型强调测试与开发阶段对应;喷泉模型面向对象、迭代无缝。

2. 进度与关键路径(★★★|计算必考)

(1)PERT图用箭头表示活动,结点表示事件;关键路径是总工期最长的路径。(2)松弛时间=最晚开始-最早开始,关键路径上松弛时间为0。(3)Gantt图直观展示进度但不显示依赖关系,PERT能显示依赖与关键路径。

3. 风险管理(★★)

(1)风险三要素:发生概率、影响程度、触发条件。(2)应对策略:规避、转移、减轻、接受(消极);开拓、分享、提高、接受(积极)。(3)风险暴露=概率×影响,用于排序与制定应对优先级。

4. 质量与评审(★★)

(1)质量模型ISO 9126/25010六特性:功能性、可靠性、易用性、效率、可维护性、可移植性。(2)评审类型:正式审查、走查、同行评审;评审要控规模(每次不超过200行)。(3)质量保证是过程导向,质量控制是产品导向;缺陷发现越晚修复成本越高。

5. 软件测试(★★★)

(1)黑盒:等价类、边界值、因果图、错误推测、场景法。(2)白盒:语句、判定、条件、判定/条件、条件组合、路径覆盖,强度递增。(3)阶段:单元—集成—确认(验收)—系统—回归;α测试在开发方,β测试在用户方。

6. 维护与CMM(★★)

(1)维护四类:改正性、适应性、完善性、预防性,其中完善性占比最高。(2)可维护性指标:可理解性、可测试性、可修改性。(3)CMM/CMMI五级:初始、已管理、已定义、量化管理、优化。

7. 需求工程(★★★)

(1)五活动:需求获取、需求分析、需求定义(规格说明)、需求验证、需求管理。(2)获取方法:访谈、问卷、观察、原型、联合应用开发JAD、文档分析。(3)需求规格说明书要可验证、无二义、可跟踪,是验收的依据。(4)需求变更要走变更控制流程,评估影响后由变更控制委员会决策。

8. 开发文档(★★)

(1)可行性研究报告、项目开发计划、需求规格说明书、概要设计说明书。(2)详细设计说明书、数据库设计说明书、测试计划与测试报告、用户手册。(3)文档是软件配置管理的一部分,要版本控制与基线管理。(4)文档质量看完整性、一致性、可理解性与可维护性。

9. 挣值与进度压缩(★★★)

(1)PV计划值、EV挣值、AC实际成本;CV=EV-AC、SV=EV-PV。(2)CPI=EV÷AC、SPI=EV÷PV,小于1说明超支或滞后。(3)进度压缩方法:赶工(加资源、增成本)与快速跟进(并行、增风险)。(4)关键路径上的活动压缩才有效,非关键路径压缩不缩短总工期。

10. 配置管理(★★)

(1)配置项是需受控的工作产品,包括代码、文档、数据、工具。(2)基线是经评审通过的配置项集合,变更必须走变更控制。(3)版本控制工具:Git、SVN;变更记录要可追溯。(4)配置审计分功能配置审计与物理配置审计。

第9章 结构化分析与设计· 约5分

1. 结构化方法(★★★)

(1)核心思想:自顶向下、逐步求精、模块化、抽象。(2)分析阶段产出数据流图与数据字典,设计阶段产出模块结构图。(3)结构化方法面向功能,面向对象方法面向问题域中的对象。

2. 耦合与内聚(★★★|每年必考)

(1)耦合由弱到强:非直接、数据、标记、控制、外部、公共、内容耦合。(2)内聚由高到低:功能、顺序、通信、过程、时间、逻辑、偶然内聚。(3)设计目标:高内聚、低耦合;内容耦合与公共耦合最应避免。

▸只传简单参数的耦合是数据耦合(最理想);通过全局变量共享是公共耦合(较差)。

3. 模块结构图(★★)

(1)模块图元素:模块、调用、数据流(带空心圆箭头)、控制流(实心圆箭头)。(2)深度表示调用层次,宽度表示同一层模块数,扇入是被调用次数,扇出是调用下级个数。(3)设计原则:扇入大、扇出小(一般3—4),深度与宽度适中。

4. 数据字典(★★★)

(1)数据字典定义数据流图中每个数据流、数据项、数据存储与加工。(2)符号:=定义、+与、[ ]或、{ }重复、( )可选。(3)数据字典与DFD必须保持一致,是需求规格说明书的核心内容。

5. 结构化与面向对象对比(★★)

(1)结构化以功能与数据流为中心,自顶向下分解;面向对象以对象与类为中心,自底向上抽象。(2)结构化在需求变化时改动面大;面向对象封装变化,扩展性好。(3)结构化产出DFD与模块图,面向对象产出用例图、类图与交互图。(4)大型项目常用面向对象分析设计,嵌入式与数据处理仍常见结构化方法。

6. 模块设计启发式规则(★★)

(1)改进软件结构,提高模块独立性;模块规模适中(一般不超过100行)。(2)深度、宽度、扇入、扇出适当,扇入大说明复用性好。(3)模块作用域应在其控制域内,减少控制耦合。(4)力争降低模块接口复杂度,设计单入口单出口模块。

第10章 数据流图专题(下午第1题)· 15分大题

1. 四种基本元素(★★★|必背)

(1)外部实体:系统之外的人、组织或系统,用矩形表示,命名用名词。(2)加工(处理):把输入转为输出,用圆角矩形或圆表示,命名用「动词+名词」。(3)数据存储:数据的静态存储,用开口矩形或双横线表示,命名用名词。(4)数据流:数据在元素间流动,用带箭头的线表示,命名用名词,不能是动词。

▸数据流命名错误是最常见的改错点:写成「输入订单」是错的,应为「订单」。

2. 分层与平衡原则(★★★)

(1)顶层图只有一个加工(整个系统),标出全部外部实体与系统间输入输出流。(2)0层图把顶层加工分解为若干子加工,父图的输入输出流必须在子图中出现,称父子平衡。(3)每个加工可继续分解,但一般不超过三层;分解后内外数据流要守恒。

3. 找缺失数据流的四步法(★★★|拿分核心)

(1)第一步看清题目要求补哪几类:外部实体到加工、加工到数据存储、加工之间。(2)第二步逐个加工读描述,按「这个加工需要什么数据才能完成」找输入。(3)第三步按「这个加工产生什么结果」找输出,落到实体或存储。(4)第四步检查每个数据存储:有写无读、有读无写都要补。

4. 常见错误类型(★★★)

错误类型

表现

修改方法

黑洞

加工只有输入没有输出

补输出流到实体或存储

奇迹

加工只有输出没有输入

补输入流来源

父子不平衡

父图流未在子图出现

补流或改方向

数据流命名错

用动词或含义模糊

改为名词性短语

实体直接连实体

绕过加工

经加工中转

存储与实体直连

跳过加工

经加工中转

5. 书写规范(★★)

(1)答案写成「起点→终点:数据流名称」的形式,阅卷按三段给分。(2)同一条流不要重复画,双向流要分成两条单向流。(3)数字标号要与图中已有编号连贯,不改变原图结构。

6. DFD编号与画法(★★★)

(1)加工编号按层级:顶层为0,0层图为1、2、3…,子图为1.1、1.2,编号体现分解关系。(2)外部实体一般不编号,数据存储用D1、D2编号,数据流不编号。(3)画图时同一实体可重复出现(右下角加斜线表示重复),避免长线交叉。(4)父图与子图的输入输出流必须完全对应,这是「平衡」的判定标准。

7. 常见四类问法(★★★)

(1)「补充外部实体」:从题干找系统之外的人或系统,通常2—4个。(2)「补充数据存储」:找需要长期保存的数据,如订单表、客户表、库存表。(3)「补充数据流」:按加工缺输入或缺输出补齐,写清起点终点与流名。(4)「指出错误并改正」:从黑洞、奇迹、不平衡、命名不规范四类里找。

8. 数据字典与一致性(★★)

(1)DFD中出现的每个数据流、数据项都应在数据字典中有定义。(2)数据字典用「=、+、[ ]、{ }、( )」描述组成关系。(3)数据字典与DFD不一致是需求评审的常见问题。(4)加工说明(小说明)描述加工的处理逻辑,常用结构化语言、判定表、判定树。

第11章 面向对象与UML· 约11分

1. 基本概念(★★★)

(1)对象=属性+操作,类是对象的抽象,对象是类的实例。(2)三大特性:封装(隐藏实现)、继承(复用与扩展)、多态(同一消息不同响应)。(3)消息是对象间交互的方式;接口定义契约不含实现。

2. 类间关系(★★★|每年必考)

(1)依赖:临时使用,虚线箭头;关联:长期结构关系,实线。(2)聚合:整体与部分可分离,空心菱形;组合:整体与部分同生共死,实心菱形。(3)泛化:继承关系,实线空心三角箭头;实现:类实现接口,虚线空心三角箭头。

3. UML图分类(★★★)

类别

图种

用途

结构图

类图、对象图、构件图、部署图、包图、组合结构图

静态结构与组成

行为图

用例图、活动图、状态图、顺序图、通信图、时序图、交互概览图

动态行为与交互

▸用例图归行为图,类图归结构图,这是最常考的一个分类判断。

4. 用例图关系(★★★)

(1)包含include:公共行为抽取,箭头指向被包含用例,必执行。(2)扩展extend:可选或条件触发,箭头指向被扩展用例,不一定执行。(3)泛化:参与者之间或用例之间的继承关系。

5. 多态与重载(★★)

(1)重载是同一类中方法名相同、参数不同,编译期绑定。(2)重写(覆盖)是子类重定义父类方法,运行期动态绑定。(3)多态依赖继承与重写,通过父类引用调用子类实现。

6. 4+1视图(★★★)

(1)逻辑视图关注功能与类结构,进程视图关注并发与同步。(2)开发视图(实现视图)关注模块组织与包结构,物理视图(部署视图)关注硬件映射。(3)用例视图(场景)贯穿其余四个视图,用于验证与串联。(4)不同涉众关注不同视图:用户看用例、开发看逻辑与开发、运维看部署。

7. 包图、构件图与部署图(★★)

(1)包图描述包与包之间的依赖,用于组织大型系统的命名空间。(2)构件图描述可替换的软件单元及其接口与依赖,强调「可部署的部件」。(3)部署图描述物理节点与构件的部署关系,反映硬件拓扑。(4)三者都是结构图,不含时间维度。

8. 抽象类与接口(★★★)

(1)抽象类可有属性与已实现方法,接口通常只定义行为契约。(2)一个类只能继承一个父类,但可实现多个接口。(3)接口利于解耦与多实现,抽象类利于代码复用。(4)设计原则是「面向接口编程」,依赖抽象而非具体实现。

9. 分层架构与对象持久化(★★)

(1)典型分层:表现层—业务逻辑层—数据访问层—数据层,层间通过接口调用。(2)分层优点是可替换与可测试,缺点是调用层次多、性能开销。(3)对象持久化方案:ORM映射、DAO模式、仓储模式。(4)领域模型与数据模型不一定一致,需要映射与转换。

第12章 UML专题(下午第3题)· 15分大题

1. 类图多重度判定(★★★|送分点)

(1)多重度标在关联线两端:1表示恰好一个,0..1表示零或一个,*表示多个,1..*表示至少一个。(2)读法:从A端看B的数量,看题干描述「一个订单包含多个订单项」→ 订单1对订单项1..*。(3)组合与聚合要判断生命周期:整体销毁部分是否随之销毁。

2. 用例图填空(★★★)

(1)先找参与者:使用系统的人或外部系统,通常在题干以角色出现。(2)再找用例:用户要完成的业务目标,命名用「动词+名词」。(3)判断关系:公共必做的用include,可选附加的用extend。

3. 顺序图填空(★★★)

(1)顺序图横向是对象、纵向是时间,消息按时间从上到下排列。(2)消息类型:同步消息(实心箭头)、异步消息(开放箭头)、返回消息(虚线箭头)。(3)填空先看已有消息序列,按业务步骤推导缺失的对象名或消息名。

4. 状态图与活动图(★★)

(1)状态图描述单个对象的状态迁移,包含状态、事件、守卫条件、动作。(2)活动图描述业务流程或算法流程,含分岔与汇合(并发)、判定(分支)。(3)状态图强调「对象在什么条件下变成什么状态」,活动图强调「先做什么后做什么」。

5. 顺序图与通信图(★★★)

(1)顺序图按时间纵向排列,强调消息先后;通信图按对象链接布局,强调对象间关系。(2)二者语义等价,可以相互转换,顺序图更适合表达时序逻辑。(3)顺序图有生命线与激活条,激活条表示对象处于执行状态。(4)组合片段:alt条件分支、loop循环、opt可选、par并发。

6. 状态图细节(★★)

(1)状态图元素:初始状态(实心圆)、状态(圆角矩形)、迁移(箭头)、终止状态(同心圆)。(2)迁移标注格式:事件[守卫条件]/动作。(3)状态图适合描述对象生命周期,如订单从待支付到已完成的全过程。(4)活动图的分岔与汇合表示并发,判定菱形表示分支。

7. UML图选择判断(★★★)

(1)问「系统有哪些功能、谁使用」→用例图。(2)问「类之间关系与多重度」→类图;问「对象间消息顺序」→顺序图。(3)问「对象状态如何变化」→状态图;问「业务流程或算法步骤」→活动图。(4)问「软件如何部署到硬件」→部署图。

8. 协作与交互建模(★★)

(1)协作图(通信图)强调对象之间的链接与消息编号,编号体现顺序。(2)顺序图强调时间轴,通信图强调空间结构,二者可互转。(3)交互概览图用于表达多个交互之间的控制流。(4)建模时先定参与者与边界对象,再定控制对象与实体对象。

9. 用例图常见错误(★★)

(1)把系统内部功能当参与者:参与者必须是系统之外的角色。(2)include与extend方向画反:箭头都由「扩展/包含方」指向「被包含/被扩展方」。(3)用例命名用名词或内部步骤名,应为「动词+名词」的业务目标。(4)把界面元素当用例,用例应是用户可感知的完整业务价值。

第13章 设计模式· 约4分

1. 23种模式分类(★★★|每年3—4分)

类别

模式

创建型5

工厂方法、抽象工厂、单例、建造者、原型

结构型7

适配器、桥接、组合、装饰、外观、享元、代理

行为型11

职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者

2. 创建型模式(★★★)

(1)工厂方法:一个产品族一个工厂方法,子类决定实例化哪个类。(2)抽象工厂:一个工厂创建一系列相关产品,适合产品族切换。(3)单例:私有构造+静态实例+公有获取方法,注意线程安全。(4)建造者:分步构建复杂对象;原型:克隆现有对象,避免重复初始化。

3. 结构型模式(★★★)

(1)适配器:转换接口使不兼容的类协同工作;装饰:动态增加职责,比继承灵活。(2)代理:控制对对象的访问,可做远程、虚代理、保护代理。(3)外观:为子系统提供统一入口;桥接:抽象与实现分离,两个维度独立变化。(4)组合:树形结构统一处理整体与部分;享元:共享细粒度对象节省内存。

4. 行为型模式(★★★)

(1)观察者:一对多依赖,状态变化自动通知,是发布订阅的基础。(2)策略:封装可互换的算法族,消除大量if-else。(3)模板方法:父类定义骨架、子类实现步骤;状态:状态改变行为改变。(4)职责链:请求沿链传递;命令:把请求封装为对象,支持撤销与排队。

5. 判别技巧(★★★)

(1)题干出现「动态添加功能、层层包装」→装饰;出现「统一入口、简化调用」→外观。(2)出现「算法可替换、消除分支」→策略;出现「状态变化引起行为变化」→状态。(3)出现「全局唯一实例」→单例;出现「创建一族产品」→抽象工厂。

▸上午题常给场景选模式,记住「装饰加功能、代理控访问、适配转接口、外观简化面」。

6. 设计原则SOLID(★★★)

(1)单一职责:一个类只负责一件事;开闭原则:对扩展开放、对修改关闭。(2)里氏替换:子类可替换父类而不破坏语义;接口隔离:接口要小而专。(3)依赖倒置:依赖抽象不依赖具体实现。(4)设计模式是这些原则的具体落地手段,考试常把原则与模式对应起来考。

7. MVC与模式组合(★★)

(1)MVC中模型用观察者通知视图更新,控制器用策略切换处理逻辑。(2)常用组合:抽象工厂+单例管理产品族;装饰+工厂动态包装对象。(3)代理+工厂可做延迟加载;职责链+命令可做审批流。(4)组合模式常与迭代器配合遍历树形结构。

8. 反模式(★★)

(1)上帝类:一个类承担过多职责,难以维护与测试。(2)意大利面代码:控制流混乱、无结构;复制粘贴编程导致缺陷扩散。(3)过早优化、过度设计都是反模式,违背简单实用原则。(4)重构是消除反模式的手段,重构不改变外部行为。

9. 三个易混模式对比(★★★)

(1)适配器改变接口让两者能协作,装饰保持接口但增强功能,代理保持接口但控制访问。(2)装饰可多层嵌套,代理通常一层;适配器对象与原接口不同。(3)外观是简化多个子系统的调用,不与单个对象接口一致。(4)桥接是两个维度的组合,装饰是一个维度的增强。

第14章 算法设计与分析· 约9分

1. 复杂度分析(★★★)

(1)常见阶:O(1)<O(log n)<O(n)<O(nlog n)<O(n²)<O(n³)<O(2^n)<O(n!)。(2)循环看嵌套层数,递归用递推公式或主定理,二分与折半是log级。(3)空间复杂度看辅助空间,递归还要算栈深度。

2. 分治法(★★★)

(1)三步:分解、解决、合并,子问题相互独立且规模缩小。(2)典型:二分查找、归并排序、快速排序、大整数乘法、最近点对。(3)归并排序合并过程需要额外O(n)空间,快排原地但最坏O(n²)。

3. 动态规划(★★★|下午第4题常考)

(1)适用条件:最优子结构+重叠子问题,用表格保存中间结果避免重复计算。(2)步骤:定义状态—写状态转移方程—确定初值与边界—按序填表—回溯最优解。(3)典型:0-1背包、最长公共子序列、矩阵连乘、最大子段和、最长递增子序列。

▸区分DP与分治:子问题重叠用DP,子问题独立用分治;DP一定要写状态转移方程。

4. 贪心法(★★★)

(1)每步取当前最优,不回溯,要求贪心选择性质与最优子结构。(2)典型:活动安排、哈夫曼编码、单源最短路径Dijkstra、最小生成树Prim/Kruskal。(3)0-1背包不能用贪心(要DP),分数背包可以用贪心。

5. 回溯与分支限界(★★)

(1)回溯是深度优先搜索解空间树,不满足约束就剪枝回退。(2)典型:N皇后、图着色、子集和、迷宫问题。(3)分支限界用广度优先+限界函数剪枝,适合求最优解。

6. 策略判断法(★★★)

(1)看到「把问题分成规模更小的同类子问题再合并」→分治。(2)看到「子问题重叠、需要记录表格」→动态规划;看到「每步取局部最优不回退」→贪心。(3)看到「搜索解空间、不满足就回退」→回溯;看到「用限界函数剪枝求最优」→分支限界。(4)看到「每次与中间元素比较」→二分;看到「按权值最小合并」→哈夫曼。

7. 递归与迭代(★★)

(1)递归代码简洁但栈开销大,深度过大可能栈溢出。(2)尾递归可优化为迭代;树与图的遍历天然适合递归。(3)递归转迭代常用显式栈保存状态。(4)递归算法复杂度可用递推式或递归树求解。

8. 时空权衡(★★)

(1)用空间换时间:哈希表、缓存、DP表格、索引。(2)用时间换空间:压缩存储、流式处理、重复计算。(3)考试常问「该算法的时间复杂度与空间复杂度」,要分开写。(4)递归的空间复杂度包含调用栈深度。

9. 查找与排序选型(★★)

(1)数据量小用插入或冒泡,实现简单;数据量大用快排或归并。(2)要求稳定选归并或插入;要求原地且平均最快选快排。(3)求前k大用堆;外部排序用归并;整数范围小用计数或基数排序。(4)查找静态表用二分,动态表用二叉排序树或哈希。

第15章 算法专题(下午第4题)· 15分大题

1. 题目结构与分值(★★★)

(1)给一段C语言函数与说明,通常3—4个空,另问算法策略与时间复杂度。(2)填空多为基础语法:变量初始化、循环边界、数组下标、返回值、条件判断。(3)策略判断看特征:有表格为DP,有交换划分为分治或快排,有剪枝为回溯。

2. 填空技巧(★★★|提分关键)

(1)先通读函数说明,明确输入输出与变量含义,再逐空看上下文。(2)循环边界看数组长度与下标范围,注意是<还是<=、是n还是n-1。(3)累加与比较操作注意初始值:求和初始0,求最大初始最小或首元素。(4)看不懂算法就先填语法型空(如i++、return、数组赋值),保证基础分。

3. 高频算法原型(★★★)

(1)最大子段和:cur=max(a[i], cur+a[i]),ans=max(ans, cur)。(2)最长公共子序列:相等取左上+1,否则取上、左较大值。(3)0-1背包:逆序枚举容量,dp[j]=max(dp[j], dp[j-w]+v)。(4)二分查找:while(low<=high),mid=(low+high)/2,按比较结果收缩。

4. 复杂度填写(★★)

(1)一重循环O(n),二重嵌套O(n²),折半O(log n)。(2)DP看状态数与转移代价,通常O(n²)或O(n×W)。(3)递归式T(n)=2T(n/2)+O(n)对应O(nlog n)。

5. 真题算法清单(★★★)

(1)近5年考过:最大子段和、最长公共子序列、0-1背包、矩阵连乘、归并排序、快速排序。(2)也考过:二分查找变体、图的深度优先遍历、拓扑排序、Dijkstra、N皇后。(3)字符串类:KMP、最长回文子串、字符串编辑距离。(4)备考重点是读懂代码而非默写,理解状态与边界即可。

6. 填空高频语法(★★★)

(1)数组下标:i<n 或 i<=n-1,注意题目数组是否从1开始。(2)字符串比较用strcmp或equals,赋值与判等符号不要混。(3)返回值:递归出口return、函数末尾return结果。(4)指针与引用:*p取值、&取地址,C语言题常填这两个符号。

7. 第4题时间分配(★★)

(1)总时限20—25分钟,超过就先去检查前三题。(2)先填语法空(初始化、循环、返回),再攻逻辑空。(3)策略与复杂度两问几乎必答,各写一句就能得2—4分。

8. 代码阅读方法(★★)

(1)先读函数注释与参数说明,明确输入输出与返回含义。(2)找循环与递归结构,判断算法类型;找数组与表格,判断是否DP。(3)代入小规模数据手工执行一遍,验证对空缺的理解。(4)填空后回读整段代码,检查变量是否未初始化、下标是否越界。

第16章 Java与C++程序设计(第5/6题)· 15分大题

1. 题型结构(★★★)

(1)给出一段用某设计模式实现的代码框架,挖5个空左右。(2)考点集中在:继承与接口、抽象方法实现、对象创建、方法调用、集合使用。(3)选Java还是C++取决于熟练度,二者考查的设计模式相同。

2. Java语法要点(★★★)

(1)类继承extends、接口实现implements,接口方法默认public abstract。(2)抽象类不能实例化,含抽象方法的类必须声明abstract。(3)关键字:this当前对象、super父类、static静态、final不可变、@Override重写。(4)集合:List有序可重复、Set不可重复、Map键值对;遍历用for-each或Iterator。

3. C++语法要点(★★★)

(1)虚函数virtual实现多态,纯虚函数=0使类成为抽象类。(2)构造函数与析构函数,析构函数应为virtual以避免内存泄漏。(3)继承public/protected/private,public继承保持接口。(4)对象创建用new/delete或栈对象,注意指针与引用传参差别。

4. 设计模式实现考点(★★)

(1)单例:私有构造、静态成员、静态getInstance。(2)工厂方法:抽象产品接口+具体产品类+工厂创建方法。(3)观察者:主题维护观察者列表,通知时遍历调用update。(4)策略:抽象策略接口+具体策略类+上下文持有策略引用。

5. Java集合与异常(★★)

(1)List:ArrayList随机访问快,LinkedList插入删除快。(2)Set不可重复,HashSet无序、TreeSet有序;Map中HashMap常用、TreeMap按key排序。(3)异常:try-catch-finally,finally必执行;受检异常必须处理或声明抛出。(4)自定义异常继承Exception或RuntimeException。

6. C++模板与STL(★★)

(1)模板template<class T>实现泛型,编译期实例化。(2)STL容器:vector动态数组、list链表、map红黑树、set集合。(3)迭代器遍历容器,算法如sort、find配合使用。(4)引用传参避免拷贝,const引用只读传参。

7. 代码填空技巧(★★★)

(1)先看类图或框架说明,确认哪个类是抽象产品、哪个是具体实现。(2)注意访问修饰符与返回类型,父类引用指向子类对象是常见填法。(3)抽象方法在子类必须实现,填空多半是方法签名与return语句。(4)不确定时按「类型匹配」原则填,保证编译通过即可得分。

8. 语言题填空套路(★★★)

(1)父类引用指向子类对象:Product p = new ConcreteProduct()。(2)抽象方法实现:方法签名与父类一致,返回类型兼容,访问权限不更严。(3)集合存放对象用泛型:List<Product> list = new ArrayList<>()。(4)C++中虚函数声明virtual,纯虚函数=0,子类用override重写。

第17章 计算机网络与信息安全· 约9分

1. 协议分层(★★★)

(1)OSI七层与TCP/IP四层对应,常考各层协议与设备归属。(2)应用层:HTTP 80、HTTPS 443、FTP 20/21、SMTP 25、POP3 110、DNS 53、DHCP 67/68。(3)传输层:TCP可靠面向连接,UDP不可靠无连接但快。

2. IP与子网(★★★)

(1)IPv4地址32位,分类A/B/C;私有地址10/8、172.16/12、192.168/16。(2)子网可用主机数=2^主机位-2,子网数=2^借位数。(3)CIDR与路由聚合:把多条连续网段合并为一条更短前缀的路由。

3. 加密与认证(★★★)

(1)对称加密AES/DES速度快,密钥分发难;非对称RSA/ECC解决密钥分发与签名。(2)数字签名用私钥签、公钥验,保证完整性与不可否认性。(3)哈希MD5(128位)、SHA-1(160位)、SHA-256(256位),用于完整性校验与口令存储。

4. 攻击与防护(★★)

(1)常见攻击:DDoS、SQL注入、XSS、CSRF、ARP欺骗、木马病毒。(2)防火墙包过滤与状态检测,DMZ放置对外服务器。(3)病毒特性:传染性、潜伏性、破坏性、隐蔽性、可触发性。

5. 网络命令(★★)

(1)ping测连通性,tracert/traceroute看路径,netstat看端口与连接。(2)ipconfig/ifconfig看地址配置,nslookup/dig查DNS解析。(3)arp查看地址映射,route查看路由表。

6. 网络设备与拓扑(★★)

(1)集线器工作在物理层共享带宽,交换机工作在链路层按MAC转发,路由器工作在网络层按IP转发。(2)三层交换机兼具路由功能,用于核心层高速转发。(3)拓扑:星型易维护、总线型已淘汰、环型有自愈、网状可靠但成本高。(4)局域网技术:以太网、令牌环、FDDI,当前以以太网为主。

7. 安全协议与等级保护(★★)

(1)HTTPS=HTTP+TLS,默认443;SSH用于安全远程登录,默认22。(2)IPSec用于网络层VPN,SSL VPN用于应用层远程接入。(3)等保2.0分五级,三级以上需每年测评,核心思想是一个中心三重防护。(4)常见安全设备:防火墙、IDS/IPS、WAF、堡垒机、网闸。

8. 网络故障排查(★★)

(1)顺序:物理链路—网卡与地址—网关与路由—DNS—应用端口。(2)命令:ping测连通、tracert看路径、netstat看端口、nslookup查DNS。(3)常见原因:IP冲突、掩码错误、网关不可达、VLAN划分错误、ACL拦截。(4)排查要「先近后远、先软后硬、先单点后全局」。

9. 子网划分例题(★★★)

(1)192.168.1.0/24划分为4个子网,需借2位,掩码变为/26即255.255.255.192。(2)每子网可用主机62台,子网地址间隔64:0、64、128、192。(3)广播地址是每个子网的最后一个地址,不能分配给主机。(4)CIDR聚合把连续网段合并,如192.168.0.0/24与1.0/24合并为/23。

第18章 标准化、知识产权与英语· 约7分

1. 标准分级与代号(★★★)

(1)层级:国家标准、行业标准、地方标准、团体标准、企业标准。(2)国标代号:GB强制、GB/T推荐、GB/Z指导;国际标准ISO、IEC、IEEE。(3)标准复审周期一般5年,标准可等同(IDT)、修改(MOD)、非等效(NEQ)采用国际标准。

2. 知识产权期限(★★★|每年1—2分)

(1)著作权:自然人作品终生加死后50年,法人作品首次发表后50年;软件著作权同样适用。(2)专利:发明20年、实用新型10年、外观设计15年,自申请日起算。(3)商标:注册有效期10年,可无限续展。

3. 侵权与归属(★★)

(1)职务作品:一般归作者,单位有优先使用权;主要利用单位物质技术条件且单位担责的,单位享有著作权。(2)委托开发:合同约定优先,未约定归受托方。(3)侵权判定看「接触+实质性相似」,合理使用与法定许可不构成侵权。

4. 专业英语(★★)

(1)5道填空,考计算机术语与短文理解,不必专门背单词但要看懂句式。(2)高频词:algorithm、database、protocol、compile、encryption、interface、virtual、concurrent。(3)先做有把握的,剩余按词性与上下文排除。

5. 标准化组织(★★)

(1)国际:ISO国际标准化组织、IEC国际电工委员会、ITU国际电信联盟、IEEE、IETF。(2)国内:国家标准化管理委员会、工业和信息化部行业标准。(3)标准类型:基础标准、方法标准、产品标准、安全标准、管理标准。(4)企业标准应严于或等于国家标准,不得低于强制性标准。

6. 知识产权案例判断(★★★)

(1)单位职工为完成本职工作创作的作品属职务作品,单位有优先使用权。(2)委托开发未约定归属时,著作权归受托方,委托方有使用权。(3)购买正版软件只获得使用权,不得复制分发或反编译。(4)侵权判定看接触与实质性相似,独立创作且无接触不构成侵权。

7. 标准与法规补充(★★)

(1)强制性标准必须执行,推荐性标准被合同引用后具有约束力。(2)标准实施后一般5年复审一次,确认继续有效、修订或废止。(3)软件产品登记与著作权登记是自愿行为,但登记证书可作为初步证据。(4)开源许可证分宽松型(MIT、Apache)与传染型(GPL),商用要注意合规。

附录一 下午五题答题模板· 照模板不断点

题号

答题动作

必写要素

第1题DFD

定实体→定存储→补流→查平衡

起点→终点:数据流名

第2题数据库

圈名词→补ER→转关系→标主外键

表名(属性)、主键下划线

第3题UML

定参与者→定用例→判关系→填多重度

include/extend、1..*

第4题算法

读说明→填语法空→判策略→写复杂度

O(nlog n)、DP、贪心

第5/6题语言

看接口→找抽象方法→填实现

extends/implements、virtual

附录二 公式与数字速查· 计算题靠它

项目

公式/数值

海明码校验位

2^k ≥ m+k+1

流水线时间

(k+n-1)×Δt

串联/并联可靠性

R1×R2 / 1-(1-R1)(1-R2)

Cache平均访问时间

h×Tc+(1-h)×Tm

二叉树叶子数

n0=n2+1

完全二叉树深度

⌊log₂n⌋+1

二分查找判定树深度

⌈log₂(n+1)⌉

子网主机数

2^主机位-2

沟通渠道数

n×(n-1)÷2

单精度浮点

1+8+23=32位

附录三 易混概念对照· 选择题雷区

概念对

一句话区别

重载 / 重写

同类同名不同参 / 子类重定义父类方法

聚合 / 组合

可分离 / 同生共死

验证 / 确认

符合规格 / 满足需求

α测试 / β测试

开发方现场 / 用户实际使用

Gantt / PERT

看进度 / 看依赖与关键路径

依赖 / 关联

临时使用 / 长期结构

白盒 / 黑盒

看内部逻辑 / 看输入输出

视图 / 表

虚表 / 实存数据

附录四 常用模式场景对照· 看到场景选模式

场景描述

对应模式

系统需要唯一配置或连接池

单例

需要创建一系列相关产品

抽象工厂

不兼容接口需要协同工作

适配器

动态给对象增加职责

装饰

为复杂子系统提供统一入口

外观

控制对对象的访问(权限、远程、延迟)

代理

一对多通知、状态联动

观察者

算法族可互换、消除分支

策略

状态改变导致行为改变

状态

请求沿链传递、逐级审批

职责链

算法骨架固定、步骤可变

模板方法

整体与部分统一处理(树形)

组合

附录五 下午题常见问法与得分点· 按点作答

常见问法

作答要求

补充外部实体/数据存储

写名称+类型,数量与题干对应

补充数据流

起点→终点:流名称,三段齐全

E-R转关系模式

表名(属性)、主键下划线、注明外键

说明实体间联系类型

写1:1、1:n或m:n并给理由

补充类图多重度

写1、0..1、*、1..*,与题干语义一致

说明算法策略

写分治/DP/贪心/回溯+一句理由

求时间复杂度

写O(...),必要时说明空间复杂度

补充代码空缺

保证语法正确、类型匹配、逻辑完整

附录六 必背数字清单· 考前最后一遍

考点

数字/结论

海明码校验位

m=8需k=4,m=16需k=5

流水线执行时间

(k+n-1)×Δt

二叉树叶子

n0=n2+1

二分查找判定树深度

⌈log₂(n+1)⌉

单精度浮点

1+8+23=32位

子网可用主机

2^主机位-2

发明专利/实用新型/外观设计

20年/10年/15年

著作权(自然人)

终生加死后50年

商标注册

10年,可续展

标准复审

一般5年一次

及格线/总时长

每科45分/240分钟

下午题

6题做5题,每题15分

常用端口

HTTPS 443、SSH 22、DNS 53

排序稳定性

插冒归基稳定,快希选堆不稳

附录七 高频易错提醒· 避开这些坑

易错点

正确表述

快排最坏时间

O(n²),出现在基本有序时

最差耦合

内容耦合,其次公共耦合

组合与聚合

组合同生共死,聚合可分离

include与extend

都是箭头指向被包含/被扩展方

m:n联系

必须单独建表,两端码为主键

白盒覆盖最强

路径覆盖

CMM五级顺序

初始、已管理、已定义、量化、优化

验证与确认

验证符合规格,确认满足需求

相关学习资料