出版者的话
         译者序
         前言
         作者简介
         第1章 软件和软件工程 1
         1.1 软件的本质 2
         1.1.1 定义软件 3
         1.1.2 软件应用领域 5
         1.1.3 遗留软件 6
         1.2 WebApp的特性 7
         1.3 软件工程 8
         1.4 软件过程 9
         1.5 软件工程实践 11
         1.5.1 实践的精髓 11
         1.5.2 一般原则 12
         1.6 软件神话 14
         1.7 这一切是如何开始的 15
         1.8 小结 16
         习题与思考题 17
         推荐读物与阅读信息 17
         第一部分 软件过程
         第2章 过程模型 20
         2.1 通用过程模型 21
         2.1.1 定义框架活动 22
         2.1.2 明确任务集 23
         2.1.3 过程模式 23
         2.2 过程评估与改进 25
         2.3 惯用过程模型 26
         2.3.1 瀑布模型 26
         2.3.2 增量过程模型 28
         2.3.3 演化过程模型 29
         2.3.4 协同模型 33
         2.3.5 演化模型的最终评述 34
         2.4 专用过程模型 34
         2.4.1 基于构件的开发 35
         2.4.2 形式化方法模型 35
         2.4.3 面向方面的软件开发 35
         2.5 统一过程 37
         2.5.1 简史 37
         2.5.2 统一过程的阶段 37
         2.6 个人过程模型和团队过程模型 38
         2.6.1 个人软件过程 39
         2.6.2 团队软件过程 39
         2.7 过程技术 40
         2.8 产品与过程 41
         2.9 小结 42
         习题与思考题 42
         推荐读物与阅读信息 43
         第3章 敏捷开发 45
         3.1 什么是敏捷 46
         3.2 敏捷及变更的成本费用 47
         3.3 敏捷过程是什么 47
         3.3.1 敏捷原则 48
         3.3.2 敏捷开发的战略 48
         3.3.3 人的因素 49
         3.4 极限编程 50
         3.4.1 极限编程的权值 50
         3.4.2 极限编程过程 51
         3.4.3 工业极限编程 53
         3.4.4 关于XP的争论 54
         3.5 其他敏捷过程模型 55
         3.5.1 自适应软件开发 56
         3.5.2 Scrum 57
         3.5.3 动态系统开发方法 58
         3.5.4 Crystal 59
         3.5.5 特征驱动开发 59
         3.5.6 精益软件开发 60
         3.5.7 敏捷建模 60
         3.5.8 敏捷统一过程 61
         3.6 敏捷过程工具集 62
         3.7 小结 63
         习题与思考题 63
         推荐读物与阅读信息 64
         第二部分 建模
         第4章 指导实践的原则 68
         4.1 软件工程知识 69
         4.2 核心原则 69
         4.2.1 指导过程的原则 69
         4.2.2 指导实践的原则 70
         4.3 指导每个框架活动的原则 71
         4.3.1 沟通原则 71
         4.3.2 策划原则 73
         4.3.3 建模原则 74
         4.3.4 构造原则 77
         4.3.5 部署原则 79
         4.4 小结 80
         习题与思考题 81
         推荐读物与阅读信息 81
         第5章 理解需求 83
         5.1 需求工程 84
         5.2 建立根基 88
         5.2.1 确认利益相关者 88
         5.2.2 识别多重观点 88
         5.2.3 协同合作 88
         5.2.4 首次提问 89
         5.3 导出需求 89
         5.3.1 协作收集需求 90
         5.3.2 质量功能部署 92
         5.3.3 用户场景 92
         5.3.4 导出工作产品 93
         5.4 开发用例 94
         5.5 构建需求模型 97
         5.5.1 需求模型的元素 98
         5.5.2 分析模式 100
         5.6 协商需求 100
         5.7 确认需求 101
         5.8 小结 102
         习题与思考题 102
         推荐读物与阅读信息 103
         第6章 需求建模:场景、信息
         与类分析 105
         6.1 需求分析 106
         6.1.1 总体目标和原理 106
         6.1.2 分析的经验原则 107
         6.1.3 域分析 107
         6.1.4 需求建模的方法 109
         6.2 基于场景建模 110
         6.2.1 新建初始用例 110
         6.2.2 细化初始用例 112
         6.2.3 编写正规的用例 113
         6.3 补充用例的UML模型 115
         6.3.1 开发活动图 115
         6.3.2 泳道图 115
         6.4 数据建模概念 116
         6.4.1 数据对象 117
         6.4.2 数据属性 117
         6.4.3 关系 118
         6.5 基于类的建模 119
         6.5.1 识别分析类 119
         6.5.2 描述属性 121
         6.5.3 定义操作 122
         6.5.4 类-职责-协作者建模 124
         6.5.5 关联和依赖 128
         6.5.6 分析包 129
         6.6 小结 130
         习题与思考题 130
         推荐读物与阅读信息 131
         第7章 需求建模:流程、行为、模式和Web应用 132
         7.1 需求建模策略 132
         7.2 面向数建模 133
         7.2.1 创建数据流模型 133
         7.2.2 创建控制流模型 135
         7.2.3 控制规格说明 135
         7.2.4 处理规格说明 137
         7.3 生成行为模型 138
         7.3.1 识别用例事件 139
         7.3.2 状态表现 139
         7.4 需求建模的模式 141
         7.4.1 发现分析模式 142
         7.4.2 需求模式举例:执行器-传感器 142
         7.5 Web应用系统的需求建模 145
         7.5.1 如何分析 145
         7.5.2 需求建模的输入 146
         7.5.3 需求建模的输出 146
         7.5.4 Web应用系统内容建模 147
         7.5.5 Web应用系统的交互模型 148
         7.5.6 Web应用系统的功能模型 148
         7.5.7 Web应用系统的配置模型 149
         7.5.8 导航建模 150
         7.6 小结 150
         习题与思考题 151
         推荐读物与阅读信息 151
         第8章 设计概念 152
         8.1 软件工程中的设计 153
         8.2 设计过程 155
         8.2.1 软件质量指导原则和属性 155
         8.2.2 软件设计的演化 156
         8.3 设计概念 157
         8.3.1 抽象 158
         8.3.2 体系结构 158
         8.3.3 模式 159
         8.3.4 关注点分离 159
         8.3.5 模块化 159
         8.3.6 信息隐蔽 160
         8.3.7 功能独立 160
         8.3.8 求精 161
         8.3.9 方面 161
         8.3.10 重构 162
         8.3.11 面向对象的设计概念 163
         8.3.12 设计类 163
         8.4 设计模型 165
         8.4.1 数据设计元素 166
         8.4.2 体系结构设计元素 166
         8.4.3 接口设计元素 166
         8.4.4 构件级设计元素 168
         8.4.5 部署级设计元素 168
         8.5 小结 169
         习题与思考题 169
         推荐读物与阅读信息 170
         第9章 体系结构设计 172
         9.1 软件体系结构 172
         9.1.1 什么是体系结构 173
         9.1.2 体系结构为什么重要 174
         9.1.3 体系结构描述 174
         9.1.4 体系结构决策 175
         9.2 体系结构类型 175
         9.3 体系结构风格 177
         9.3.1 体系结构风格的简单分类 178
         9.3.2 体系结构模式 180
         9.3.3 组织和求精 181
         9.4 体系结构设计 181
         9.4.1 系统环境的表示 181
         9.4.2 定义原型 182
         9.4.3 将体系结构精化为构件 183
         9.4.4 描述系统实例 184
         9.5 评估可选的体系结构设计 185
         9.5.1 体系结构权衡分析方法 185
         9.5.2 体系结构复杂性 187
         9.5.3 体系结构描述语言 187
         9.6 使用数据流进行体系结构映射 188
         9.6.1 变换映射 188
         9.6.2 精化体系结构设计 193
         9.7 小结 194
         习题与思考题 194
         推荐读物与阅读信息 195
         第10章 构件级设计 196
         10.1 什么是构件 197
         10.1.1 面向对象的观点 197
         10.1.2 传统观点 198
         10.1.3 过程相关的观点 199
         10.2 设计基于类的构件 200
         10.2.1 基本设计原则 200
         10.2.2 构件级设计指导方针 203
         10.2.3 内聚性 203
         10.2.4 耦合性 205
         10.3 实施构件级设计 206
         10.4 WebApp的构件级设计 210
         10.4.1 构件级内容设计 210
         10.4.2 构件级功能设计 211
         10.5 设计传统构件 211
         10.5.1 图形化设计表示 211
         10.5.2 表格式设计表示 212
         10.5.3 程序设计语言 213
         10.6 基于构件的开发 214
         10.6.1 领域工程 215
         10.6.2 构件合格性检验、适应性修改与组合 215
         10.6.3 复用的分析与设计 217
         10.6.4 构件分类与检索 217
         10.7 小结 218
         习题与思考题 219
         推荐读物与阅读信息 220
         第11章 用户界面设计 221
         11.1 黄金规则 222
         11.1.1 用户操纵控制 222
         11.1.2 减轻用户记忆负担 223
         11.1.3 保持界面一致 224
         11.2 用户界面的分析与设计 225
         11.2.1 用户界面分析和设计模型 225
         11.2.2 过程 226
         11.3 界面分析 227
         11.3.1 用户分析 227
         11.3.2 任务分析和建模 228
         11.3.3 显示内容分析 232
         11.3.4 工作环境分析 232
         11.4 界面设计步骤 233
         11.4.1 应用界面设计步骤 233
         11.4.2 用户界面设计模式 235
         11.4.3 设计问题 235
         11.5 WebApp界面设计 237
         11.5.1 界面设计原则与指导方针 238
         11.5.2 WebApp的界面设计工作流 241
         11.6 设计评估 242
         11.7 小结 243
         习题与思考题 244
         推荐读物与阅读信息 245
         第12章 基于模式的设计 246
         12.1 设计模式 247
         12.1.1 模式的种类 248
         12.1.2 框架 249
         12.1.3 描述模式 250
         12.1.4 模式语言和存储库 251
         12.2 基于模式的软件设计 251
         12.2.1 不同环境下基于模式
         的设计 252
         12.2.2 在模式中思考 252
         12.2.3 设计任务 253
         12.2.4 建立模式组织表 254
         12.2.5 常见设计错误 255
         12.3 体系结构模式 255
         12.4 构件级设计模式 257
         12.5 用户界面设计模式 259
         12.6 WebApp设计模式 261
         12.6.1 设计焦点 261
         12.6.2 设计粒度 261
         12.7 小结 262
         习题与思考题 263
         推荐读物与阅读信息 263
         第13章 WebApp设计 265
         13.1 WebApp设计质量 266
         13.2 设计目标 268
         13.3 WebApp设计金字塔 269
         13.4 WebApp界面设计 269
         13.5 美学设计 270
         13.5.1 布局问题 270
         13.5.2 美术设计问题 271
         13.6 内容设计 271
         13.6.1 内容对象 271
         13.6.2 内容设计问题 272
         13.7 体系结构设计 272
         13.7.1 内容体系结构 273
         13.7.2 WebApp体系结构 274
         13.8 导航设计 275
         13.8.1 导航语义 275
         13.8.2 导航语法 276
         13.9 构件级设计 277
         13.10 面向对象的超媒体设计方法 277
         13.10.1 OOHDM的概念设计 278
         13.10.2 OOHDM的导航设计 279
         13.10.3 抽象界面设计与实现 279
         13.11 小结 279
         习题与思考题 280
         推荐读物与阅读信息 280
         第三部分 质量管理
         第14章 质量概念 284
         14.1 什么是质量 285
         14.2 软件质量 285
         14.2.1 Garvin的质量维度 286
         14.2.2 McCall的质量因素 287
         14.2.3 ISO 9126质量因素 287
         14.2.4 定向质量因素 288
         14.2.5 过渡到量化观点 289
         14.3 软件质量困境 289
         14.3.1 “足够好”的软件 289
         14.3.2 质量成本 290
         14.3.3 风险 291
         14.3.4 疏忽和责任 292
         14.3.5 质量和安全 292
         14.3.6 管理活动的影响 292
         14.4 实现软件质量 293
         14.4.1 软件工程方法 293
         14.4.2 项目管理技术 293
         14.4.3 质量控制 294
         14.4.4 质量保证 294
         14.5 小结 294
         习题与思考题 294
         推荐读物与阅读信息 295
         第15章 评审技术 296
         15.1 软件缺陷对成本的影响 297
         15.2 缺陷放大和消除 297
         15.3 评审度量及其应用 299
         15.3.1 分析度量数据 299
         15.3.2 评审的成本效益 300
         15.4 评审:正式程度 301
         15.5 非正式评审 301
         15.6 正式技术评审 303
         15.6.1 评审会议 303
         15.6.2 评审报告和记录保存 304
         15.6.3 评审指导原则 304
         15.6.4 样本驱动评审 305
         15.7 小结 306
         习题与思考题 306
         推荐读物与阅读信息 307
         第16章 软件质量保证 308
         16.1 背景问题 309
         16.2 软件质量保证的要素 309
         16.3 软件质量保证的任务、目标和度量 311
         16.3.1 软件质量保证任务 311
         16.3.2 目标、属性和度量 311
         16.4 软件质量保证的形式化方法 312
         16.5 统计软件质量保证 313
         16.5.1 一个普通的例子 313
         16.5.2 软件工程中的六西格玛 314
         16.6 软件可靠性 314
         16.6.1 可靠性和可用性的测量 315
         16.6.2 软件安全 316
         16.7 ISO 9000质量标准 316
         16.8 SQA计划 317
         16.9 小结 318
         习题与思考题 318
         推荐读物与阅读信息 319
         第17章 软件测试策略 320
         17.1 软件测试的策略性方法 321
         17.1.1 验证与确认 321
         17.1.2 软件测试的组织 322
         17.1.3 软件测试策略—宏观 322
         17.1.4 测试完成的标准 324
         17.2 策略问题 324
         17.3 传统软件的测试策略 325
         17.3.1 单元测试 325
         17.3.2 集成测试 327
         17.4 面向对象软件的测试策略 331
         17.4.1 面向对象环境中的单元测试 331
         17.4.2 面向对象环境中的集成测试 332
         17.5 WebApp的测试策略 332
         17.6 确认测试 333
         17.6.1 确认测试准则 333
         17.6.2 配置评审 333
         17.6.3 a测试与b测试 333
         17.7 系统测试 334
         17.7.1 恢复测试 335
         17.7.2 安全测试 335
         17.7.3 压力测试 335
         17.7.4 性能测试 336
         17.7.5 部署测试 336
         17.8 调试技巧 337
         17.8.1 调试过程 337
         17.8.2 心理因素 338
         17.8.3 调试策略 338
         17.8.4 纠正错误 340
         17.9 小结 340
         习题与思考题 340
         推荐读物与阅读信息 341
         第18章 测试传统的应用系统 343
         18.1 软件测试基础 344
         18.2 测试的内部视角和外部视角 345
         18.3 白盒测试 346
         18.4 基本路径测试 346
         18.4.1 流图表示 346
         18.4.2 独立程序路径 347
         18.4.3 导出测试用例 349
         18.4.4 图矩阵 350
         18.5 控制结构测试 351
         18.5.1 条件测试 351
         18.5.2 数据流测试 351
         18.5.3 循环测试 352
         18.6 黑盒测试 353
         18.6.1 基于图的测试方法 353
         18.6.2 等价类划分 354
         18.6.3 边界值分析 355
         18.6.4 正交数组测试 355
         18.7 基于模型的测试 357
         18.8 针对特定环境、体系结构和应用系统的测试 358
         18.8.1 图形用户界面测试 358
         18.8.2 客户/服务器体系结构测试 358
         18.8.3 文档测试和帮助设施测试 359
         18.8.4 实时系统的测试 360
         18.9 软件测试模式 361
         18.10 小结 362
         习题与思考题 362
         推荐读物与阅读信息 363
         第19章 测试面向对象的应用系统 364
         19.1 扩展测试的视野 364
         19.2 测试OOA和OOD模型 365
         19.2.1 OOA和OOD模型的正确性 365
         19.2.2 面向对象模型的一致性 366
         19.3 面向对象测试策略 367
         19.3.1 面向对象环境中的单元测试 367
         19.3.2 面向对象环境中的集成测试 368
         19.3.3 面向对象环境中的确认测试 368
         19.4 面向对象测试方法 368
         19.4.1 面向对象概念的测试用例设计的含义 369
         19.4.2 传统测试用例设计方法的可应用性 369
         19.4.3 基于故障的测试 369
         19.4.4 测试用例与类层次 370
         19.4.5 基于场景的测试设计 370
         19.4.6 表层结构和深层结构的测试 371
         19.5 类级可应用的测试方法 372
         19.5.1 面向对象类的随机测试 372
         19.5.2 类级的划分测试 373
         19.6 类间测试用例设计 373
         19.6.1 多类测试 374
         19.6.2 从行为模型导出的测试 374
         19.7 小结 375
         习题与思考题 376
         推荐读物与阅读信息 376
         第20章 测试Web应用系统 377
         20.1 WebApp的测试概念 377
         20.1.1 质量维度 378
         20.1.2 WebApp环境中的错误 378
         20.1.3 测试策略 379
         20.1.4 测试策划 379
         20.2 测试过程概述 380
         20.3 内容测试 380
         20.3.1 内容测试的目标 381
         20.3.2 数据库测试 381
         20.4 用户界面测试 383
         20.4.1 界面测试策略 383
         20.4.2 测试界面机制 383
         20.4.3 测试界面语义 385
         20.4.4 可用性测试 385
         20.4.5 兼容性测试 386
         20.5 构件级测试 387
         20.6 导航测试 388
         20.6.1 测试导航语法 388
         20.6.2 测试导航语义 389
         20.7 配置测试 390
         20.7.1 服务器端问题 390
         20.7.2 客户端问题 390
         20.8 安全性测试 391
         20.9 性能测试 392
         20.9.1 性能测试的目标 392
         20.9.2 负载测试 393
         20.9.3 压力测试 393
         20.10 小结 395
         习题与思考题 396
         推荐读物与阅读信息 396
         第21章 形式化建模与验证 398
         21.1 净室策略 399
         21.2 功能规格说明 400
         21.2.1 黑盒规格说明 401
         21.2.2 状态盒规格说明 401
         21.2.3 清晰盒规格说明 402
         21.3 净室设计 402
         21.3.1 设计求精 402
         21.3.2 设计验证 403
         21.4 净室测试 404
         21.4.1 统计使用测试 404
         21.4.2 认证 405
         21.5 形式化方法的概念 406
         21.6 应用数学表示法描述形式化规格说明 408
         21.7 形式化规格说明语言 409
         21.7.1 对象约束语言 409
         21.7.2 Z规格说明语言 412
         21.8 小结 414
         习题与思考题 415
         推荐读物与阅读信息 415
         第22章 软件配置管理 417
         22.1 软件配置管理概述 418
         22.1.1 SCM场景 418
         22.1.2 配置管理系统元素 419
         22.1.3 基线 419
         22.1.4 软件配置项 420
         22.2 SCM中心存储库 421
         22.2.1 中心存储库的作用 421
         22.2.2 一般特征和内容 421
         22.2.3 SCM特征 422
         22.3 SCM过程 423
         22.3.1 软件配置中的对象标识 424
         22.3.2 版本控制 424
         22.3.3 变更控制 425
         22.3.4 配置审核 428
         22.3.5 状态报告 428
         22.4 WebApp配置管理 429
         22.4.1 WebApp配置管理的主要问题 429
         22.4.2 WebApp的配置对象 430
         22.4.3 内容管理 430
         22.4.4 变更管理 432
         22.4.5 版本控制 434
         22.4.6 审核和报告 435
         22.5 小结 436
         习题与思考题 436
         推荐读物与阅读信息 437
         第23章 产品度量 438
         23.1 产品度量框架 439
         23.1.1 测度、度量和指标 439
         23.1.2 产品度量的挑战 439
         23.1.3 测量原则 440
         23.1.4 面向目标的软件测量 440
         23.1.5 有效软件度量的属性 441
         23.2 需求模型的度量 442
         23.2.1 基于功能的度量 443
         23.2.2 规格说明质量的度量 445
         23.3 设计模型的度量 446
         23.3.1 体系结构设计度量 446
         23.3.2 面向对象设计度量 447
         23.3.3 面向类的度量—CK度量集 448
         23.3.4 面向类的度量—MOOD度量集 450
         23.3.5 Lorenz与Kidd提出的面向对象度量 451
         23.3.6 构件级设计度量 451
         23.3.7 面向操作的度量 453
         23.3.8 用户界面设计度量 453
         23.4 WebApp的设计度量 453
         23.5 源代码度量 455
         23.6 测试的度量 456
         23.6.1 用于测试的Halstead度量 456
         23.6.2 面向对象测试的度量 457
         23.7 维护的度量 457
         23.8 小结 458
         习题与思考题 459
         推荐读物与阅读信息 459
         第四部分 软件项目管理
         第24章 项目管理概念 462
         24.1 管理涉及的范围 463
         24.1.1 人员 463
         24.1.2 产品 463
         24.1.3 过程 463
         24.1.4 项目 464
         24.2 人员 464
         24.2.1 利益相关者 464
         24.2.2 团队负责人 464
         24.2.3 软件团队 465
         24.2.4 敏捷团队 467
         24.2.5 协调与沟通问题 468
         24.3 产品 469
         24.3.1 软件范围 469
         24.3.2 问题分解 469
         24.4 过程 470
         24.4.1 合并产品和过程 470
         24.4.2 过程分解 470
         24.5 项目 471
         24.6 W5HH原则 472
         24.7 关键实践 473
         24.8 小结 474
         习题与思考题 474
         推荐读物与阅读信息 474
         第25章 过程度量和项目度量 477
         25.1 过程领域和项目领域中的度量 478
         25.1.1 过程度量和软件过程改进 478
         25.1.2 项目度量 479
         25.2 软件测量 480
         25.2.1 面向规模的度量 481
         25.2.2 面向功能的度量 482
         25.2.3 调和代码行度量和功能点度量 482
         25.2.4 面向对象的度量 484
         25.2.5 面向用例的度量 485
         25.2.6 Web应用项目度量 485
         25.3 软件质量度量 486
         25.3.1 测量质量 487
         25.3.2 缺陷排除效率 488
         25.4 在软件过程中集成度量 489
         25.4.1 支持软件度量的论点 489
         25.4.2 建立基线 490
         25.4.3 度量收集、计算和评估 490
         25.5 小型组织的度量 490
         25.6 制定软件度量大纲 491
         25.7 小结 493
         习题与思考题 493
         推荐读物与阅读信息 494
         第26章 软件项目估算 496
         26.1 对估算的观察 497
         26.2 项目策划过程 498
         26.3 软件范围和可行性 498
         26.4 资源 499
         26.4.1 人力资源 499
         26.4.2 可复用软件资源 500
         26.4.3 环境资源 500
         26.5 软件项目估算 500
         26.6 分解技术 501
         26.6.1 软件规模估算 501
         26.6.2 基于问题的估算 502
         26.6.3 基于LOC估算的实例 503
         26.6.4 基于FP估算的实例 505
         26.6.5 基于过程的估算 505
         26.6.6 基于过程估算的实例 506
         26.6.7 基于用例的估算 507
         26.6.8 基于用例的估算实例 508
         26.6.9 协调不同的估算方法 508
         26.7 经验估算模型 509
         26.7.1 估算模型的结构 509
         26.7.2 COCOMOⅡ模型 510
         26.7.3 软件方程 511
         26.8 面向对象项目的估算 512
         26.9 特殊的估算技术 512
         26.9.1 敏捷开发的估算 512
         26.9.2 Web应用项目的估算 513
         26.10 自行开发或购买的决策 514
         26.10.1 创建决策树 514
         26.10.2 外包 515
         26.11 小结 517
         习题与思考题 517
         推荐读物与阅读信息 518
         第27章 项目进度安排 519
         27.1 基本概念 520
         27.2 项目进度的安排 521
         27.2.1 基本原则 522
         27.2.2 人员与工作量之间的关系 522
         27.2.3 工作量分配 524
         27.3 为软件项目定义任务集 524
         27.3.1 任务集举例 525
         27.3.2 软件工程活动求精 525
         27.4 定义任务网络 526
         27.5 进度安排 527
         27.5.1 时序图 528
         27.5.2 跟踪进度 529
         27.5.3 跟踪OO项目的进展 530
         27.5.4 WebApp项目进度安排 530
         27.6 挣值分析 533
         27.7 小结 534
         习题与思考题 534
         推荐读物与阅读信息 535
         第28章 风险管理 537
         28.1 被动风险策略和主动风险策略 538
         28.2 软件风险 538
         28.3 风险识别 539
         28.3.1 评估整体项目风险 540
         28.3.2 风险因素和驱动因子 540
         28.4 风险预测 541
         28.4.1 建立风险表 542
         28.4.2 评估风险影响 543
         28.5 风险求精 545
         28.6 风险缓解、监测和管理 545
         28.7 RMMM计划 546
         28.8 小结 548
         习题与思考题 548
         推荐读物与阅读信息 549
         第29章 维护与再工程 550
         29.1 软件维护 551
         29.2 软件可支持性 552
         29.3 再工程 552
         29.4 业务过程再工程 553
         29.4.1 业务过程 553
         29.4.2 BPR模型 554
         29.5 软件再工程 555
         29.5.1 软件再工程过程模型 555
         29.5.2 软件再工程活动 556
         29.6 逆向工程 557
         29.6.1 理解数据的逆向工程 558
         29.6.2 理解处理的逆向工程 559
         29.6.3 用户界面的逆向工程 559
         29.7 重构 560
         29.7.1 代码重构 560
         29.7.2 数据重构 560
         29.8 正向工程 561
         29.8.1 客户/服务器体系结构的正向工程 562
         29.8.2 面向对象体系结构的正向工程 563
         29.9 再工程经济学 563
         29.10 小结 564
         习题与思考题 564
         推荐读物与阅读信息 565
         第五部分 软件工程高级课题
         第30章 软件过程改进 568
         30.1 什么是SPI 569
         30.1.1 SPI的方法 569
         30.1.2 成熟度模型 570
         30.1.3 SPI适合每个人吗 571
         30.2 SPI过程 571
         30.2.1 评估和差距分析 572
         30.2.2 教育和培训 573
         30.2.3 选择和合理性判定 573
         30.2.4 设置/迁移 574
         30.2.5 评价 574
         30.2.6 SPI的风险管理 574
         30.2.7 关键的成功因素 575
         30.3 CMMI 576
         30.4 人员CMM 579
         30.5 其他SPI框架 580
         30.6 SPI的投资收益率 581
         30.7 SPI趋势 582
         30.8 小结 582
         习题与思考题 583
         推荐读物与阅读信息 583
         第31章 软件工程的新趋势 584
         31.1 技术演变 585
         31.2 观察软件工程的发展趋势 586
         31.3 识别“软趋势” 587
         31.3.1 管理复杂性 588
         31.3.2 开放世界的软件 589
         31.3.3 意外需求 589
         31.3.4 人才结构 590
         31.3.5 软件构造块 590
         31.3.6 对“价值”认识的转变 591
         31.3.7 开源 591
         31.4 技术方向 592
         31.4.1 过程趋势 592
         31.4.2 巨大的挑战 593
         31.4.3 协同开发 594
         31.4.4 需求工程 595
         31.4.5 模型驱动的软件开发 595
         31.4.6 后现代设计 596
         31.4.7 测试驱动的开发 596
         31.5 相关工具的趋势 597
         31.5.1 顺应软趋势的工具 598
         31.5.2 涉及技术趋势的工具 599
         31.6 小结 599
         习题与思考题 599
         推荐读物与阅读信息 600
         第32章 结束语 601
         32.1 再论软件的重要性 601
         32.2 人员及其构造系统的方式 602
         32.3 表示信息的新模式 602
         32.4 远景 603
         32.5 软件工程师的责任 604
         32.6 结束语 605
         附录1 UML简介 607
         附录2 面向对象概念 620
         参考文献 625
      · · · · · ·     (
收起)