系统架构设计师 | 开源课程 | 专栏
ONEP软考智能体专属增值服务:涵盖软考AI工具全版本教程、软考课堂干货、论文解读、高项考点精讲与视频课程,提供全流程备考增值支持。
本篇内容摘要

系统架构设计师第10章软件演化与维护速通:演化类型、维护过程与逆向工程,讲清架构怎么持续演进,配口诀攻案例选择。本速通把演化策略与重构要点一次理顺,架构维护不再丢分。

教材速通
2026-08-02T08:07:56+00:00
☆
▶

speedrun10|第10章 软件演化与维护

ONEPSOFT | 软考学习知识库


speedrun10|第10章 软件演化与维护

文件名约定:speedrun_ 第 10 章 软件演化与维护.md(教材准确章名:软件架构的演化和维护)

一、章节定位

一句话概括:本章讲 " 架构如何随业务生长、以及怎么长期维护 "——从演化与定义的关系、面向对象演化、演化分类(静态/动态、设计时/运行时)、18 条演化原则、ATAM 式演化评估,到经典的大型网站架构 10 阶段演化与架构维护(知识/修改/版本管理)。

  • 题型覆盖:综合知识【✓】 | 案例分析【✓】 | 论文【✓】
  • 重要性等级:【4 星】——大型网站 10 阶段是综合知识必背,演化原则/维护是案例与论文常客
  • 教材出处:第 10 章 软件架构的演化和维护

二、本章在讲什么(系统性阐述)

楼盖好不是结束,而是开始——业务会变、环境会变,架构必须随之 " 生长 "。本章先说清 " 演化是什么 ":软件架构是演化来的,不是一次设计定的;演化本质是对组件 (components)、连接件 (connectors)、约束 (constraints) 三要素做增删改。接着给出演化的两种时间观(静态=停机改、动态=运行时不停车改;以及设计时/运行前/有限制运行时/运行时四类时期)。然后是 18 条 " 可持续演化原则 "(成本控制、风险可控、主体维持、模块独立演化等),相当于演化的 " 施工规范 "。评估部分讲如何衡量演化好坏。最后是两大部分:大型网站架构 10 阶段演化实例(单体→垂直→缓存→集群→读写分离→CDN/反向代理→分布式文件/库→NoSQL/搜索→业务拆分→分布式服务)——这是综合知识高频;以及架构维护(知识管理、修改管理、版本管理)——这正是 IT 服务/运维的 " 配置管理、变更管理、版本控制 " 在架构层的体现。

类比:架构演化就像 " 旧楼改造 "——静态演化=整体封楼翻新(停机升级),动态演化=边营业边改造(不停车施工,最难);18 条原则像改造规范(控制造价、风险可控、主体结构稳定、各房间独立改造互不影响);大型网站 10 阶段像从小平房逐步改造成综合体(加电梯、加消防分区、加备用电源、分布式供电);架构维护的 " 知识/修改/版本管理 " 就像物业的 " 竣工图存档、变更工单、各版图纸版本控制 "。

三、教材原文精摘(原封不动,逐子章节全覆盖)

下列段落直接摘自官方教材,未做任何改写,逐子章节给出最关键原文并作解析。

【10.1 演化与定义的关系 原文】" 软件架构的演化就是为了维持软件架构自身的有用性。"" 本质上讲,软件架构的演化就是软件整体结构的演化,演化过程涵盖软件架构的全生命周期……所以,人们通常说软件架构是演化来的,而不是设计来的。"(出自:第 10 章 10.1.1 节)

" 如果软件架构定义是 SA=\\{components,connectors,constraints},也就是说,软件架构包括组件、连接件和约束三大要素,这类软件架构演化主要关注的就是组件、连接件和约束的添加、修改与删除等。"(出自:第 10 章 10.1.2 节)

【10.2 面向对象软件架构演化过程 原文】" 面向对象软件架构演化主要体现为对象演化、消息演化、复合片段演化和约束演化。"(出自:第 10 章 10.2 节,含 10.2.1\~10.2.4)

【10.3 软件架构演化方式的分类 原文】" 设计时演化(Design-Time Evolution)是指发生在体系结构模型和与之相关的代码编译之前的软件架构演化。"" 运行前演化(Pre-Execution Evolution)是指发生在执行之前、编译之后的软件架构演化……系统需要具有添加和删除组件的机制。"" 有限制运行时演化(Constrained Runtime Evolution)是指系统在设计时就规定了演化的具体条件……可以进行一些规定好的演化操作。"" 运行时演化(Runtime Evolution)是指系统的体系结构在运行时不能满足要求时发生的软件架构演化……此时的演化是最难实现的。"(出自:第 10 章 10.3.1 节)

" 软件静态演化是系统停止运行期间的修改和更新,即一般意义上的软件修复和升级。"" 动态演化是在系统运行期间的演化,需要在不停止系统功能的情况下完成演化……动态软件架构(DSA)可以修改自身的架构,并在系统执行期间进行修改。"(出自:第 10 章 10.3.2/10.3.3 节)

【10.4 软件架构演化原则 原文】" 演化成本控制原则:演化成本要控制在预期的范围之内,也就是演化成本要明显小于重新开发成本。"" 进度可控原则……风险可控原则……主体维持原则……系统总体结构优化原则……平滑演化原则……目标一致原则……模块独立演化原则(修改局部化原则)……影响可控原则……有利于重构原则……有利于重用原则……设计原则遵从性原则……适应新技术原则……环境适应性原则……标准依从性原则……质量向好原则……适应新需求原则。"(教材列举 18 种原则,出自:第 10 章 10.4 节)

【10.5 软件架构演化评估方法 原文】" 演化过程已知的评估(评估流程、中间版本度量、质量属性距离)" 与 " 演化过程未知的评估 "(出自:第 10 章 10.5.1/10.5.2 节)

【10.6 大型网站系统架构演化实例(10 阶段) 原文】" 第一阶段:单体架构……应用程序、数据库、文件等所有资源都在一台服务器上。"" 第二阶段:垂直架构……应用和数据分离……使用 3 台服务器:应用服务器、文件服务器和数据库服务器。"" 第三阶段:使用缓存改善网站性能……80% 的业务访问集中在 20% 的数据上……缓存在应用服务器上的本地缓存和……远程缓存。"" 第四阶段:使用服务集群改善网站并发处理能力……应用服务器实现集群……"" 第五阶段:数据库读写分离……应用服务器写数据访问主数据库,读数据访问从数据库。"" 第六阶段:使用反向代理和 CDN 加速网站响应……"" 第七阶段:使用分布式文件系统和分布式数据库系统。"" 第八阶段:使用 NoSQL 和搜索引擎。"" 第九阶段:业务拆分……将一个网站拆分成许多不同的应用,每个应用独立部署。"" 第十阶段:分布式服务……将共用的业务提取出来,独立部署……提供共用业务服务。"(出自:第 10 章 10.6.1\~10.6.10 节)

【10.7 软件架构维护 原文】" 软件架构知识管理是对架构设计中所隐含的决策来源进行文档化表示……架构知识=架构设计 + 架构设计决策。"" 软件架构修改管理……建立一个隔离区域(Region of Quiescence),保障该区域中任何修改对其他部分的影响比较小。"" 软件架构版本管理为软件架构演化的版本演化控制、使用和评价等提供了可靠的依据。"(出自:第 10 章 10.7.1\~10.7.3 节)

逐段讲解(紧贴上面原文,一段一解):

  • 针对 10.1 段:核心观点——" 架构是演化来的,不是设计来的 ";演化=对组件/连接件/约束三要素增删改。理解这点,论文 " 架构演化 " 才有根基。
  • 针对 10.2 段:面向对象架构演化四类=对象、消息、复合片段、约束演化,对应 UML 顺序图元素的变动。
  • 针对 10.3 段:演化按时期分四种(设计时/运行前/有限制运行时/运行时,越往后越难);按动静分=静态(停机改)与动态(运行时不停车改,DSA 可在执行期改自身架构)。选择常考四类时期与动静区别。
  • 针对 10.4 段:18 条原则里重点记:演化成本\<重开发、风险/进度可控、主体维持 (AIG 平稳增长)、模块独立演化/影响可控、质量向好、适应新需求。这些是案例/论文里 " 演化是否合理的判断标准 "。
  • 针对 10.5 段:演化评估分 " 过程已知(可度量中间版本、算质量属性距离)" 与 " 过程未知 " 两类。
  • 针对 10.6 段:综合知识必背 10 阶段——单体→垂直拆分 (应用/文件/数据库三分离)→加缓存 (本地/远程)→服务集群→数据库读写分离 (主写从读)→反向代理 +CDN→分布式文件/数据库→NoSQL+ 搜索引擎→业务拆分 (按产品线独立部署)→分布式服务 (抽取共用业务独立部署)。记住 " 每一步解决什么问题 "。
  • 针对 10.7 段:架构维护三管理——知识管理 (记录决策来源,架构知识=设计 + 决策)、修改管理 (隔离区降低影响)、版本管理 (演化版本控制)。这就是 IT 服务 " 配置/变更/版本管理 " 的架构层表达。

四、核心知识树

第 10 章 架构演化与维护

├── 演化与定义

│ └── 组件/连接件/约束

├── 演化分类

│ ├── 四时期

│ └── 静/动态

├── 演化原则

│ └── 18 条

├── 演化评估

│ └── 已知/未知

├── 网站 10 阶段

│ └── 单体→分布式服务

└── 架构维护

├── 知识管理

├── 修改管理

└── 版本管理

五、知识脑图总结

思维导图(结构化呈现)

  • 第10章 演化与维护
    • 演化与定义
      • 三要素
    • 演化分类
      • 四时期
      • 动静演化
    • 演化原则
      • 18条
    • 网站10阶段
      • 单体到分布式
    • 架构维护
      • 知识管理
      • 修改管理
      • 版本管理

六、关键概念速解

概念教材定义(原文关键词)大白话速解考试怎么考
架构演化对组件/连接件/约束增删改旧楼改造选择/论文
运行时演化体系结构运行时不满足要求时演化,最难边营业边改选择
动态演化不停止系统功能完成演化,DSA 可改自身不停车施工选择
主体维持AIG 平稳增长,主体行为稳定主体结构别大动原则选择
网站 10 阶段单体→垂直→缓存→集群→读写分离→CDN→分布式→NoSQL→拆分→分布式服务小楼改综合体综合必背
架构知识管理架构知识=设计 + 决策竣工图存档维护选择
隔离区域修改影响小的区域变更工单范围维护选择
版本管理演化版本控制评价依据图纸版本控制维护选择

七、记忆口诀与类比

  • 口诀:「网站十阶:单垂缓集读,代搜拆分布;演化四期:设运前两限,动静两分」 → 对应 10 阶段与演化分类。
  • 类比:架构演化就像 " 旧楼改造 "——静态演化=封楼翻新(停机升级),动态演化=边营业边改造(不停车施工,最难);18 条原则像改造规范(控制造价、风险可控、主体结构稳定、各房独立改造);大型网站 10 阶段像从小平房改造成综合体(加电梯、加消防分区、分布式供电);架构维护的 " 知识/修改/版本管理 " 就像物业的 " 竣工图存档、变更工单、图纸版本控制 "。

八、易混淆点对比

易混项 A易混项 B核心区别
静态演化动态演化静态=停机期间改;动态=运行时不停车改(DSA 可改自身)
设计时演化运行时演化设计时=编译前;运行时=运行中,最难实现
垂直架构业务拆分垂直=应用/文件/数据库三服务器分离;业务拆分=按产品线拆成多应用独立部署
架构知识管理架构版本管理知识管理记 " 为什么这么设计 ";版本管理管 " 各版演化控制 "

九、与其他章节的关联

  • 上游 / 前置:第 7 章 ABSD 演化六步、架构风格;第 8 章质量属性(演化评估用效用树/质量属性距离);第 9 章可靠性(演化不能降可靠)。
  • 下游 / 依赖:第 11 章未来技术(云/边缘/分布式服务对演化的推动)。
  • 联动考点:与第 8 章 ATAM(演化前后质量对比)、第 7 章风格选型(演化常伴随风格调整)联动出案例/论文 " 架构演化实践 "。

十、考试出题方式

  • 选择题:演化与定义关系 (三要素)、四时期/动静分类、18 原则名称、大型网站 10 阶段顺序与每阶段解决的问题、架构维护三管理。
  • 案例分析:给出网站性能/并发/数据问题,要求补充下一步演化方案(如加缓存、读写分离、分布式服务)。
  • 论文:高频——" 论软件架构演化 "" 论软件维护 ",需结合项目写演化过程与维护管理。

专项突破提醒(运维服务 / IT 服务)

本章 " 架构维护(知识/修改/版本管理)" 与 IT 服务管理高度重合,给出 3 条可操作建议:

  1. 把架构维护三管理直接对应 IT 服务流程:架构知识管理≈ITIL/ITSS 的 " 配置管理数据库 (CMDB) 记录决策与依赖 ";修改管理 (隔离区域)≈" 变更管理/变更工单,控制影响范围 ";版本管理≈" 发布与版本控制 "。用你备考高项/系规的 IT 服务术语复述,一次复习覆盖三科。
  2. 用 " 运维生命周期 " 串起第 9+10 章:第 9 章的 " 监测、故障恢复、备份 " 是运行期动作,第 10 章的 " 架构维护、演化评估 " 是长期动作。画一张 " 监控→检错报警→容错/恢复→演化改进→版本/变更归档 " 的闭环图,正好对应 IT 服务的事件 - 问题 - 变更 - 发布 - 配置全流程。
  3. 死记网站 10 阶段的问题—手段对照表(单体→性能不足拆三服务器→访问集中加缓存→并发加集群→库压力读写分离→响应慢加 CDN/反代→存储瓶颈分布式文件/库→查询复杂上 NoSQL/搜索→业务复杂拆分→共用业务抽分布式服务),这是综合知识送分题,也是案例 " 架构演进 " 题的万能素材。

相关学习内容推荐......

⤴️分享
⬅️返回
1
2026-08-02T08:07:56+00:00
speedrun1|第1章 绪论
2
2026-08-02T08:07:56+00:00
speedrun2|第2章 计算机系统基础知识
3
2026-08-02T08:07:56+00:00
speedrun3|第3章 信息系统基础知识
4
2026-08-02T08:07:56+00:00
speedrun4|第4章 信息安全技术基础知识
5
2026-08-02T08:07:56+00:00
speedrun5|第5章 软件工程基础知识
6
2026-08-02T08:07:56+00:00
speedrun6|第6章 数据库系统
7
2026-08-02T08:07:56+00:00
speedrun7|第7章 系统架构设计基础
8
2026-08-02T08:07:56+00:00
speedrun8|第8章 质量属性与架构评估
9
2026-08-02T08:07:56+00:00
speedrun9|第9章 软件可靠性
10
2026-08-02T08:07:56+00:00
speedrun10|第10章 软件演化与维护
11
2026-08-02T08:07:56+00:00
speedrun11|第11章 未来技术
12
2026-08-02T08:07:56+00:00
speedrun12|第12章 信息系统架构设计
13
2026-08-02T08:07:56+00:00
speedrun13|第13章 层次式架构设计
14
2026-08-02T08:07:56+00:00
speedrun14|第14章 云原生架构设计
15
2026-08-02T08:07:56+00:00
speedrun15|第15章 面向服务架构设计SOA
16
2026-08-02T08:07:56+00:00
speedrun16|第16章 嵌入式系统架构设计理论与实践
17
2026-08-02T08:07:56+00:00
speedrun17|第17章 通信系统架构设计理论与实践
18
2026-08-02T08:07:56+00:00
speedrun18|第18章 安全架构设计理论与实践
19
2026-08-02T08:07:56+00:00
speedrun19|第19章 大数据架构设计理论与实践
20
2026-08-02T08:07:56+00:00
speedrun20|第20章 系统架构设计师论文写作要点
ONEPSOFT品牌标识
ONEP软考 | 开源知识库
© 2025 ONEPSOFT. All rights reserved.