第5章 软件工程基础知识
核心知识点
1. 软件过程模型(★★★ 必考)
- 定义:描述软件开发全过程的工作模型
- 要点: | 模型 | 特点 | 缺点 | |------|------|------| | 瀑布模型 | 严格串行、阶段清晰、文档规范 | 需求难确定、反馈周期长 | | 原型模型 | 快速建模、用户参与迭代 | 大型系统原型复杂难形成 | | 螺旋模型 | 迭代+风险分析 | 成本高 | | 增量模型 | 逐步交付、分批开发 | 需要好的架构设计 | | 喷泉模型 | 面向对象、迭代无间隙 | - |
- 螺旋模型4部分:目标设定→风险分析→开发验证→评审
- 考试角度:给出场景选择过程模型
- 关联真题:2023上、2024上
2. 敏捷方法(★★★ 高频)
- 定义:2001年敏捷宣言提出的适应性开发方法
- 要点:
- 核心思想:适应性(非预设性)、以人为本(非以过程为本)、迭代增量
- 4个价值观:个体和互动高于流程和工具、可工作软件高于详尽文档、客户合作高于合同谈判、响应变化高于遵循计划
- 主要方法: | 方法 | 特点 | |------|------| | XP(极限编程) | 结对编程、测试驱动、持续集成、小步发布 | | Scrum | 产品Backlog、Sprint迭代、每日站会 | | Crystal | 系列方法,按项目规模选择 | | FDD | 特征驱动、5个核心过程 |
- 考试角度:敏捷方法特点、与瀑布模型对比
- 关联真题:2023下、2024上
3. RUP统一过程(★★ 高频)
- 定义:Rational公司的重量级软件开发过程
- 要点:
- 4个阶段: | 阶段 | 任务 | |------|------| | 初始(Inception) | 定义产品视图、确定范围 | | 细化(Elaboration) | 设计确定体系结构、制定计划和资源要求 | | 构造(Construction) | 构造产品、演进需求 | | 移交(Transition) | 提交给用户 |
- 特点:用例驱动、以架构为中心、迭代增量
- 9个核心工作流:业务建模、需求、分析设计、实现、测试、部署、配置变更管理、项目管理、环境
- 考试角度:各阶段任务(尤其是精化阶段)
- 关联真题:2025上第10题(精化阶段=设计确定体系结构)
4. CMMI能力成熟度模型(★★ 偶尔考)
- 定义:软件过程改进的5级成熟度框架
- 要点: | 等级 | 名称 | 特点 | |------|------|------| | Level 1 | 初始级 | 随意混乱,依赖个人英雄主义 | | Level 2 | 已管理级 | 项目级过程制度化,有明确目标 | | Level 3 | 已定义级 | 企业级标准流程,制度化 | | Level 4 | 量化管理级 | 定量目标,过程性能可预测 | | Level 5 | 优化级 | 持续改进,创新式过程改进 |
- 考试角度:等级排序、各等级特点
- 关联真题:2024下
5. 需求工程(★★)
- 定义:确定客户需求、定义系统外部特征的系统化活动
- 要点:
- 需求层次:业务需求→用户需求→功能需求(+非功能需求)
- 需求工程活动:需求获取→需求分析→需求规格→需求验证→需求管理
- 获取方法:用户面谈、专题讨论会、问卷调查、现场观察、原型化、头脑风暴
- 需求变更管理:问题分析→变更分析→成本计算→变更实现
- 考试角度:需求层次、获取方法
- 关联真题:2023上
6. 软件测试(★★★ 必考)
- 定义:验证软件是否满足需求的过程
- 要点:
- 黑盒测试:不看代码,关注功能
- 等价类划分、边界值分析、错误推测法、因果图
- 白盒测试:看代码,关注逻辑
- 覆盖强度排序:语句覆盖<判定覆盖<条件覆盖<判定/条件覆盖<条件组合覆盖<路径覆盖
- 易错:条件覆盖不一定包含判定覆盖!
- 测试阶段:单元测试→集成测试→系统测试→验收测试
- 动态测试 vs 静态测试:动态=运行程序,静态=不运行(代码审查、走查)
- 黑盒测试:不看代码,关注功能
- 考试角度:覆盖类型比较、黑盒/白盒方法分类
- 关联真题:2025上第17题、第31题(条件覆盖不一定包含判定覆盖)、2024上
7. 内聚与耦合(★★★ 必考)
- 定义:衡量模块独立性的两个指标
- 要点:
- 内聚(高→低):功能内聚>顺序内聚>通信内聚>过程内聚>时间内聚>逻辑内聚>偶然内聚
- 耦合(低→高):数据耦合>标记耦合>控制耦合>外部耦合>公共耦合>内容耦合
- 目标:高内聚、低耦合
- 考试角度:内聚排序(几乎每年考)
- 关联真题:2025上第5题、2024上、2023上
8. 设计模式基础(★★)
- 定义:针对软件设计中给定上下文经常出现的问题的可重用解决方案
- 要点:
- 23种设计模式分为3类:创建型(5种)、结构型(7种)、行为型(11种)
- 常考模式:单例模式、工厂模式、观察者模式、策略模式、适配器模式
- 设计原则(SOLID):单一职责、开闭、里氏替换、接口隔离、依赖倒置
- 考试角度:模式识别、设计原则
- 关联真题:2024上、2025上
真题考点映射
| 真题 | 考点 | |------|------| | 2025上-5 | 内聚类型从高到低排序 | | 2025上-10 | RUP精化阶段=设计确定体系结构 | | 2025上-17 | 黑盒测试方法 | | 2025上-31 | 白盒测试:条件覆盖不一定包含判定覆盖 | | 2024上 | 软件过程模型、测试方法 | | 2023上 | 内聚耦合、需求工程 | | 2023下 | 敏捷方法、CMMI |
易错点
- RUP的精化阶段(Elaboration)是设计确定体系结构的阶段,不是初始阶段
- 条件覆盖不一定包含判定覆盖(条件覆盖只要求每个条件的真假都取到,不要求每个判定的真假都取到)
- 判定覆盖一定包含语句覆盖(但反过来不成立)
- 内聚排序:功能>顺序>通信>过程>时间>逻辑>偶然(记住"功能顺沟通过逻辑偶尔")
- 螺旋模型的核心是风险分析,不是迭代
- 敏捷方法不是不要文档,而是可工作软件高于详尽文档