中级软件设计师
本文摘要:本文系统梳理了计算机专业核心知识体系,涵盖操作系统(Linux设备文件管理、进程/存储/文件管理)、数据库系统(三级模式、关系代数、SQL)、程序设计(语言特性、编译原理)、UML建模(类图/用例图/状态图)三大模块。重点解析了Linux设备文件命名规则(/dev目录、sd前缀)、数据库设计技巧(外键、ER图补充)、面向对象核心概念(重载/重写区别、UML七种图应用场景),并针对软考高频
目录
选择题
2025.5
| 目录 | 核心用途 | 一句话记忆 |
|---|---|---|
/dev |
存放所有设备文件(硬盘、键盘、打印机等) | device(设备)的缩写,直接和硬件打交道 |
/root |
超级管理员 root 的家目录 | 只有 root 用户能进的「专属文件夹」 |
/etc |
存放系统配置文件(比如用户信息、服务配置) | etc = 配置中心,系统的「设置面板」 |
/var |
存放可变数据(日志、缓存、数据库文件) | variable(可变)的缩写,内容会一直变 |

sd 开头的设备,代表SCSI/SATA 类型的存储设备(包括硬盘、U 盘),后面的字母(a、b、h…)代表序号,sdh 就是第 8 块 SCSI 硬盘。
| 前缀 | 对应设备类型 | 一句话记忆 |
|---|---|---|
sd |
SCSI/SATA 硬盘、U 盘 | SCSI Disk,现代主流硬盘 / 移动存储 |
hd |
IDE 硬盘(老式) | Hard Disk,老系统里的 IDE 硬盘 |
fd |
软盘(Floppy Disk) | Floppy Disk 的缩写,现在基本淘汰 |
sr/scd |
CD-ROM/DVD 光驱 | SCSI ROM,光驱设备 |

| 特性 | 关键词 | 通俗解释 | 一句话场景记忆 |
|---|---|---|---|
| 原子性(Atomicity) | 要么全成,要么全败 | 事务是不可分割的最小单元,执行过程中一旦出错,就全部回滚 | 转账时要么双方余额都变,要么都不变,不会出现 “扣了钱没到账” |
| 一致性(Consistency) | 状态合法,数据一致 | 事务执行前后,数据库的完整性约束没有被破坏 | 转账前后,总余额必须保持不变 |
| 隔离性(Isolation) | 互不干扰,并发安全 | 多个事务同时执行时,彼此看不到对方的中间状态,不会互相影响 | 两个人同时给你转账,你不会看到 “收到一半” 的中间状态 |
| 持久性(Durability) | 提交即永久,断电不丢失 | 事务一旦提交,修改就永久保存到数据库,不会因为故障丢失 | 转账成功后,就算服务器断电重启,钱也不会消失 |


SMTP/MIME,只编码不加密,正文附件全明文。
| 协议 / 标准 | 核心作用 | 关键特性 |
|---|---|---|
| SMTP | 负责发送邮件的传输协议 | 默认明文传输(端口 25),不加密 |
| MIME | 扩展邮件格式,支持附件 / 非文本内容 | 仅做编码(如 Base64),不提供加密 |
真正的加密:需要 SSL/TLS(比如 SMTPS,端口 465/587)或者 PGP 这类协议,SMTP/MIME 本身不支持。

| 类型 | 本质 | 触发来源 | 典型例子 |
|---|---|---|---|
| 软件中断(软中断) | CPU 内部 / 程序主动触发 | 指令执行异常、主动调用中断指令 | 除零错误、溢出、非法指令、INT n 指令 |
| 硬件中断(硬中断) | 外部硬件设备触发 | 外设、定时器、硬件故障 | 键盘按键、定时器溢出、电源故障 |
软中断是 “程序自己出的事 / 主动喊停”,硬中断是 “外面设备找上门”。

| 选项 | 描述 | 正误 | 关键记忆点 |
|---|---|---|---|
| A 字符串 | 可通过下标访问并修改单个字符 | ❌ 错误 | 字符串是不可变对象,只能读,不能改 |
| B set 集合 | 元素无序且唯一 | ✅ 正确 | 哈希表实现,自动去重,不保证顺序 |
| C dict 字典 | key 与 value 可以是任意类型 | ❌ 错误 | key 必须是可哈希类型(不可变:int/str/tuple),value 可以任意 |
| D 列表和元组 | 均是不可变的 | ❌ 错误 | list 可变,tuple 不可变 |
串不可改,set 无序独,dict 键可哈希,列表可变元组固。

公式:[ 计算式 for 变量 in 列表 if 条件 ]做题就按 3 步走:
第 1 步:遍历
for a in list1list1 = [1,2,3,4,5]逐个取出:1、2、3、4、5
第 2 步:筛选
if a%2 == 0 → 只留偶数剩下:2、4
第 3 步:计算
a**2 就是平方2²=4,4²=16结果:[4,16]

关系数据库的第一范式(1NF) 强制规定:
关系模式的属性必须是原子的、不可再分的。
题目问 “不能直接作为属性的是”,就是在考谁不满足 “原子性”。
| 属性类型 | 定义 | 能否直接作为关系模式属性 | 例子 |
|---|---|---|---|
| 简单属性 | 不可再分的原子值 | ✅ 可以 | 姓名、学号 |
| 组合属性 | 可拆分为多个有意义子属性 | ❌ 不可以 | 地址(可拆为省 / 市 / 区) |
| 多值属性 | 一个实体对应多个同类型值 | ✅ 可以(通过建子表实现) | 兴趣爱好(可存为列表 / 关联表) |
| 派生属性 | 由其他属性计算得出 | ✅ 可以(存计算结果或动态计算) | 年龄(由出生日期计算) |

关系数据库的范式
| 范式 | 消除的问题 | 一句话口诀 |
|---|---|---|
| 1NF 第一范式 | 列不可再分(原子性) | 不可分 |
| 2NF 第二范式 | 消除部分依赖 | 主键拆干净,无部分依赖 |
| 3NF 第三范式 | 消除传递依赖 | 非主属性不拐歪,不传递 |
| 4NF 第四范式 | 消除多值依赖 | 解决一对多多值问题 |
2025.5

2024.5


| 层数 | 名称 | 核心作用 | 典型例子(必背) |
|---|---|---|---|
| 7 | 应用层 | 给应用程序直接提供服务 | JDBC/ODBC、HTTP、FTP、DNS、SMTP |
| 6 | 表示层 | 数据格式转换、加密解密、压缩解压 | 字符编码、数据格式转换、SSL |
| 5 | 会话层 | 建立 / 断开会话、通信同步 | 会话控制、断点续传 |
| 4 | 传输层 | 端到端传输、差错控制 | TCP、UDP |
| 3 | 网络层 | 寻址、路由选择 | IP、ARP、ICMP |
| 2 | 数据链路层 | 帧封装、差错校验 | 以太网、PPP、MAC |
| 1 | 物理层 | 传输比特流、硬件接口 | 网线、光纤、集线器 |
高频秒杀句
- 接口、协议、软件服务 → 应用层
- 格式转换、加密、压缩 → 表示层
- 建立会话、连接管理 → 会话层

PC 要跳转,必是异常来;缺页属虚拟内存,流水线 MMU Cache 都不改 PC
- PC 程序计数器:存下一条指令地址,正常顺序执行时 PC+1
- 只有中断、异常、跳转指令,才会让 PC 脱离当前序列
- 虚拟内存→缺页异常→触发异常→修改 PC
- MMU:只转地址,只做虚拟地址→物理地址的硬件转换,不修改 PC 的值
- 流水线、Cache:只提速,不改流程


- 可维护:分、改、模、测、用(分析、修改、模块化、测试、复用)
- 容错性:属于可靠性,管故障不崩溃,不属于维护



计算机中“阶码溢出”通常指上溢(正溢出)。在浮点数加减法中,右规(阶码+1)和对阶(小阶向大阶看齐)均可能引发正溢出,但对阶导致溢出的前提是原阶码已接近最大值,而右规是规格化处理的必经步骤,溢出风险更高。

- 重放攻击的本质:攻击者截获合法请求(比如登录、支付请求),之后再把这些旧请求 “重放” 给服务器,欺骗系统重复执行操作。
- 时间戳的防御原理:给每个请求加上当前时间标记,服务器会验证请求的时间是否在有效窗口内,旧请求会被直接拒绝,完美解决 “重复使用旧数据” 的问题。
| 选项 | 攻击类型 | 时间戳能否防御 | 一句话判断 |
|---|---|---|---|
| A 重放攻击 | 重复发送旧请求 | ✅ 能 | 时间戳直接校验请求时效性,旧请求无效 |
| B 流量分析攻击 | 分析通信模式、频率 | ❌ 不能 | 时间戳不隐藏流量特征 |
| C 网页挂马攻击 | 在网页植入恶意代码 | ❌ 不能 | 时间戳和网页内容安全无关 |
| D 木马植入攻击 | 植入后门程序 | ❌ 不能 | 时间戳无法防御恶意软件植入 |

| 攻击类型 | 核心特征 | 一句话场景记忆 |
|---|---|---|
| 供应链投毒 | 入侵正规软件的开发流程,把恶意代码藏进正常产品里 | 「污染源头,伪装成可信软件」,比如篡改开源库、伪造证书 |
| 零日漏洞 | 利用未公开的漏洞攻击 | 「打官方没发现的补丁」,和开发流程无关 |
| 撞库攻击 | 用泄露的账号密码批量登录其他平台 | 「跨平台碰运气」,和代码、证书无关 |
| AI 赋能攻击 | 用 AI 优化攻击手段(比如生成钓鱼内容、自动化扫描) | 「AI 帮着干活」,不是靠渗透开发流程 |


开源≠放弃著作权!开源软件的著作权仍归开发者所有,只是通过开源协议,赋予了使用者「在授权范围内修改、分发」的权利。
| 选项 | 描述 | 正误 | 关键判断点 |
|---|---|---|---|
| A | 开源软件不受著作权保护 | ❌ 错误 | 开源≠放弃版权,依然受保护 |
| B | 著作权归开发者,使用者可在授权范围内修改和分发 | ✅ 正确 | 开源的核心:开发者保留版权,用户按协议使用 |
| C | 著作权归开发者,使用者不得修改 | ❌ 错误 | 开源协议允许用户在授权范围内修改 |
| D | 著作权归使用者所有 | ❌ 错误 | 版权始终属于原开发者,用户不享有著作权 |


线带宽(单位:MB/s)的计算公式:

- 总线位宽:每次传输的二进制位数(本题为 32 位)
- 有效传输频率:实际每秒传输多少次数据
- 除以 8:把 bit 转换成字节(1Byte=8bit)

软件开发模型
| 开发模型 | 核心关键词 | 适用场景 |
|---|---|---|
| 瀑布模型 | 线性、阶段清晰、文档驱动、变更极少 | 需求稳定、监管严格、需审计的项目(如银行核心系统) |
| 增量模型 | 分模块交付、迭代、快速出核心功能 | 需求部分明确、需快速交付的项目 |
| 喷泉模型 | 面向对象、对象驱动、迭代无间隙 | 面向对象开发,以对象为驱动的项目 |
| 螺旋模型 | 风险分析、迭代、原型 + 瀑布 | 高风险、需求复杂的大型项目 |
| 敏捷(Scrum) | 短周期迭代、快速响应变更、文档轻量化 | 需求不确定、变化快的互联网项目 |
| 统一过程模型(RUP) | 用例驱动、UML、迭代优化 | 需求复杂、需多次迭代的大型系统 |

2024.11

QoS(服务质量)的核心,是流量优先级调度、带宽分配、拥塞管理,确保语音、视频等关键业务不延迟、不丢包。而这一切,都需要在负责全网流量转发的设备上实现,也就是路由器。
| 选项 | 设备 | 核心功能 | 能否部署 QoS | 一句话判断 |
|---|---|---|---|---|
| A 防火墙 | 访问控制、安全隔离 | 主要做包过滤,不负责流量调度 | ❌ 不适合 | 防火墙只管 “能不能过”,不管 “谁先过” |
| B 路由器 | 路由转发、流量调度、拥塞管理 | 可在接口处配置 QoS 策略(流量分类、队列调度) | ✅ 标准部署位置 | 路由器是流量的 “调度中心”,天然适合做 QoS |
| C IDS | 入侵检测 | 被动监控攻击行为,不参与流量转发 | ❌ 不能 | 只看不说,不影响流量走向 |
| D 网桥 | 二层转发 | 仅做数据链路层转发,无流量调度能力 | ❌ 不适合 | 只管转发,不管优先级 |

一、核心考点:先记内聚等级(从低到高)
巧合内聚 < 逻辑内聚 < 时间内聚 < 过程内聚 < 通信内聚 < 顺序内聚 < 功能内聚内聚度越高,模块独立性和可维护性越好。
| 内聚类型 | 核心特征 | 一句话场景记忆 |
|---|---|---|
| 巧合内聚 | 各成分无逻辑关联,只是偶然放在一起 | 比如把无关的 “打印日志” 和 “计算工资” 函数硬塞在一个文件里 |
| 通信内聚 | 所有成分操作同一数据集,但处理逻辑独立 | 比如读取同一文件,有的函数写、有的函数读,但互相不依赖 |
| 顺序内聚 | 前一步的输出是后一步的输入,按顺序处理同一数据 | 比如 “输入数据→校验→加密→存储”,每一步的结果给下一步用(这题的考点) |
| 功能内聚 | 所有成分共同完成单一、不可拆分的功能 | 比如一个 “用户登录” 模块,所有操作都只为完成登录这一件事 |

| 阶段 | 核心目标 | 关键任务 | 对应题目中的序号 |
|---|---|---|---|
| 词法分析 | 把代码拆成一个个 “单词”(记号) | 识别记号、关键字、标识符 | ① |
| 语法分析 | 检查代码的 “句子结构” 是否符合语法规则 | 识别句子结构、检查语法错误 | ②③ |
| 语义分析 | 检查代码的 “含义” 是否合法,为后续生成代码做准备 | 填写符号表(记录变量 / 函数信息)、类型检查、生成中间代码 | ④⑤ |
词法拆单词,语法看结构,语义查含义、填表、生成中间码。


| 知识产权类型 | 是否有法定时间性 | 关键判断点 |
|---|---|---|
| 商业机密权 | ❌ 无 | 保护依赖 “秘密性”,不公开就一直有效 |
| 商标权 | ✅ 有 | 10 年有效期,可续展 |
| 专利权 | ✅ 有 | 固定期限,到期进入公有领域 |
| 著作权 | ✅ 有 | 固定保护期,过期作品进入公有领域 |

软件设计模式
| 模式 | 核心关键词 | 典型场景 |
|---|---|---|
| 策略模式 | 算法可替换 | 同一行为有多种算法实现,可动态切换(如排序算法、支付方式) |
| 观察者模式 | 一对多依赖、状态变化自动通知 | 数据变化时,多个订阅方自动更新(如本题的天气推送) |
| 备忘录模式 | 保存 / 恢复对象状态 | 撤销操作、回滚功能(如编辑器的撤销 / 重做) |
| 状态模式 | 状态改变时行为随之改变 | 对象行为依赖内部状态,状态变化时自动切换行为(如订单状态流转) |


此题若i=1,j=3,n=4,则1/2=0.5,精确到小数,但在计算机里就是只保留整数


2024.11
设:信息位 = n,校验位 = k。满足不等式:2k−1≥n+k

1. 著作权(版权)
- 保护:软件代码、界面布局、图标设计、文字、图形、程序表达
- 不保护:软件功能、算法、思想、通用操作逻辑
- 场景:界面、UI、代码抄袭 → 侵犯著作权
2. 商标权
- 保护:品牌名字、Logo、标识
- 必须条件:注册了商标,别人用近似名字、Logo 才算侵权
- 本题:“智慧助手” 和 “智能帮手”,名字不近似、无商标注册信息,不侵权
3. 专利权
- 保护:技术方案、发明、实用新型、外观设计
- 必须条件:申请并拿到专利
- 题目没提 “专利” 二字,一律不选专利侵权
只抄功能、思想、算法:不侵权

只抄功能、思想、算法:不侵权

二、3 类核心访问控制(必背,做题直接套)
- 自主访问控制 DAC:资源主人自己决定谁能访问,权限可自主授予、传递,灵活但安全性一般。
- 强制访问控制 MAC:系统强制分配安全级别(密级标签),用户不能改权限,高安全场景(政府、涉密系统)用。
- 基于角色的访问控制 RBAC:给角色分配权限,用户加入角色就拥有权限,企业系统最常用,好管理。
软件设计师考试里,访问控制三大策略固定就是这 3 个,其他(基于时间、位置、任务)都不属于基础三大类。

- 外部实体:在系统之外,和系统交互(人、其他系统、部门)→ 不属于待开发系统内部 ✅
- 数据加工(处理):系统内部做数据运算、处理 → 属于系统
- 数据存储:系统内部保存数据(数据库、文件)→ 属于系统
- 数据流:系统内部 / 内外之间传输的数据,是系统数据流动的一部分 → 属于系统


- 需求分析阶段:画 数据流图 DFD、ER 图、用例图(搞清楚系统要做什么)
- 概要设计阶段:模块划分、架构、接口
- 详细设计阶段:写具体怎么实现(模块内部细节)


| 关系 | 适用对象 | 一句话考点 |
|---|---|---|
| 泛化(继承) | 参与者之间 + 用例之间 | 两者通用,都能用 |
| 关联 | 参与者 ↔ 用例(交互连线) | 只连人和用例 |
| 包含 | 仅用例之间 | 公共步骤,必执行 |
| 扩展 | 仅用例之间 | 可选步骤,条件执行 |

- 标识:对象唯一名字、ID,用来区分你我(独一无二)
- 状态:属性值、当前信息、数据(这一刻的样子)
- 行为:方法、动作、能做什么(跑、读、写)
- 语义:含义、业务意义(软件里极少考)


Python 字典是键值对结构:
- 取值、修改、删除,只能用「键」,不能用数字下标索引(和列表不一样)
- 列表:
lst[0]、lst[1]按位置取 - 字典:只能写
dict['键名'],不能写dict[数字]
- 字典:按键不按下标
- 列表:按下标不按键

range(5)→ 取值:0, 1, 2, 3, 4if a % 2→ 只保留奇数(奇数取模 2=1,为真;偶数 = 0,为假)a*a→ 对筛选后的数字求平方


两个函数依赖集 F、G 等价 = 它们的闭包相等。公式:F+=G+
恢复找冗余,约束保完整,加密保安全,存取管权限

- 实体完整性 → 主码(主键 Primary Key)保证本表每行唯一、不重复
- 参照(参考)完整性 → 外码(外键 Foreign Key)保证两张表之间关联数据一致(本题考点)
- 域完整性 → 类型、范围、CHECK 约束保证单元格数据合法





IDS:只检测「恶意攻击行为」,不处理「网络设备 / 拓扑故障」
- 作用:监控、报警黑客攻击、恶意访问
- 不能处理:网络环路、配置错误导致的网络故障
- A 蠕虫病毒:恶意代码攻击 → IDS 可检测
- B 端口扫描:黑客探测行为 → IDS 可检测
- C 广播风暴:网络环路 / 设备故障,不是黑客攻击 → IDS无法抵御(本题答案)
- D 系统漏洞攻击:黑客入侵行为 → IDS 可检测
- IDS:检测、报警,不能阻断攻击
- IPS:入侵防御系统,可主动阻断攻击

- ping:测试网络连通性(发 ICMP 包看通不通)→ 本题选 C
- telnet:远程登录、测试端口通不通
- netstat:查看当前网络连接、端口、路由状态
- nslookup:查DNS 域名解析(域名↔IP)

- 蠕虫病毒:主动网络传播、自我复制(邮件群发、局域网扩散)→ 本题场景(自动发邮件给联系人),选 C
- 宏病毒:依附 Word/Excel 文档,打开文档才触发,不会主动群发邮件
- 木马病毒:伪装正常程序,远程控制、偷信息,不主动扩散
- CIH 病毒:破坏 BIOS 硬件,感染 exe 文件

ls -l:看权限、大小、类型、名字、时间ls -i:专门看 inode

2024.5
| 设备 | 工作层级(OSI) | 管理 / 依赖的地址 | 转发的数据单元 |
|---|---|---|---|
| 集线器 | 物理层 | 无 | 比特流 |
| 交换机 | 数据链路层 | MAC 地址 | 帧 |
| 路由器 | 网络层 | IP 地址 | 数据包 |
| 网关 / 防火墙 | 多层(跨层) | 多协议 / 应用层 | 报文 / 段 |

| 术语 | 核心动作 | 一句话场景记忆 |
|---|---|---|
| 拖库 | 「偷」走整个数据库 | 黑客攻破网站,把整份用户数据打包偷走(题目描述的就是它) |
| 撞库 | 「试」账号密码 | 拿着偷来的账号密码,去其他平台批量登录碰运气 |
| 洗库 | 「加工」偷来的数据 | 对拖库拿到的数据做筛选、去重、分类,方便后续利用 / 出售 |
| 社工库 | 「用」公开信息攻击 | 整合公开信息做社会工程学攻击的数据库,本身不是攻击行为 |

VLAN(虚拟局域网)的核心定位是二层逻辑隔离工具,它能做到的是:
- 划分 / 隔绝广播域(核心功能,减少广播风暴)
- 限制不同 VLAN 之间的内网互访(配合 ACL / 三层设备)
- 分离不同安全区域(比如内网 VLAN 和 DMZ 外网 VLAN,实现内外网隔离)
它做不到的,就是题目要考的点:
- 它只能管「谁能和谁说话」,但管不了「说的话里藏着攻击」,比如漏洞利用、SQL 注入、恶意扫描这类攻击行为,需要防火墙、IDS/IPS 等专门的安全设备来防护。

浮点数规格化的目的,是为了保证尾数的最高有效位是 1,最大化表示精度。而补码的正负表示有特殊规则,所以判断标准和原码不一样:
- 原码规格化:数符和尾数小数点后第一位必须不同(正:0.1xxx,负:1.1xxx)
- 补码规格化:数符和尾数小数点后第一位必须相异(正:0.1xxx,负:1.0xxx)

Linux 权限是用 3 个八进制数表示,分别对应:
- 所有者(u) → 第 1 位数字
- 组用户(g) → 第 2 位数字
- 其他用户(o) → 第 3 位数字
每个数字的计算规则:
| 权限 | 读 (r) | 写 (w) | 执行 (x) |
|---|---|---|---|
| 数值 | 4 | 2 | 1 |
| 口诀 | 读 4 写 2 执行 1 | 三者相加 | 得到该角色的权限值 |
- 所有者:拥有所有权限(r+w+x)→ 4+2+1 = 7
- 组成员:读取 + 运行(r+x)→ 4+1 = 5
- 其他用户:只有运行(x)→ 1 = 1
按「所有者 - 组 - 其他」拼接,就是 7 5 1 → 权限值为 751,对应选项 C。

测试是质量的 “守门员”,其他环节都是 “搭积木”,只有测试直接提升质量。
| 选项 | 角色定位 | 能否直接提升质量 |
|---|---|---|
| A 需求分析 | 定方向 | ❌ 不能,只是明确目标 |
| B 软件开发 | 实现过程 | ❌ 不能,可能引入缺陷 |
| C 软件测试 | 缺陷发现与修复 | ✅ 直接提升,核心活动 |
| D 技术评审 | 提前审查 | ❌ 间接辅助,作用弱于测试 |

-
哈希算法(消息摘要):名字里带
MD或SHA→MD5、SHA-1、SHA-256等特点:不可逆、生成固定长度摘要,用于完整性校验。 -
对称加密算法:名字里带
AES、DES、IDEA→DES、3DES、AES、IDEA特点:加解密用同一密钥,速度快,用于数据加密。 -
非对称加密算法:名字里带
RSA、ECC→RSA、ECC特点:用公钥 / 私钥对,用于密钥交换、数字签名。
| 算法类型 | 核心用途 | 典型算法 |
|---|---|---|
| 哈希算法 | 数据完整性校验(防篡改) | MD5、SHA-1、SHA-256 |
| 对称加密 | 数据机密性保护(加密传输) | DES、3DES、AES |
| 非对称加密 | 身份认证、数字签名、密钥交换 | RSA、ECC |


| 控制方式 | 核心特点 | 典型适用场景 | 一句话记忆 |
|---|---|---|---|
| 无条件传送 | CPU 直接读写,不管设备状态 | 简单、永远准备好的设备(如 LED 灯) | 设备永远就绪,CPU 直接读写 |
| 程序查询 | CPU 主动循环查询设备状态 | 简单、状态明确的低速设备(如打印机) | CPU 不停问设备:“好了吗?” |
| 中断方式 | 设备就绪后主动通知 CPU | 慢速、随机触发的设备(如键盘、鼠标) | 设备喊 CPU:“我好了,快来处理!” |
| DMA 方式 | 直接内存访问,不经过 CPU | 高速、批量数据传输(如硬盘、显卡) | 设备和内存直接对话,CPU 不参与 |
LED 用无条件,打印机用查询,键盘鼠标用中断,硬盘显卡用 DMA。

甘特图看时间、看进度,不看依赖;看依赖找 PERT 图。
| 特性 | 描述 | 选项 |
|---|---|---|
| 本质 | 项目进度管理工具 | A(正确) |
| 优点 | 能直观看到任务持续时间、当前实际进度 | B、C(正确) |
| 缺点 | 无法清晰展示任务之间的衔接 / 依赖关系 | D(不正确,即本题答案) |

单链表无法直接访问前驱节点,哪怕有尾指针,也找不到尾节点的前一个节点,所以删除尾节点必须遍历链表。
| 选项 | 操作 | 过程 | 是否需要遍历 |
|---|---|---|---|
| A | 新增头结点 | 新节点的next指向原头结点,再更新头指针。 |
❌ 不需要 |
| B | 新增尾结点 | 用尾指针直接找到尾节点,把尾节点的next指向新节点,再更新尾指针。 |
❌ 不需要 |
| C | 删除最后一个节点 | 单链表删除尾节点,必须先找到倒数第二个节点(把它的next设为null)。但尾指针只指向最后一个节点,无法直接获取前一个节点,只能从头遍历到倒数第二个节点。 |
✅ 需要遍历 |
| D | 删除第一个节点 | 直接把head指向原头节点的next即可。 |
❌ 不需要 |

加密、访问控制、鉴别,都是防 “偷” 防 “看”;备份才是防 “丢”,保可靠性。
| 选项 | 措施 | 核心目标 | 一句话判断 |
|---|---|---|---|
| A | 访问控制 | 防止未授权访问,保障数据保密性 | 管 “谁能看”,和 “数据会不会丢” 无关 |
| B | 数据加密 | 防止数据被窃取 / 泄露,保障数据保密性 | 管 “数据不被偷看”,不解决丢失问题 |
| C | 鉴别(身份认证) | 验证用户 / 设备身份,保障访问者的合法性 | 管 “是不是本人”,不涉及数据恢复 |
| D | 异地数据备份 | 数据多副本存储,故障时可恢复,保障数据可靠性 | 直接解决 “数据丢了怎么办” 的问题 |


| 风险类型 | 核心关注点 | 典型场景 | 一句话记忆 |
|---|---|---|---|
| 商业风险 | 软件与商业目标 / 战略的匹配度 | 不符合公司战略、市场需求变化、盈利模式失效 | 跟 “公司战略、市场、商业目标” 挂钩 |
| 项目风险 | 项目执行过程中的约束 | 进度延误、成本超支、资源不足 | 管 “项目能不能按时按预算做完” |
| 开发风险 | 软件开发过程中的技术 / 流程问题 | 技术难题、需求变更、架构缺陷 | 管 “软件本身能不能开发出来” |
| 人员风险 | 团队人员相关问题 | 核心人员离职、技能不足、沟通不畅 | 管 “人” 的问题 |


| 内存分区 | 存储内容 | 特点 |
|---|---|---|
| 栈区(Stack) | 函数内的非静态局部变量、函数参数、返回值 | 函数调用时自动分配,返回时自动释放,速度快 |
| 静态数据区(全局 / 静态区) | 全局变量、静态局部变量(static) |
程序运行期间一直存在,初始化时分配 |
| 文本区(代码段) | 程序的机器指令、常量字符串 | 只读,运行期间不可修改 |
| 自由堆区(Heap) | malloc/new 动态申请的内存 |
手动申请、手动释放,生命周期由程序员控制 |

| 码制 | 定点纯小数表示范围 | 关键限制 |
|---|---|---|
| 原码 | -(1-2^{-(n-1)}) ~ +(1-2^{-(n-1)}) |
最小只能表示 -(1-2^{-(n-1)}),离 - 1 还差一点点 |
| 反码 | 和原码范围完全一样 | 同样无法表示 - 1 |
| 补码 | -1 ~ +(1-2^{-(n-1)}) |
把符号位和数值位结合,用 1.000...0 表示 - 1,突破了原码 / 反码的限制 |



学术论文引用文献,只能引用他人已经发表的作品,不能引用未发表的作品
《著作权法》第 24 条规定,为介绍、评论作品或说明问题,可以不经著作权人许可、不支付报酬地引用他人已发表的作品,但必须满足以下条件:
| 条件 | 核心要点 | 对应选项 |
|---|---|---|
| 引用对象 | 仅限已发表的作品,未发表作品不适用合理使用 | A(错误,因为包含了 “未发表的作品”) |
| 引用目的 | 仅限介绍、评论、说明问题,不能用于商业目的 | C(正确,“只能限于介绍、评论作品”) |
| 引用比例 | 不能构成自己作品的主要部分,仅作辅助说明 | D(正确,“不构成自己作品的主要部分,可适当引用”) |
| 权利义务 | 合理使用时,无需征得原作者同意,也无需支付报酬,但必须注明出处 | B(正确,符合合理使用的规定) |


| 测试阶段 | 测试对象 | 主要目的 | 发现哪个阶段的问题 |
|---|---|---|---|
| 单元测试 | 单个模块 / 函数 | 检查模块内部逻辑是否正确 | 软件实现(编码)阶段 |
| 集成测试 | 模块间的接口 | 检查模块间的协作、接口是否正确 | 概要 / 详细设计阶段 |
| 系统测试 | 完整的系统 | 检查整个系统是否满足用户需求 | 需求分析阶段 |

| 测试层次 | 测试对象 | 对应传统测试 | 一句话记忆 |
|---|---|---|---|
| 算法层 | 类中定义的单个方法 | 单元测试 | 测单个方法,对应传统单元 |
| 类层 | 同一个类中方法与属性的交互 | 模块测试 | 测类内部,是 OO 特有的模块测试 |
| 模板层 | 一组协同工作的类之间的交互 | 集成测试 | 测类之间的协作,对应传统集成 |
| 系统层 | 整个面向对象系统 | 系统测试 | 测完整系统,和传统系统测试一致 |





Armstrong 公理系统的三条基本公理是:自反律、增广律、传递律。题目中的「合并规则」是由基本公理推导出来的派生规则,不属于公理系统本身,
| 类别 | 名称 | 规则描述 | 关键词 |
|---|---|---|---|
| 基本公理(3 条) | 自反律 | 若 Y ⊆ X,则 X→Y |
子集推函数依赖 |
| 增广律 | 若 X→Y,则 XZ→YZ |
两边同加属性 | |
| 传递律 | 若 X→Y 且 Y→Z,则 X→Z |
依赖关系传递 | |
| 派生规则(3 条) | 合并规则 | 若 X→Y 且 X→Z,则 X→YZ |
合并右部 |
| 伪传递规则 | 若 X→Y 且 WY→Z,则 XW→Z |
带前缀的传递 | |
| 分解规则 | 若 X→Y 且 Z ⊆ Y,则 X→Z |
拆分右部 |
基本公理三条:自反、增广、传递;派生规则合并、伪传、分解。
- 名字里带 “规则” 的(合并、伪传递、分解),都是派生出来的,不属于公理系统本身。
- 名字里带 “律” 的(自反、增广、传递),才是 Armstrong 的基本公理。


TCP 是字节流,序号按字节编。


操作系统
Linux
Linux 设备文件的存放目录
在 Linux 中,外设被抽象为特殊文件(设备文件),统一存放在 /dev 目录下。
/root:超级用户的主目录/etc:存放系统配置文件/var:存放系统可变数据(如日志、缓存)
Linux 中存储设备的命名有固定格式:
sd:前缀,代表SCSI/SATA/USB/SSD 等接口的存储设备(比如硬盘、U 盘、移动硬盘)- 后面的字母
a/b/c…h:代表设备序号,sdh就是系统识别到的第 8 块 SCSI/SATA 存储设备(a是第 1 块,h是第 8 块)


操作系统概述
操作系统的功能

特殊的操作系统


进程管理
进程与线程的概念
进程的状态
信号量与PV操作
前驱图与PV操作
死锁问题
进程资源图
存储管理
段页式存储
磁盘管理
设备管理
文件管理
文件相关概念
树形目录结构
索引文件结构
位示图
数据库系统基础知识
基本概念


数据库三级模式两级影像

数据库的分析与设计过程

数据模型

菱形是联系,,方框是实体,椭圆是属性。


关系代数


笛卡尔积不会去掉重复的,它会一五一十的呈现出来

投影是对关系中的列操作,而选择是对关系中的行操作。
- 一元运算:只需要1 张表就能算
- 关系模式相同:结果的字段(属性)数量、结构和原表一模一样
投影(π)
- 一元运算
- 只选部分列 → 字段变少 → 模式不同 ❌
选择(σ,筛选行)
- 一元运算
- 只选符合条件的行,列完全不变 → 关系模式完全相同 ✅
C. 并(∪)
- 二元运算(必须 2 张表),直接排除 ❌
D. 笛卡尔积(×)
- 二元运算,两张表拼接,字段相加 → 模式改变 ❌

自然连接要去掉重复的属性列。



自然连接是在等值连接的基础上,去掉重复列的重复属性,也就是都有学号的情况下,去掉一个学号,

数据库完整性约束


关系型数据库SQL简介
关系数据库的规范化
数据库的控制功能
数据仓库与数据挖掘基础
大数据基础概念
程序设计语言基础
程序设计语言
编译程序与解释程序
解释性语言(Python)翻译一句执行一句。它的执行效率是很低的

关于如何生成目标代码:
编译器从源程序到目标程序执行的过程,首先将源程序进行一系列的分析,有词法分析,语法分析,语义分析...

常见程序设计语言的特点
C语言是面向过程的语言。C++是面向对象的语言,还有java,C#,python也是面向对象的语言。

程序设计语言的基本成分
字符串(str):只读不可改。
集合(set):无序且唯一。
字典(dict):键严值随便。
列表&元组:列表可变,元组不可变。


函数调用方式



语言处理程序基础
编译过程概述





文法



正规式与正规集



有限自动机



表达式


信息安全
信息安全基础知识

加密技术与认证技术
对称与非对称
对称加密:3S+51
非对称加密:AACC

加密技术
对称加密技术


非对称加密技术
非对称加密技术也叫公开秘钥,它的加密深度毕竟深。


数字签名与信息
摘要应用
数字签名
数字签名主要用作认证,信息摘要主要用来实现信息的完整性,确保信息没有被篡改。

用于数字签名其实就是玩认证,玩认证一定是用的非对称技术

签名就是认证,就是确保是自己发的,会用自己的私钥进行加密,然后对方会用它的公钥解开。

信息摘要

数字证书应用
CA类似派出所,

互换私钥:私钥是用户的核心机密,绝对不能共享或交换,否则加密体系直接失效。
- A 的身份证,是公安局 I1 发的,盖了公安局的公章;
- B 要确认 A 的身份证是真的,必须用 ** 公安局 I1 的公章样本(也就是 I1 的公钥)** 去比对;
- 如果 B 根本不认识公安局 I1 的公章,就算拿着 A 的身份证,也没法判断它是不是伪造的。
跨 CA 互信,必须先交换 CA 公钥。这两个派出所要互换公钥

身份认证指的是合法性认证,合法性玩的是证书,签名玩的是是你发的不可否认。

网络安全协议
网络安全威胁
网络攻击
计算机病毒
网络安全控制


网络安全控制技术
访问控制主要是玩授权。


防火墙技术





入侵检测与防御


网络防范体系
法律法规

保护期限
实用新型,外观设计,和发明专利的区别:
就是它们的创新程度不一样,实用新型一般是已有的的基础上附属,改良,革新,而发明专利强调了自主创新的部分要比较大。

知识产权人确定

试题一:数据流图





数据流程图精讲训练营2

数据流程图精讲训练营3

父图与子图之间的平衡
会问大家,我们在绘制子图的时候需要注意什么,其实注意的是父子图平衡原则

这里面的语句要求大家可以记忆,背诵,默写,考试的时候会考原话,让大家默写原话,不是填空,问答题可能会出现默写的要求


子图内平衡
同样这一块也考过原文,比如题目中直接问数据流图常见的几种错误是什么?


机考改革
试题二 数据库设计
有解题技巧,题型固定,至少拿12分
外键可以有多个

试题二一般会给出跟题目上下文一模一样的图,然后要补充缺失的联系,

双击打开它,图形不见了,因为它有时候打开不显示

那你就关掉它,再打开一次

这个图很小,在这个图的上方有一个缩放,可以调整大小

我们补充缺失的联系,这个联系的形状,它是一个菱形,我们在流程图的第一个图形,选中它,可以拖拽

然后形成了一个菱形

有了联系之后,还要把这个联系和对应的实体联系起来,就需要一个连接线,图形元件这里有一个线条类的第一个,选中它

在办理类鼠标变成一个小手的时候,从左往右拖

联系类型,直接双击这个线条,这边就会显示一个编辑区,里面写个1,这样就把联系类型标注完成了

试题三:面向对象分析设计
至少拿12分
面相对象基础
重写(覆盖)和重载
重写发生在类之间(2个类(子父类))
重载发生在类之间(1个类)

多态

面相对象开发流程

面相对象设计7大原则

其他原则:

UML
UML = Unified Modeling Language,统一建模语言简单说:它是一套标准化的图形符号,用来画软件系统的设计图。
一句话理解:就像盖房子要画建筑图纸,做软件、写系统时,用 UML 画结构图、流程图,方便大家统一看懂设计。
主要用途
- 描述软件系统的结构(有哪些类、模块、数据库)
- 描述系统行为(流程、交互、状态变化)
- 方便开发、产品、测试统一沟通语言
- 常用于需求分析、架构设计、软件工程文档
最常用的几种图
- 用例图(Use Case):用户能做什么功能
- 类图(Class Diagram):系统里有哪些类、属性、关系(最核心)
- 时序图(Sequence):对象之间按时间顺序怎么调用
- 活动图(Activity):类似流程图,描述业务步骤
- 状态图(State):一个对象的状态变化
- 组件图 / 部署图:系统架构、服务器部署
适用场景
- 软件工程、面向对象设计(OOAD)
- 考研 408、软考、软件设计师常考
- 企业项目设计文档
UML图的概念及分类

通信图更关注对象的整体结构。

顺序图和通信图指的是在代码层面上,这个功能应该怎么做。活动图侧重的是在业务逻辑上应该怎么做,就是白话文告诉你要做某件事要怎么做。

状态图
状态图:一个对象,在所有用例中所有可能的消息。
终止状态可以有多个,turn On是一个事件,turn On是一个事件,水开了是一个事件






构件图
构件就是模块,非常像软件体系结构图。


部署图是所有图中唯一跟硬件有关的。

类图中的关系
箭头类A指向类B,其实是类A依赖类B。可以把“依赖”换成“需要”,就是A需要B,在代码层面是某个方法需要用到类B。
聚合是有聚有散,组合的关系更加紧密一些。
一对多的两个关系是聚合和组合关系。

用例图中的关系
用例和用例之间的关系,用例就是使用它的一个例子,其实就是一个功能,所以用例图之间的关系就是功能和功能之间的关系,主要有以下3个。
包含关系是大功能包含小功能,箭头是大功能,指向小功能。
扩展关系是小功能扩展成大功能,箭头是从小指向大。


UML中的图

类图往往是三行,首行是类名,第二行是属性,第三行是方法。
“0..*”,这个*指的是0个一直到0个、1个...一直到多个。

类图在第一行就是类名,类名的首字母一般是大写,如果是对象图,在第一栏,一定会把这个对象的名字写出来的,首先给个对象名,然后是冒号,然后是对象名对应的类名,在冒号的后面写着。
设计模式
设计模式是用来解决某个问题的高质量的解决方案
识别设计模式(应用场景——文本)
识别设计模式(图示)
设计模式分类

创建型设计模式


抽象工厂模式


工厂方法模式
这个工厂方法模式只生成一个产品,抽象工厂模式可以一次生成多个产品。


原型模式
实现快速拷贝


单例模式
保证一个类只有一个对象

构建器模式

结构性设计模式
四桥组装外箱带


适配器模式


桥接模式


组合模式


装饰模式


外观模式


享元模式


代理模式
代理的主要作用是为了的隔开,隔开的原因有很多,有安全性,有隐私性,有效率


行为型设计模式
层层审批提交的过程就是职责链。
中介者模式用于封装对象交互。


模版方法模式
职责链模式
命令模式
迭代器模式
中介者模式
解释器模式
备忘录模式
备忘录模式用于保存和恢复对象状态。
备忘录模式:存快照、可回滚(比如撤销、恢复、存档)
观察者模式
观察者模式用于对象间的依赖通知。
观察者模式:一对多,一变全变(发布 - 订阅,数据联动更新)


状态模式
状态模式:状态变,行为变(比如订单:待付款→已付款→已发货)
策略模式
策略模式:换算法、换规则(比如支付:微信 / 支付宝,可切换)
访问者模式
它也有两颗继承树的变化,但是这两棵树不是直接联系起来的,而是通过应用程序进行联系,这也是访问者模式和桥接者模式在图形上的区分

设计模式类图组成部分分析
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)