目录 1
第一部分 软件维护的背景环境 1
概述 1
讨论要点 2
第1章 基本概念介绍 3
1.1 引言 3
1.2 定义 4
1.3 基础 4
1.4 新开发活动与维护活动之间的差别 6
1.5 为什么需要软件维护 7
1.6 有效地维护系统 7
1.7 案例研究:空中交通管制 8
1.8 软件更改分类 9
1.9 小结 10
第2章 维护框架 11
2.1 引言 11
2.2 定义 11
2.3 一种软件维护框架 12
2.4 小结 21
第3章 软件更改的基本问题 22
3.1 引言 22
3.2 定义 22
3.3 软件更改 23
3.4 持续支持 28
3.5 Lehman定律 29
3.6 小结 31
4.2 定义 32
4.3 修改软件的经济约束 32
第4章 软件更改的限制与经济约束 32
4.1 引言 32
4.4 软件更改的限制 34
4.5 术语与映像问题 36
4.6 维护问题的潜在解决方案 37
4.7 小结 39
5.1 引言 40
5.2 定义 40
第5章 维护过程 40
5.3 软件生产过程 41
5.4 传统过程模型评价 44
5.5 维护过程模型 48
5.6 更改时机 59
5.7 过程成熟度 59
5.8 小结 61
第二部分 维护期间的活动 63
概述 63
讨论要点 65
第6章 程序理解 67
6.1 引言 67
6.2 定义 68
6.3 程序理解的目标 68
6.4 维护人员及其信息需要 71
6.5 理解过程模型 73
6.6 概念模型 75
6.7 程序理解策略 75
6.9 影响理解的因素 80
6.8 阅读手段 80
6.10 程序理解理论和研究的结论 89
6.11 小结 90
第7章 逆向工程 92
7.1 引言 92
7.2 定义 92
7.3 抽象 93
7.4 逆向工程的用途与目标 94
7.5 逆向工程的层次 96
7.6 支持手段 99
7.7 好处 102
7.8 案例研究:美国国防部库存信息系统 103
7.9 当前问题 104
7.10 小结 105
第8章 重用与可重用性 106
8.1 引言 106
8.2 定义 107
8.3 重用的对象 107
8.4 重用的目标与好处 109
8.5 重用方法 110
8.6 领域分析 114
8.7 组件工程 115
8.8 重用过程模型 119
8.9 影响重用的因素 122
8.10 小结 125
第9章 测试 127
9.1 引言 127
9.3 为什么要测试软件 128
9.2 定义 128
9.4 软件测试员的工作是什么 129
9.5 测试什么与如何测试 130
9.6 测试分类 131
9.7 验证与确认 133
9.8 测试计划 134
9.9 案例研究:Therac-25 135
9.10 小结 140
10.1 引言 142
第10章 管理与组织问题 142
10.2 定义 143
10.3 管理层的责任 143
10.4 提高维护生产率 144
1O.5 维护团队 146
10.6 人员教育与培训 147
10.7 组织模式 149
10.8 小结 151
概述 153
第三部分 不断跟踪维护过程 153
讨论要点 154
第11章 配置管理 156
11.1 引言 156
11.2 定义 157
11.3 配置管理 158
11.4 变更控制 164
11.5 文档 166
116 小结 171
12.1 引言 172
第12章 维护测量 172
12.2 定义 173
12.3 度量完整性的重要意义 173
12.4 软件度量的目标 176
12.5 测量举例 177
12.6 选择维护测量的方针 182
12.7 小结 183
第四部分 构建更好的系统 185
概述 185
讨论要点 186
第13章 建立与维持可维护性 188
13.1 引言 188
13.2 定义 189
13.3 影响分析 189
13.4 质量保证 190
13.5 第四代语言 195
13.6 面向对象范例 199
13.7 软件维护中的面向对象技术 204
13.8 小结 207
第14章 维护工具 209
14.1 引言 209
14.2 定义 209
14.3 工具选择准则 209
14.4 工具分类 211
14.5 用于理解和逆向工程的工具 211
14.6 测试支持工具 213
14.7 配置管理支持工具 214
14.8 其他任务 215
14.9 小结 216
第五部分 未来展望 219
概述 219
过去与现在 219
研究领域 220
分类 220
两方面的最大利益 222
参考文献 224