6.9 软件维护与运维
本篇定位:维护与运维是软工近年最活跃的考点区(2024–2026 运维化、场景化明显,2027 预测延续)——9 年直接命中 10 题(2019 单70、2020 多86、2021 单74、2023 单77、2024 单35、2025 单28/80、2026 单56)。考点:维护四类(正确性/适应性/完善性/预防性)、逆向工程、DevOps、ITIL、外包合规。核心能力:维护四类判断(改 bug/改环境/改性能/防将来)+ 外包责任不可转嫁。 数据依据:
01-真题/真题文本/+01-真题/考点汇总/+05-笔记/软件工程-模块总纲.md;答案以专业判断为准。 阅读提示:维护与 7.9 金融合规(外包)强衔接;DevOps 与 8.2 云计算衔接;ITIL 运维与 8.6 监管科技呼应。
一、考点定位(本章真题统计)
| 考点 | 真题锚点 | 频次 | 考法 |
|---|---|---|---|
| 维护四类 | 2019 单70、2024 单35、2026 单56 | 3 年 3 题 | 完善性=改性能;适应性=改环境;维护副作用 |
| 逆向工程 | 2025 单28 | 1 年 | 属于软件维护工具 |
| DevOps | 2020 多86 | 1 年 | 自动部署/微服务/容器/自动测试 |
| 外包合规 | 2021 单74、2025 单80 | 2 年 | 主体责任不可外包;第一责任人=法定代表人 |
| 运维失误 | 2023 单77 | 1 年 | WannaCry=维护阶段失误 |
命题规律:维护题考"四类维护判定(场景→类型)+ 运维化新考点"。2027 预测 2 题:维护类型、外包合规、DevOps。核心能力:维护四类一句话判定(修错/适环/改善/防将)。
二、知识框架(先搭骨架)
软件维护(生命周期最长阶段)
├── 维护四类(必背)
│ ├── 正确性维护(纠错):修复 bug(运行中发现的错误)
│ ├── 适应性维护:适应环境变化(2024 单35:信用卡系统升级→超市系统修改)
│ ├── 完善性维护:改进性能/增加功能(2019 单70:修改排序算法提高效率)
│ └── 预防性维护:为将来维护做准备(提高可维护性)
├── 维护副作用(2026 单56)
│ ├── 内容副作用:改代码引入新错误
│ ├── 数据副作用:数据结构变化
│ └── 文档副作用:内容改了文档没更新(2026 单56 考"不属于副作用")
├── 逆向工程(2025 单28)
│ ├── 从已运行的系统反向分析出设计/代码(维护工具)
│ └── 再工程(重构):在逆向基础上改进
├── DevOps(2020 多86)
│ ├── 开发(Dev)+运维(Ops)一体化
│ ├── 自动部署/持续集成/自动测试/微服务/容器
│ └── 目的:缩短交付周期、提高可靠性
├── ITIL 运维管理
│ ├── 配置管理/事件管理/变更管理
│ └── 2023 年 ITIL 配置管理题
└── 外包合规(2021 单74、2025 单80)
├── 信息科技外包:可外包开发/运维,主体责任不可转嫁(2025 单80)
├── 第一责任人:法定代表人(2021 单74)
└── 外包增加风险(需管理,不是转嫁所有风险)
一句话记忆:维护四类(修错/适环/改善/防将);副作用三兄弟(内容/数据/文档);逆向工程=维护工具;DevOps 打通开发运维;外包可做责任不可转。
三、考点详解
3.1 维护四类(2019 单70、2024 单35、2026 单56,必考)
精确定义与判定(必背):
| 类型 | 做什么 | 真题例子 |
|---|---|---|
| 正确性维护 | 修 bug(纠错) | 运行中发现的错误 |
| 适应性维护 | 适应环境变化(硬件/OS/外部系统) | 2024 单35:信用卡系统升级→超市系统需修改 |
| 完善性维护 | 改进性能/增加功能 | 2019 单70:修改排序算法提高效率 |
| 预防性维护 | 为将来维护做准备 | 提高可维护性、重构 |
2019 单70(选完善性):修改排序算法提高效率 → 完善性维护(不是正确性——没有 bug,是改进性能)。 2024 单35(选适应性):信用卡系统升级导致超市系统需要修改 → 适应性维护(外部环境变化)。
口诀:修错=正确性、适环=适应性、改善=完善性、防将=预防性。改效率=完善(不是修 bug)。
3.2 维护副作用(2026 单56)
精确定义:维护副作用 = 维护活动引入的新问题,三类:
- 内容副作用:改代码引入新错误;
- 数据副作用:数据结构/文件变化引发问题;
- 文档副作用:程序内容已改、文档没更新(2026 单56 考"不属于副作用的是"——答"文档及时更新了"类说法时注意反向)。
口诀:副作用三兄弟=内容/数据/文档(改完没同步)。
3.3 逆向工程(2025 单28)
精确定义:逆向工程 = 从已运行的系统出发,反向分析出其体系结构、设计、代码等——是软件维护/再工程的重要工具(2025 单28 选"属于软件维护工具")。
与正向工程对比:正向=需求→设计→代码;逆向=代码→设计→需求(反向)。
口诀:正向造、逆向拆(反向还原设计文档)。
3.4 DevOps(2020 多86)
精确定义:DevOps = 开发(Development)与运维(Operations)一体化的理念与实践,通过自动化工具链打通开发到部署的流程。
2020 多86(选相关项):与 DevOps 相关的有——自动部署、微服务、容器、自动测试(均相关,选全)。
特点:持续集成/持续交付(CI/CD)、自动部署、监控反馈——缩短交付周期、快速响应变更。
3.5 ITIL 运维管理(2023 单77 相关)
精确定义:ITIL = IT 基础设施库,IT 服务管理的最佳实践框架(配置管理、事件管理、问题管理、变更管理)。
2023 单77(WannaCry 责任):WannaCry 爆发主因=系统未及时打补丁——运维的维护阶段失误(补丁管理/配置管理不到位)。
口诀:ITIL 管运维服务,补丁要打防 WannaCry。
3.6 外包合规(2021 单74、2025 单80,金融视角必考)
精确定义:信息科技外包 = 金融机构把部分 IT 工作(开发/运维/测试)委托给外部服务商。
两条铁律(必背):
- 外包可转交工作,不可转嫁责任——网络安全主体责任、信息科技管理责任不可外包(2025 单80 选"可以转嫁主体责任"是错误说法);
- 第一责任人是法定代表人(2021 单74)——不管怎么外包,机构法定代表人承担最终责任。
口诀:外包做事不外包责任,法人兜底。
四、易错坑汇总(命题人惯用陷阱)
- 改效率=完善性维护(2019 单70)——"修改算法提高效率是正确性维护"错误(没有 bug,是完善/改进)。
- 环境变化=适应性维护(2024 单35)——"系统升级导致修改是完善性维护"错误(外部环境变=适应性)。
- 文档副作用=没更新文档(2026 单56)——"改代码没更新文档不算副作用"错误(正相反)。
- 逆向工程=维护工具(2025 单28)——"逆向工程是编码工具"错误(用于维护/理解旧系统)。
- 外包不可转嫁主体责任(2025 单80)——"外包后责任归服务商"错误(主体责任仍在本机构)。
- 第一责任人=法定代表人(2021 单74)——"外包后第一责任人是服务商"错误。
- DevOps=开发运维一体化(2020 多86)——"DevOps 只负责测试"错误(覆盖开发到部署全链路)。
- 预防性维护=防将来——"预防性维护=修复 bug"错误(修 bug 是正确性维护)。
五、横向扩展(防漏网:本章边界内、真题尚未考但可能补考的点)
说明:横向扩展覆盖"大纲范围内但 9 年真题未考过"的知识,标注【新增概率】供取舍。
- 维护四类占比【中】:完善性维护占比最大(约 50%)、正确性次之——判断题素材。
- 版本控制工具【高】:Git/SVN——2027 预测点名"版本控制"。
- 配置管理(CM)【高】:基线、变更控制、版本标识——2027 预测点名"配置管理"。
- CI/CD 流水线【中】:持续集成/持续交付——与 DevOps 衔接。
- 再工程(重构)【低】:在逆向基础上改进——名词题。
- 补丁管理【中】:安全补丁的评估/部署流程——与 7.5 安全防御衔接。
- 可维护性度量【低】:模块化程度/文档完整度——名词题。
- IT 审计与运维【低】:审计运维记录——与 7.9 衔接。
六、真题演练(代表性真题 + 解析)
例 1(2019 单70) 通过修改排序算法提高程序执行效率,属于(口径已核)维护。 A. 正确性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护
答案:C。改性能/增加功能=完善性维护(没有 bug,是改进)。口诀:改效率=完善。
例 2(2024 单35) 某银行信用卡系统升级,导致超市销售系统需要相应修改,属于(口径已核)维护。 A. 正确性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护
答案:B。外部系统环境变化→修改=适应性维护。口诀:环境变=适应。
例 3(2025 单28) 逆向工程在软件工程中属于(口径已核)。 A. 编码工具 B. 软件维护工具 C. 测试工具 D. 需求分析工具
答案:B。逆向工程=软件维护工具(反向还原旧系统结构,辅助维护/再工程)。口诀:逆向拆旧=维护。
例 4(2020 多86) 与 DevOps 相关的技术/理念有(口径已核)。 A. 自动部署 B. 微服务 C. 容器 D. 自动测试
答案:ABCD(全选)。DevOps=开发运维一体化:自动部署/微服务/容器/自动测试都相关。口诀:DevOps 全自动。
例 5(2025 单80) 关于金融机构信息科技外包,错误的说法是(口径已核)。 A. 外包可提高效率、降低成本 B. 外包可分散部分风险 C. 外包后网络安全主体责任可转嫁给服务商 D. 外包需要进行风险评估和监督管理
答案:C。主体责任不可转嫁——外包做事不外包责任(C 是错误说法)。口诀:外包不外包责任。
例 6(2026 单56) 关于软件维护副作用,错误的说法是(口径已核)。 A. 修改代码可能引入新错误(内容副作用) B. 数据结构变化可能引发问题(数据副作用) C. 程序内容更新后文档未更新不算副作用 D. 副作用是维护活动带来的新问题
答案:C。文档未更新=文档副作用(C 说"不算副作用"是错误说法)。口诀:改了没记=文档副作用。
七、本章小结
- 一条主线:维护四类(修错/适环/改善/防将)→ 副作用三兄弟(内容/数据/文档)→ 逆向工程(维护工具)→ DevOps(开发运维一体化)→ ITIL(运维管理)→ 外包合规(责任不可转嫁)。
- 必背判定:改效率=完善性(2019 单70);环境变=适应性(2024 单35);文档没更新=副作用(2026 单56);逆向=维护工具(2025 单28);外包不转责任(2025 单80)。
- 衔接预告:外包合规→7.9 金融合规;DevOps/容器→8.2 云计算;补丁管理→7.5 安全防御。