文章目录
-
- 一、需求工程
-
- [1. 需求分类(QFD 视角)](#1. 需求分类(QFD 视角))
- [2. 需求获取与分析](#2. 需求获取与分析)
- [3. 需求规格说明(SRS)与验证](#3. 需求规格说明(SRS)与验证)
- [4. 需求变更管理](#4. 需求变更管理)
- 二、软件设计
-
- [1. 结构化设计(SD)](#1. 结构化设计(SD))
- [2. 面向对象设计(OOD)](#2. 面向对象设计(OOD))
- [3. UML 图分类](#3. UML 图分类)
- [4. 设计模式](#4. 设计模式)
- 三、软件实现与配置管理
- 四、软件测试
-
- [1. 测试类型](#1. 测试类型)
- [2. 黑盒与白盒](#2. 黑盒与白盒)
- [3. 调试策略](#3. 调试策略)
- 五、部署与交付
-
- [1. 部署模式](#1. 部署模式)
- [2. 镜像部署三环节](#2. 镜像部署三环节)
- [3. 蓝绿部署 vs 金丝雀部署](#3. 蓝绿部署 vs 金丝雀部署)
- [4. 持续交付](#4. 持续交付)
- 六、软件质量管理
-
- [1. 质量观点与 SQA](#1. 质量观点与 SQA)
- [2. 软件过程能力成熟度(CMMI)](#2. 软件过程能力成熟度(CMMI))
- 七、易混淆辨析
- 八、例题精选
- 九、考点总结
- 相关推荐

一、需求工程
1. 需求分类(QFD 视角)
| 类型 | 含义 | 考试要点 |
|---|---|---|
| 常规需求 | 用户认为系统应该做到的功能 | 明确表达、可写入 SRS |
| 期望需求 | 用户想当然认为应具备的功能 | 未明说但用户期待;缺失会影响满意度 |
| 意外需求(兴奋需求) | 超出预期的功能 | 有则更高兴,无也不影响基本购买决策 |
2. 需求获取与分析
获取需求常用访谈、问卷、焦点小组、联合需求计划(JRP)、头脑风暴等方法。
需求分析 要把已拿到的需求提炼、审查一遍,揪出错误、遗漏和不足,重点看完整性、一致性、可测试性、确定性、可跟踪性、正确性。
| 方法 | 核心要点 |
|---|---|
| 结构化分析(SA) | 以数据流为中心;层次:数据流图、数据字典、加工说明 |
| 面向对象分析(OOA) | OOA 模型五层:主题层、类&对象层、结构层、属性层、服务层 |
OOA 基本原则:
| 原则 | 要点 |
|---|---|
| 抽象 | 过程抽象 + 数据抽象;OOA 核心是数据抽象 |
| 封装 | 属性与服务结合为不可分割单位 |
| 继承 | 特殊类自动拥有一般类属性和服务 |
| 分类 | 相同属性和服务的对象划为一类 |
| 聚合(组装) | 复杂事物由若干简单事物组成 |
3. 需求规格说明(SRS)与验证
国家标准规定 SRS 应包括:范围、引用文件、需求、可跟踪性、尚未解决问题、注解和附录等。
**需求验证(确认)**须确认:
- SRS 正确描述满足项目干系人需求的软件
- 软件需求从系统需求、业务规则等正确导出
- 需求完整且高质量
- 需求表示各处一致
- 需求支持后续设计、实现与测试
4. 需求变更管理
变更流程:识别问题 → 问题分析与变更描述 → 变更分析与成本计算 → 变更实现。
| 策略 | 要点 |
|---|---|
| 变更控制 | 所有变更须走变更控制过程 |
| 未批准不变更 | 未获批准不得进入设计与实现 |
二、软件设计
1. 结构化设计(SD)
SD 面向数据流,把软件拆成模块组成的层次结构;管理上分概要设计 和详细设计两级。
模块设计原则:
| 概念 | 考试口径 |
|---|---|
| 信息隐藏 | 模块外部仅用接口,不知内部实现 |
| 模块化 | 模块是实现功能的基本单位 |
| 高内聚、低耦合 | 内聚越高越好;耦合越低越好 |
七种耦合(由低到高):
| 耦合类型 | 特征 |
|---|---|
| 非直接耦合 | 无直接联系 |
| 数据耦合 | 通过参数传递数据 |
| 标记耦合 | 传递数据结构 |
| 控制耦合 | 传递控制信息 |
| 外部耦合 | 共用外部环境 |
| 公共耦合 | 共用公共数据区 |
| 内容耦合 | 直接访问对方内部(最强,应避免) |
七种内聚(由高到低):
| 内聚类型 | 特征 |
|---|---|
| 功能内聚 | 完成单一功能(最好) |
| 顺序内聚 | 输出作为下一步输入 |
| 通信内聚 | 同一数据结构上的操作 |
| 过程内聚 | 按特定次序执行 |
| 时间内聚 | 同时执行 |
| 逻辑内聚 | 逻辑相关的一组任务 |
| 偶然内聚 | 无关系任务凑在一起(最差) |
概要设计工具:系统结构图(SC,模块结构图)。
详细设计工具:
| 工具 | 说明 |
|---|---|
| 业务流程图 | 描述管理信息流向 |
| 程序流程图 | 最广泛;结构清晰,但难描述复杂结构 |
2. 面向对象设计(OOD)
OOD 七大原则(必背):
| 原则 | 含义 |
|---|---|
| 单职原则 | 一个类只有一个引起变化的原因 |
| 开闭原则 | 对扩展开放,对修改封闭 |
| 里氏替换原则 | 子类可替换父类 |
| 依赖倒置原则 | 依赖抽象而非具体 |
| 接口隔离原则 | 多个专门接口优于单一总接口 |
| 组合重用原则 | 优先组合而非继承 |
| 迪米特原则 | 最少知识,降低类间耦合 |
类类型:
| 类型 | 作用 |
|---|---|
| 实体类 | 映射需求实体,通常有属性,持久存在 |
| 控制类 | 控制用例流程,协调实体与边界 |
| 边界类 | 负责与外部环境(界面、设备等)交互 |
3. UML 图分类
| 类别 | 图 |
|---|---|
| 静态结构图 | 类图、对象图、构件图、组合结构图、部署图、制品图、包图 |
| 动态行为图 | 用例图、状态图、活动图、顺序图、通信图、定时图、交互概览图 |
易混淆:类图描述静态结构;顺序图强调对象间消息时序;活动图描述流程/并发。
4. 设计模式
| 类型 | 典型模式 | 用途 |
|---|---|---|
| 创建型 | 工厂、抽象工厂、原型、单例、建造者 | 创建对象 |
| 结构型 | 适配器、桥接、组合、装饰、外观、享元、代理 | 处理类或对象组合 |
| 行为型 | 责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者 | 类或对象协作与职责分配 |
辨析:类模式处理类与子类关系;对象模式处理对象间关系。
三、软件实现与配置管理
软件配置管理(SCM)核心:
| 活动 | 要点 |
|---|---|
| 版本控制 | 对源码、文档等变更管理;SCM 核心 |
| 变更控制 | 目的是有序变更,非阻止变更 |
配置管理活动包括:制订配置管理计划、标识配置项、版本控制、变更控制、配置状态报告、配置审计等。
四、软件测试
1. 测试类型
| 类型 | 依据 | 技术 | 目的 |
|---|---|---|---|
| 单元测试 | 详细设计/编码 | 白盒为主 | 验证模块内部逻辑 |
| 集成测试 | 概要设计 | 白盒+黑盒 | 验证模块/子系统接口 |
| 确认测试 | 需求规格 SRS | 黑盒为主 | 验证是否满足用户需求 |
2. 黑盒与白盒
| 方法 | 要点 |
|---|---|
| 黑盒(功能测试) | 不关心内部结构;等价类、边界值、因果图、判定表、正交试验等 |
| 白盒(结构测试) | 关注程序内部逻辑与路径 |
3. 调试策略
蛮力法、回溯法、原因排除法等。
五、部署与交付
1. 部署模式
| 模式 | 适用场景 |
|---|---|
| 面向单机 | 单机软件安装配置 |
| 集中式服务器 | 用户通过浏览器/客户端访问中心服务器 |
| 基于微服务分布式 | 常借助容器编排,弹性伸缩 |
2. 镜像部署三环节
Build → Ship → Run
- Build:编译构建
- Ship:打包依赖与第三方组件
- Run:在目标环境启动
3. 蓝绿部署 vs 金丝雀部署
| 方式 | 机制 | 特点 |
|---|---|---|
| 蓝绿部署 | 新旧版本并行,切换流量 | 回滚快;资源占用高 |
| 金丝雀部署 | 先小流量验证新版本 | 风险可控;逐步放量 |
4. 持续交付
靠自动化流水线把需求、开发、测试、部署串起来,少手工发布,交付周期就能压短。
六、软件质量管理
1. 质量观点与 SQA
影响软件质量的因素包括:产品运行、产品修改、产品转移三种倾向。
SQA 主要目标:
- 事前预防(着重缺陷预防)
- 尽早捕获缺陷
- 作用于过程而非仅最终产品
- 贯穿所有活动
SQA 主要任务:审计与评审、过程保证、产品质量保证等。
2. 软件过程能力成熟度(CMMI)
| 等级 | 名称 | 特征 |
|---|---|---|
| 1级 | 初始级 | 过程与结果不确定 |
| 2级 | 已管理级 | 项目基本按计划实现预期结果 |
| 3级 | 已定义级 | 组织范围内稳定实现预期目标 |
| 4级 | 量化管理级 | 量化管理与控制 |
| 5级 | 优化级 | 持续改进与优化 |
七、易混淆辨析
| 对比项 | 易错点 | 正确口径 |
|---|---|---|
| 耦合 vs 内聚 | 越高越好? | 耦合越低越好;内聚越高越好 |
| 单元 vs 集成 vs 确认 | 测试依据搞混 | 单元看详细设计;集成看概要设计;确认看 SRS |
| 期望 vs 意外需求 | 都认为必须实现 | 意外需求不实现不影响基本决策 |
| 蓝绿 vs 金丝雀 | 都认为是一步切换 | 蓝绿全量切换;金丝雀渐进放量 |
| 类模式 vs 对象模式 | 创建型都属于类模式 | 创建型有类模式也有对象模式(如单例) |
八、例题精选
【例1】 下列关于软件模块耦合的叙述中,耦合度最高的是( )。
A. 数据耦合 B. 控制耦合 C. 内容耦合 D. 标记耦合
答案:C
内容耦合直接访问对方内部,耦合度最高,应尽量避免。
【例2】 确认测试的主要依据是( )。
A. 详细设计说明书 B. 概要设计说明书 C. 需求规格说明书 D. 源程序
答案:C
确认测试验证软件是否满足 SRS 规定的用户需求,属黑盒测试。
【例3】 用户未明确提出,但认为系统应具备的功能属于( )。
A. 常规需求 B. 期望需求 C. 意外需求 D. 约束需求
答案:B
期望需求是用户默认应有、但未明确表达的需求。
【例4】 CMMI 中,组织级过程已定义且可在组织范围内稳定实现项目目标的等级是( )。
A. 2级 B. 3级 C. 4级 D. 5级
答案:B
3级为已定义级,强调组织级标准过程。
九、考点总结
| 考点 | 重要程度 | 题型 |
|---|---|---|
| 需求分类(常规/期望/意外) | P0 | 选择 |
| OOA 原则与 OOD 七大原则 | P0 | 选择/案例 |
| 耦合与内聚(7+7) | P0 | 选择 |
| 单元/集成/确认测试依据 | P0 | 选择 |
| UML 图静/动态分类 | P1 | 选择 |
| 设计模式三类 | P1 | 选择 |
| 蓝绿/金丝雀部署 | P1 | 选择 |
| SCM 版本控制与变更控制 | P1 | 选择 |
| CMMI 五级 | P1 | 选择 |
| SRS 验证五项 | P2 | 案例 |