一、章节核心内容摘要
根据最新考纲及占分分析,本章节 “第5章:软件工程” 在2024下半年至2025上半年(新大纲稳定期)的考查占分约为 2~4 分。考查形式包含综合知识+案例分析。趋势分析指出,本章的重点内容主要集中在软件生命周期、开发模型等,且作为 “软硬体系基础” ,经常结合案例进行考查。
【核心内容摘要】本章详细阐述了软件工程的系统化理论框架。主要内容涵盖:软件工程基本概念(方法、工具、过程);软件需求(需求的层次、QFD、需求获取、结构化与面向对象分析方法、需求规格说明书SRS、需求变更与跟踪);软件设计(结构化设计中的高内聚低耦合原则、面向对象设计的7大原则、UML统一建模语言及设计模式);软件实现(配置管理SCM、软件测试方法及分类);部署交付(持续交付与部署、蓝绿部署与金丝雀部署);软件质量管理(SQA)以及软件过程能力成熟度模型(CSMM的4个能力域与5个等级)。
二、核心学习笔记
一、软件工程定义与组成要素
软件工程由方法、工具和过程3个部分组成。
- 方法:完成软件项目的技术手段,支持整个软件生命周期。
- 工具:为开发提供自动或半自动的支持,支持文档生成。
- 过程:贯穿开发的各个环节,是获得软件产品的一系列活动。
二、软件需求管理
1. 需求的3个层次
| |
|---|
| 业务需求 | 反映组织机构或系统高层次的目标要求(为什么要达到某种效应)。 |
| 用户需求 | 描述用户具体目标,体现系统能带来的业务价值(用户用系统做什么)。 |
| 系统需求 | 从系统角度说明,包括功能需求(行为特征)、非功能需求(质量属性如易用性、效率、规范等)和约束(设计和过程上的限制,如必须用国产数据库)。 |
2. 质量功能部署 (QFD)
将用户要求转化为软件需求的技术,最大限度提升用户满意度。
| |
|---|
| 常规需求 | |
| 期望需求 | |
| 意外需求 | 用户要求范围外的高级特性,实现了会很高兴,不实现也不影响决策。 |
3. 需求分析方法比较
| | | |
|---|
| 结构化分析 (SA) | | 数据模型(E-R图)、功能模型(DFD数据流图)、行为模型(STD状态图) | |
| 面向对象分析 (OOA) | | | 抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析。 |
4. 需求变更与跟踪
- 变更控制过程:问题分析和变更描述 ➔ 变更分析和成本计算 ➔ 变更实现 ➔ 修改后的需求。
- 变更控制委员会 (CCB):是项目所有者权益代表,负责裁定接受哪些变更。CCB是决策机构而非作业机构,通常通过评审决定是否变更,但不提出变更方案。
- 正向跟踪:检查SRS中的需求是否在后继工作成果(如代码、测试)中找到对应点。
- 逆向跟踪:检查设计文档、代码、测试用例等是否能在SRS中找到出处。
三、软件设计
1. 结构化设计 (SD) 的模块化原则
遵循 “高内聚、低耦合” 的设计原则。
- 耦合类型(从低到高):非直接耦合 ➔ 数据耦合 ➔ 标记耦合 ➔ 控制耦合 ➔ 通信耦合 ➔ 公共耦合 ➔ 内容耦合。
- 内聚类型(从高到低):功能内聚 ➔ 顺序内聚 ➔ 通信内聚 ➔ 过程内聚 ➔ 时间内聚 ➔ 逻辑内聚 ➔ 偶然内聚。
2. 面向对象设计 (OOD) 七大原则
| |
|---|
| 单职原则 | |
| 开闭原则 | |
| 里氏替换原则 | |
| 依赖倒置原则 | |
| 接口隔离原则 | |
| 组合重用原则 | |
| 迪米特原则 | |
3. UML 统一建模语言
- 交互图(注重消息/时序):顺序图(强调时间次序)、通信图(强调结构组织)、定时图(强调实际时间约束)。
- 动态行为图:状态图(基于事件反应)、活动图(控制流和数据流,本质是流程图)。
- UML 5个视图:逻辑视图(功能实现)、进程视图(并发同步)、实现视图(文件和构件)、部署视图(硬件映射)、用例视图(外部角色展示系统功能)。
四、软件实现与测试
1. 软件配置管理 (SCM)
核心内容包括版本控制(追踪文件变更、并行开发同步)和变更控制(防范失控,特别是外部需求变更)。
包含活动:配置管理计划、配置标识、配置控制、配置状态记录、配置审计、发布管理与交付。
2. 软件测试方法与类型
- 静态测试:不运行程序,靠审查文档和代码(如桌前检查、代码走查、代码审查)。
- 动态测试:在机器上运行。包含白盒测试(结构测试,主要技术为逻辑覆盖,看重内部逻辑结构)和黑盒测试(功能测试,根据SRS规定设计等价类、边界值等实例)。
- 测试类型流程:单元测试(模块设计说明书) ➔ 集成测试(概要设计文档) ➔ 确认测试(用户需求) ➔ 系统测试(在真实环境下检测) ➔ 配置项测试 ➔ 回归测试。
五、部署交付与质量管理
1. 部署模式
| |
|---|
| 蓝绿部署 | 准备新旧两个版本环境,通过域名解析无缝切换。有问题快速切回旧版。 |
| 金丝雀部署 | 先让少量用户试用新版,无问题后再逐步扩大适配范围。 |
| 容器部署原则 | 不可变服务器、整体部署由运维人员执行、所有的环境使用相同的部署脚本。 |
2. 软件质量保证 (SQA)
- 主要目标:事前预防工作(防缺陷产生)、作用于过程而非产品、贯穿于所有活动。
- 主要任务:SQA审计与评审、SQA报告、处理不合格问题。
六、软件过程能力成熟度 (CSMM)
- 四大能力域:治理、开发与交付、管理与支持、组织管理。
三、本章精选习题及详细解析
题目1:___不是软件需求的常用层次。
A. 业务需求
B. 数据需求
C. 用户需求
D. 系统需求
答案:B
详细解析:需求是多层次的,包括业务需求、用户需求和系统需求。这3个不同层次的需求从目标到具体,从整体到局部,从概念到细节展开。数据需求不属于常用的标准三大层次。
教材页码:第203页
题目2:___不属于软件需求规格说明书(SRS)的内容。
A. 业务功能
B. 应用系统性能
C. 交互界面
D. 算法的详细过程
答案:D
详细解析:SRS(需求规格说明书)主要说明 “做什么”,而算法的详细过程说明的是 “怎么做”,它属于详细设计阶段的主要任务,需要在模块的详细设计文档(过程或伪代码)中体现,而非需求阶段的SRS。
教材页码:第209页、第215页
题目3:以下软件需求变更策略中,不正确的是___。
A. 所有需求变更必须遵循变更控制过程
B. 对于未获得批准的变更,不应该做设计和实现工作
C. 应该由项目经理决定实现哪些变更
D. 项目风险承担者应该能够了解变更的内容
答案:C
详细解析:控制需求变更策略明确指出:应该由项目变更控制委员会(CCB)决定实现哪些变更,而不是单由项目经理决定。
教材页码:第211页
题目4:软件过程能力成熟度分为___级。
A. 2
B. 3
C. 4
D. 5
答案:D
详细解析:CSMM(软件过程能力成熟度模型)定义了5个等级:1级(初始级)、2级(项目规范级)、3级(组织改进级)、4级(量化提升级)、5级(创新引领级)。
教材页码:第231页
题目5:关于蓝绿部署的描述,正确的是___。
A. 蓝绿部署是指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新版本中
B. 蓝绿部署是先让少量的用户使用新版本,并且观察新版本是否存在问题
C. 蓝绿部署当出现问题的时候,可以使用新版本,但业务逻辑和数据不受影响
D. 蓝绿部署如果出现问题,就及时处理并重新发布
答案:A
详细解析:选项A是蓝绿部署的标准定义。选项B描述的是 “金丝雀部署”(先让少量用户使用)。
教材页码:第228页
题目6:质量功能部署 (QFD) 将软件需求分为3类,其中不包括___。
A. 常规需求
B. 期望需求
C. 意外需求
D. 基础需求
答案:D
详细解析:为了最大限度地提升用户的满意度,QFD将软件需求分为3类,分别是常规需求、期望需求和意外需求(兴奋需求)。不包含“基础需求”。
教材页码:第203页
题目7:在结构化设计中,为了提高模块的独立性,应遵循“高内聚、低耦合”的设计原则。在以下模块的耦合类型中,耦合程度最低、独立性最好的是___。
A. 数据耦合
B. 非直接耦合
C. 控制耦合
D. 内容耦合
答案:B
详细解析:耦合度从低到高排序为:非直接耦合、数据耦合、标记耦合、控制耦合、通信耦合、公共耦合、内容耦合。其中 “非直接耦合” 是指两个模块之间没有直接关系,联系完全通过上级模块实现,耦合度最低。
教材页码:第214页表5-1
题目8:UML语言包含多种图,用来表示系统设计的不同方面。以下图表中,哪一种不属于强调时间次序或消息收发的“交互图”?
A. 顺序图 (Sequence Diagram)
B. 通信图 (Communication Diagram)
C. 定时图 (Timing Diagram)
D. 状态图 (State Diagram)
答案:D
详细解析:UML中,顺序图、通信图和定时图都明确被定义为 “交互图”(交互图展现了对象之间发送消息的交互过程)。状态图描述的是一个实体基于事件反应的动态行为,属于展示对象动态行为的图,但不属于经典的交互图类别。
教材页码:第219页表5-5
题目9:软件动态测试方法中,___主要用于单元测试中,将程序看作一个透明的盒子,按照程序内部逻辑结构设计测试用例,最常用的技术是逻辑覆盖。
A. 黑盒测试
B. 白盒测试
C. 静态分析
D. 随机测试
答案:B
详细解析:白盒测试也称为结构测试,主要用于软件单元测试中。其主要思想是将程序看作透明的白盒,测试人员完全清楚程序的结构和算法,从内部逻辑结构出发设计用例,最常用技术是逻辑覆盖。黑盒测试则是把程序看作不透明的黑盒,只关注功能。
教材页码:第223页
题目10:在软件过程能力成熟度模型 (CSMM) 中,“组织和项目使用统计分析技术建立了量化的质量与过程绩效目标”属于哪一个成熟度等级的行为特征?
A. 2级:项目规范级
B. 3级:组织改进级
C. 4级:量化提升级
D. 5级:创新引领级
答案:C
详细解析:第4级(量化提升级)的核心特征是:在3级充分实施的基础上使用 “统计分析技术” 进行管理;建立过程绩效基线与过程绩效模型。看到 “量化”和“统计分析技术”,即可对应4级。
教材页码:第231页表5-7
💡 备考小贴士
第5章内容系统性强,是软考中级的核心章节之一。建议重点关注:
- 需求的三个层次(业务、用户、系统)与QFD三类需求(常规、期望、意外)
- 结构化设计的耦合与内聚排序(尤其是最低耦合:非直接耦合)
- OOD七大原则(尤其是开闭原则、里氏替换、依赖倒置)
- UML交互图(顺序图、通信图、定时图)与状态图的区别
- 测试流程(单元→集成→确认→系统)及白盒/黑盒测试的适用场景
- CSMM五个等级的核心特征(特别是4级:量化提升级)
把这些核心考点记牢,2-4分轻松到手,案例分析也能从容应对!