第1章 基本概念及导论 1
1.1 演化与维护 1
1.2 软件演化模型与过程 6
1.3 再工程 8
1.4 遗留系统 9
1.5 影响分析 11
1.6 重构 11
1.7 程序理解 12
1.8 软件复用 13
1.9 本书总体概述 14
参考文献 17
第2章 软件维护和演化的分类法 24
2.1 概要 24
2.2 维护概念的类别 35
2.3 软件系统的演化 41
2.4 基于COTS系统的维护 57
2.5 总结 65
文献综述 67
参考文献 70
第3章 演化和维护模型 76
3.1 概要 76
3.2 面向复用的模型 77
3.3 闭源软件的分阶段模型 80
3.4 免费开源软件的分阶段模型 83
3.5 变更微周期模型 84
3.6 IEEE/EIA维护过程 86
3.7 ISO/IEC 14764维护过程 94
3.8 软件配置管理 105
3.9 变更请求工作流 113
3.10 总结 119
文献综述 120
参考文献 123
第4章 再工程 126
4.1 概要 126
4.2 再工程的概念 127
4.3 软件再工程的通用模型 130
4.4 再工程过程 136
4.5 代码逆向工程 144
4.6 用于逆向工程的技术 147
4.7 反编译与逆向工程 154
4.8 数据逆向工程 155
4.9 逆向工程工具 160
4.10 总结 164
文献综述 166
参考文献 169
第5章 遗留信息系统 177
5.1 概要 177
5.2 包装 178
5.3 迁移 185
5.4 迁移规划 186
5.5 迁移方法 192
5.6 总结 206
文献综述 207
参考文献 208
第6章 影响分析 211
6.1 概要 211
6.2 影响分析过程 213
6.3 基于依赖的影响分析 222
6.4 波及效应 225
6.5 变更传播模型 230
6.6 总结 234
文献综述 236
参考文献 238
第7章 重构 242
7.1 概要 242
7.2 重构过程中的活动 244
7.3 重构的形式化 251
7.4 其他重构的例子 257
7.5 软件重组的准备工作 259
7.6 总结 268
文献综述 269
参考文献 272
第8章 程序理解 275
8.1 概要 275
8.2 基本术语 277
8.3 程序理解的认知模型 283
8.4 协议分析 299
8.5 理解的可视化 301
8.6 总结 304
文献综述 306
参考文献 307
第9章 复用和领域工程 310
9.1 概要 310
9.2 领域工程 314
9.3 复用能力 317
9.4 成熟度模型 319
9.5 软件复用经济模型 328
9.6 总结 334
文献综述 335
参考文献 337
术语表 341