6.9 软件维护与运维

6.92026-11-03 11:11:00

本篇定位:维护与运维是软工近年最活跃的考点区(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 单563 年 3 题完善性=改性能;适应性=改环境;维护副作用
逆向工程2025 单281 年属于软件维护工具
DevOps2020 多861 年自动部署/微服务/容器/自动测试
外包合规2021 单74、2025 单802 年主体责任不可外包;第一责任人=法定代表人
运维失误2023 单771 年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 工作(开发/运维/测试)委托给外部服务商。

两条铁律(必背):

  1. 外包可转交工作,不可转嫁责任——网络安全主体责任、信息科技管理责任不可外包(2025 单80 选"可以转嫁主体责任"是错误说法);
  2. 第一责任人是法定代表人(2021 单74)——不管怎么外包,机构法定代表人承担最终责任。

口诀:外包做事不外包责任,法人兜底。


四、易错坑汇总(命题人惯用陷阱)

  1. 改效率=完善性维护(2019 单70)——"修改算法提高效率是正确性维护"错误(没有 bug,是完善/改进)。
  2. 环境变化=适应性维护(2024 单35)——"系统升级导致修改是完善性维护"错误(外部环境变=适应性)。
  3. 文档副作用=没更新文档(2026 单56)——"改代码没更新文档不算副作用"错误(正相反)。
  4. 逆向工程=维护工具(2025 单28)——"逆向工程是编码工具"错误(用于维护/理解旧系统)。
  5. 外包不可转嫁主体责任(2025 单80)——"外包后责任归服务商"错误(主体责任仍在本机构)。
  6. 第一责任人=法定代表人(2021 单74)——"外包后第一责任人是服务商"错误。
  7. DevOps=开发运维一体化(2020 多86)——"DevOps 只负责测试"错误(覆盖开发到部署全链路)。
  8. 预防性维护=防将来——"预防性维护=修复 bug"错误(修 bug 是正确性维护)。

五、横向扩展(防漏网:本章边界内、真题尚未考但可能补考的点)

说明:横向扩展覆盖"大纲范围内但 9 年真题未考过"的知识,标注【新增概率】供取舍。

  1. 维护四类占比【中】:完善性维护占比最大(约 50%)、正确性次之——判断题素材。
  2. 版本控制工具【高】:Git/SVN——2027 预测点名"版本控制"。
  3. 配置管理(CM)【高】:基线、变更控制、版本标识——2027 预测点名"配置管理"。
  4. CI/CD 流水线【中】:持续集成/持续交付——与 DevOps 衔接。
  5. 再工程(重构)【低】:在逆向基础上改进——名词题。
  6. 补丁管理【中】:安全补丁的评估/部署流程——与 7.5 安全防御衔接。
  7. 可维护性度量【低】:模块化程度/文档完整度——名词题。
  8. 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 安全防御。