图书介绍
软件工程 实践者的研究方法PDF|Epub|txt|kindle电子书版本网盘下载
![软件工程 实践者的研究方法](https://www.shukui.net/cover/63/34585279.jpg)
- (美)罗杰·S.普莱斯曼(Roger S.Pressman),(美)布鲁斯·R.马克西姆(Bruce R.Maxim)著 著
- 出版社: 北京:机械工业出版社
- ISBN:7111548973
- 出版时间:2016
- 标注页数:666页
- 文件大小:207MB
- 文件页数:689页
- 主题词:软件工程
PDF下载
下载说明
软件工程 实践者的研究方法PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 软件的本质1
1.1 软件的本质3
1.1.1 定义软件3
1.1.2 软件应用领域4
1.1.3 遗留软件5
1.2 软件的变更本质6
1.2.1 WebApp6
1.2.2 移动App7
1.2.3 云计算7
1.2.4 产品线软件8
1.3 小结8
习题与思考题8
扩展阅读与信息资源9
第2章 软件工程10
2.1 定义软件工程学科11
2.2 软件过程11
2.2.1 过程框架12
2.2.2 普适性活动12
2.2.3 过程的适应性调整13
2.3 软件工程实践13
2.3.1 实践的精髓14
2.3.2 通用原则14
2.4 软件开发神话16
2.5 这一切是如何开始的18
2.6 小结19
习题与思考题19
扩展阅读与信息资源19
第一部分 软件过程22
第3章 软件过程结构22
3.1 通用过程模型23
3.2 定义框架活动24
3.3 明确任务集24
3.4 过程模式25
3.5 过程评估与改进27
3.6 小结28
习题与思考题28
扩展阅读与信息资源28
第4章 过程模型29
4.1 惯用过程模型30
4.1.1 瀑布模型30
4.1.2 增量过程模型32
4.1.3 演化过程模型32
4.1.4 并发模型36
4.1.5 演化过程的最终评述37
4.2 专用过程模型38
4.2.1 基于构件的开发38
4.2.2 形式化方法模型39
4.2.3 面向方面的软件开发39
4.3 统一过程40
4.3.1 统一过程的简史41
4.3.2 统一过程的阶段41
4.4 个人过程模型和团队过程模型42
4.4.1 个人软件过程42
4.4.2 团队软件过程43
4.5 过程技术44
4.6 产品和过程45
4.7 小结46
习题与思考题46
扩展阅读与信息资源47
第5章 敏捷开发48
5.1 什么是敏捷49
5.2 敏捷及变更成本50
5.3 什么是敏捷过程50
5.3.1 敏捷原则51
5.3.2 敏捷开发战略52
5.4 极限编程52
5.4.1 极限编程过程52
5.4.2 工业极限编程54
5.5 其他敏捷过程模型56
5.5.1 Scrum56
5.5.2 动态系统开发方法57
5.5.3 敏捷建模58
5.5.4 敏捷统一过程59
5.6 敏捷过程工具集60
5.7 小结61
习题与思考题61
扩展阅读与信息资源62
第6章 软件工程的人员方面64
6.1 软件工程师的特质64
6.2 软件工程心理学65
6.3 软件团队66
6.4 团队结构67
6.5 敏捷团队68
6.5.1 通用敏捷团队68
6.5.2 XP团队69
6.6 社交媒体的影响70
6.7 软件工程中云的应用71
6.8 协作工具71
6.9 全球化团队72
6.10 小结73
习题与思考题73
扩展阅读与信息资源74
第二部分 建模76
第7章 指导实践的原则76
7.1 软件工程知识77
7.2 核心原则77
7.2.1 指导过程的原则78
7.2.2 指导实践的原则78
7.3 指导每个框架活动的原则80
7.3.1 沟通原则80
7.3.2 策划原则81
7.3.3 建模原则83
7.3.4 构建原则87
7.3.5 部署原则89
7.4 工作实践90
7.5 小结91
习题与思考题92
扩展阅读与信息资源92
第8章 理解需求94
8.1 需求工程95
8.2 建立根基100
8.2.1 确认利益相关者100
8.2.2 识别多重观点100
8.2.3 协同合作101
8.2.4 首次提问101
8.2.5 非功能需求102
8.2.6 可追溯性102
8.3 获取需求103
8.3.1 协作收集需求103
8.3.2 质量功能部署105
8.3.3 使用场景106
8.3.4 获取工作产品106
8.3.5 敏捷需求获取107
8.3.6 面向服务的方法107
8.4 开发用例107
8.5 构建分析模型111
8.5.1 分析模型的元素112
8.5.2 分析模式114
8.5.3 敏捷需求工程114
8.5.4 自适应系统的需求114
8.6 协商需求115
8.7 需求监控116
8.8 确认需求117
8.9 避免常见错误117
8.10 小结118
习题与思考题118
扩展阅读与信息资源119
第9章 需求建模:基于场景的方法121
9.1 需求分析122
9.1.1 总体目标和原理122
9.1.2 分析的经验原则123
9.1.3 域分析123
9.1.4 需求建模的方法125
9.2 基于场景建模126
9.2.1 创建初始用例126
9.2.2 细化初始用例128
9.2.3 编写正式用例129
9.3 补充用例的UML模型131
9.3.1 开发活动图131
9.3.2 泳道图132
9.4 小结133
习题与思考题133
扩展阅读与信息资源133
第10章 需求建模:基于类的方法135
10.1 识别分析类135
10.2 描述属性138
10.3 定义操作138
10.4 类-职责-协作者建模140
10.5 关联和依赖145
10.6 分析包145
10.7 小结146
习题与思考题146
扩展阅读与信息资源146
第11章 需求建模:行为、模式和Web/移动App148
11.1 生成行为模型148
11.2 识别用例事件149
11.3 状态表达149
11.4 需求建模的模式152
11.4.1 发现分析模式152
11.4.2 需求模式举例:执行器-传感器153
11.5 Web/移动App的需求建模156
11.5.1 多少分析才够用156
11.5.2 需求建模的输入157
11.5.3 需求建模的输出157
11.5.4 内容模型158
11.5.5 WebApp和移动App的交互模型159
11.5.6 功能模型159
11.5.7 WebApp的配置模型160
11.5.8 导航建模161
11.6 小结161
习题与思考题162
扩展阅读与信息资源162
第12章 设计概念163
12.1 软件工程中的设计164
12.2 设计过程166
12.2.1 软件质量指导原则和属性166
12.2.2 软件设计的演化168
12.3 设计概念169
12.3.1 抽象169
12.3.2 体系结构169
12.3.3 模式170
12.3.4 关注点分离170
12.3.5 模块化171
12.3.6 信息隐蔽171
12.3.7 功能独立172
12.3.8 求精172
12.3.9 方面173
12.3.10 重构173
12.3.11 面向对象的设计概念174
12.3.12 设计类174
12.3.13 依赖倒置176
12.3.14 测试设计177
12.4 设计模型177
12.4.1 数据设计元素178
12.4.2 体系结构设计元素178
12.4.3 接口设计元素179
12.4.4 构件级设计元素180
12.4.5 部署级设计元素181
12.5 小结181
习题与思考题182
扩展阅读与信息资源183
第13章 体系结构设计184
13.1 软件体系结构185
13.1.1 什么是体系结构185
13.1.2 体系结构为什么重要186
13.1.3 体系结构描述186
13.1.4 体系结构决策187
13.2 体系结构类型188
13.3 体系结构风格188
13.3.1 体系结构风格的简单分类189
13.3.2 体系结构模式191
13.3.3 组织和求精192
13.4 体系结构考虑要素192
13.5 体系结构决策194
13.6 体系结构设计194
13.6.1 系统环境的表示195
13.6.2 定义原型195
13.6.3 将体系结构细化为构件196
13.6.4 描述系统实例197
13.6.5 WebApp的体系结构设计198
13.6.6 移动App的体系结构设计198
13.7 评估候选的体系结构设计199
13.7.1 体系结构描述语言200
13.7.2 体系结构评审201
13.8 经验学习201
13.9 基于模式的体系结构评审202
13.10 体系结构一致性检查203
13.11 敏捷性与体系结构203
13.12 小结204
习题与思考题205
扩展阅读与信息资源205
第14章 构件级设计207
14.1 什么是构件208
14.1.1 面向对象的观点208
14.1.2 传统的观点209
14.1.3 过程相关的观点211
14.2 设计基于类的构件212
14.2.1 基本设计原则212
14.2.2 构件级设计指导方针214
14.2.3 内聚性215
14.2.4 耦合性216
14.3 实施构件级设计217
14.4 WebApp的构件级设计222
14.4.1 构件级内容设计222
14.4.2 构件级功能设计222
14.5 移动App的构件级设计222
14.6 设计传统构件223
14.7 基于构件的开发223
14.7.1 领域工程223
14.7.2 构件的合格性检验、适应性修改与组合224
14.7.3 体系结构不匹配225
14.7.4 复用的分析与设计226
14.7.5 构件的分类与检索226
14.8 小结227
习题与思考题228
扩展阅读与信息资源228
第15章 用户界面设计230
15.1 黄金规则231
15.1.1 把控制权交给用户231
15.1.2 减轻用户的记忆负担232
15.1.3 保持界面一致233
15.2 用户界面的分析和设计234
15.2.1 用户界面分析和设计模型234
15.2.2 过程235
15.3 界面分析236
15.3.1 用户分析236
15.3.2 任务分析和建模237
15.3.3 显示内容分析240
15.3.4 工作环境分析240
15.4 界面设计步骤241
15.4.1 应用界面设计步骤241
15.4.2 用户界面设计模式243
15.4.3 设计问题243
15.5 WebApp和移动App的界面设计245
15.5.1 界面设计原则与指导方针245
15.5.2 WebApp和移动App的界面设计工作流248
15.6 设计评估249
15.7 小结250
习题与思考题250
扩展阅读与信息资源251
第16章 基于模式的设计253
16.1 设计模式254
16.1.1 模式的种类255
16.1.2 框架256
16.1.3 描述模式257
16.1.4 模式语言和模式库258
16.2 基于模式的软件设计258
16.2.1 不同环境下基于模式的设计258
16.2.2 用模式思考259
16.2.3 设计任务260
16.2.4 建立模式组织表260
16.2.5 常见设计错误261
16.3 体系结构模式262
16.4 构件级设计模式263
16.5 用户界面设计模式264
16.6 WebApp设计模式266
16.6.1 设计焦点266
16.6.2 设计粒度266
16.7 移动App模式267
16.8 小结268
习题与思考题268
扩展阅读与信息资源269
第17章 WebApp设计271
17.1 WebApp设计质量272
17.2 设计目标273
17.3 WebApp设计金字塔274
17.4 WebApp界面设计274
17.5 美学设计275
17.5.1 布局问题276
17.5.2 平面设计问题276
17.6 内容设计277
17.6.1 内容对象277
17.6.2 内容设计问题278
17.7 体系结构设计278
17.7.1 内容体系结构279
17.7.2 WebApp体系结构280
17.8 导航设计281
17.8.1 导航语义281
17.8.2 导航语法283
17.9 构件级设计283
17.10 小结283
习题与思考题284
扩展阅读与信息资源284
第18章 移动App设计286
18.1 挑战287
18.1.1 开发因素287
18.1.2 技术因素288
18.2 开发移动App289
18.2.1 移动App质量290
18.2.2 用户界面设计291
18.2.3 环境感知App292
18.2.4 经验教训293
18.3 移动App设计的最佳实践294
18.4 移动开发环境295
18.5 云297
18.6 传统软件工程的适用性298
18.7 小结298
习题与思考题299
扩展阅读与信息资源299
第三部分 质量管理302
第19章 质量概念302
19.1 什么是质量303
19.2 软件质量304
19.2.1 Garvin的质量维度304
19.2.2 McCall的质量因素305
19.2.3 ISO 9126质量因素306
19.2.4 定向质量因素306
19.2.5 过渡到量化观点307
19.3 软件质量困境308
19.3.1 “足够好”的软件308
19.3.2 质量的成本309
19.3.3 风险311
19.3.4 疏忽和责任311
19.3.5 质量和安全312
19.3.6 管理活动的影响312
19.4 实现软件质量313
19.4.1 软件工程方法313
19.4.2 项目管理技术313
19.4.3 质量控制313
19.4.4 质量保证313
19.5 小结314
习题与思考题314
扩展阅读与信息资源314
第20章 评审技术316
20.1 软件缺陷对成本的影响317
20.2 缺陷的放大和消除318
20.3 评审度量及其应用319
20.3.1 分析度量数据320
20.3.2 评审的成本效益320
20.4 评审的正式程度321
20.5 非正式评审322
20.6 正式技术评审323
20.6.1 评审会议324
20.6.2 评审报告和记录保存324
20.6.3 评审指导原则325
20.6.4 样本驱动评审326
20.7 产品完成后评估327
20.8 小结327
习题与思考题327
扩展阅读与信息资源328
第21章 软件质量保证329
21.1 背景问题330
21.2 软件质量保证的要素330
21.3 软件质量保证的过程和产品特性332
21.4 软件质量保证的任务、目标和度量332
21.4.1 软件质量保证的任务332
21.4.2 目标、属性和度量333
21.5 软件质量保证的形式化方法334
21.6 统计软件质量保证335
21.6.1 一个普通的例子335
21.6.2 软件工程中的六西格玛336
21.7 软件可靠性337
21.7.1 可靠性和可用性的测量337
21.7.2 软件安全338
21.8 ISO 9000质量标准339
21.9 软件质量保证计划340
21.10 小结341
习题与思考题341
扩展阅读与信息资源341
第22章 软件测试策略343
22.1 软件测试的策略性方法344
22.1.1 验证与确认344
22.1.2 软件测试组织345
22.1.3 软件测试策略——宏观346
22.1.4 测试完成的标准347
22.2 策略问题348
22.3 传统软件的测试策略348
22.3.1 单元测试348
22.3.2 集成测试350
22.4 面向对象软件的测试策略354
22.4.1 面向对象环境中的单元测试354
22.4.2 面向对象环境中的集成测试354
22.5 WebApp的测试策略355
22.6 移动App的测试策略355
22.7 确认测试356
22.7.1 确认测试准则356
22.7.2 配置评审356
22.7.3 α测试和β测试356
22.8 系统测试358
22.8.1 恢复测试358
22.8.2 安全测试358
22.8.3 压力测试358
22.8.4 性能测试359
22.8.5 部署测试359
22.9 调试技巧360
22.9.1 调试过程360
22.9.2 心理因素361
22.9.3 调试策略362
22.9.4 纠正错误363
22.10 小结363
习题与思考题364
扩展阅读与信息资源364
第23章 测试传统的应用软件366
23.1 软件测试基础367
23.2 测试的内部视角和外部视角368
23.3 白盒测试369
23.4 基本路径测试369
23.4.1 流图表示369
23.4.2 独立程序路径371
23.4.3 生成测试用例372
23.4.4 图矩阵374
23.5 控制结构测试375
23.6 黑盒测试376
23.6.1 基于图的测试方法376
23.6.2 等价类划分378
23.6.3 边界值分析378
23.6.4 正交数组测试379
23.7 基于模型的测试381
23.8 文档测试和帮助设施测试381
23.9 实时系统的测试382
23.10 软件测试模式383
23.11 小结384
习题与思考题384
扩展阅读与信息资源385
第24章 测试面向对象的应用386
24.1 扩展测试的视野387
24.2 测试OOA和OOD模型387
24.2.1 OOA和OOD模型的正确性388
24.2.2 面向对象模型的一致性388
24.3 面向对象测试策略389
24.3.1 面向对象环境中的单元测试389
24.3.2 面向对象环境中的集成测试390
24.3.3 面向对象环境中的确认测试390
24.4 面向对象测试方法390
24.4.1 面向对象概念的测试用例设计含义391
24.4.2 传统测试用例设计方法的可应用性391
24.4.3 基于故障的测试391
24.4.4 基于场景的测试设计392
24.5 类级可应用的测试方法392
24.5.1 面向对象类的随机测试392
24.5.2 类级的划分测试393
24.6 类间测试用例设计394
24.6.1 多类测试394
24.6.2 从行为模型导出的测试395
24.7 小结396
习题与思考题396
扩展阅读与信息资源397
第25章 测试WebApp398
25.1 WebApp的测试概念398
25.1.1 质量维度399
25.1.2 WebApp环境中的错误399
25.1.3 测试策略400
25.1.4 测试计划400
25.2 测试过程概述401
25.3 内容测试402
25.3.1 内容测试的目标402
25.3.2 数据库测试403
25.4 用户界面测试404
25.4.1 界面测试策略404
25.4.2 测试界面机制405
25.4.3 测试界面语义406
25.4.4 可用性测试406
25.4.5 兼容性测试408
25.5 构件级测试409
25.6 导航测试409
25.6.1 测试导航语法409
25.6.2 测试导航语义410
25.7 配置测试411
25.7.1 服务器端问题411
25.7.2 客户端问题411
25.8 安全性测试412
25.9 性能测试413
25.9.1 性能测试的目标413
25.9.2 负载测试414
25.9.3 压力测试414
25.10 小结415
习题与思考题416
扩展阅读与信息资源417
第26章 测试移动App418
26.1 测试准则419
26.2 测试策略420
26.2.1 传统方法适用吗420
26.2.2 对自动化的要求421
26.2.3 建立测试矩阵422
26.2.4 压力测试422
26.2.5 生产环境中的测试423
26.3 与用户交互的各种情况424
26.3.1 手语测试425
26.3.2 语音输入和识别425
26.3.3 虚拟键盘输入425
26.3.4 警报和异常条件426
26.4 跨界测试426
26.5 实时测试问题427
26.6 测试工具和环境427
26.7 小结428
习题与思考题429
扩展阅读与信息资源430
第27章 安全性工程431
27.1 安全性需求分析432
27.2 网络世界中的安全性与保密性433
27.2.1 社交媒体433
27.2.2 移动App434
27.2.3 云计算434
27.2.4 物联网434
27.3 安全性工程分析434
27.3.1 安全性需求获取435
27.3.2 安全性建模435
27.3.3 测度设计436
27.3.4 正确性检查436
27.4 安全性保证437
27.4.1 安全性保证过程437
27.4.2 组织和管理438
27.5 安全性风险分析438
27.6 传统软件工程活动的作用440
27.7 可信性系统验证441
27.8 小结442
习题与思考题443
扩展阅读与信息资源443
第28章 形式化建模与验证445
28.1 净室策略446
28.2 功能规格说明447
28.2.1 黑盒规格说明448
28.2.2 状态盒规格说明449
28.2.3 清晰盒规格说明449
28.3 净室设计449
28.3.1 设计细化450
28.3.2 设计验证450
28.4 净室测试451
28.4.1 统计使用测试451
28.4.2 认证452
28.5 重新思考形式化方法453
28.6 形式化方法的概念454
28.7 其他争论457
28.8 小结457
习题与思考题458
扩展阅读与信息资源459
第29章 软件配置管理460
29.1 软件配置管理概述461
29.1.1 SCM场景461
29.1.2 配置管理系统的元素462
29.1.3 基线463
29.1.4 软件配置项464
29.1.5 依赖性和变更管理464
29.2 SCM中心存储库465
29.2.1 一般特征和内容465
29.2.2 SCM特征466
29.3 SCM过程466
29.3.1 软件配置中的对象标识467
29.3.2 版本控制468
29.3.3 变更控制469
29.3.4 影响管理471
29.3.5 配置审核472
29.3.6 状态报告472
29.4 WebApp和移动App的配置管理473
29.4.1 主要问题473
29.4.2 配置对象474
29.4.3 内容管理475
29.4.4 变更管理477
29.4.5 版本控制479
29.4.6 审核和报告479
29.5 小结480
习题与思考题481
扩展阅读与信息资源481
第30章 产品度量483
30.1 产品度量框架484
30.1.1 测度、度量和指标484
30.1.2 产品度量的挑战484
30.1.3 测量原则485
30.1.4 面向目标的软件测量485
30.1.5 有效软件度量的属性486
30.2 需求模型的度量487
30.2.1 基于功能的度量487
30.2.2 规格说明质量的度量490
30.3 设计模型的度量491
30.3.1 体系结构设计的度量491
30.3.2 面向对象设计的度量493
30.3.3 面向类的度量——CK度量集493
30.3.4 面向类的度量——MOOD度量集495
30.3.5 Lorenz和Kidd提出的面向对象的度量496
30.3.6 构件级设计的度量496
30.3.7 面向操作的度量496
30.3.8 用户界面设计的度量497
30.4 WebAPP和移动App的设计度量497
30.5 源代码的度量499
30.6 测试的度量500
30.6.1 用于测试的Halstead度量500
30.6.2 面向对象测试的度量500
30.7 维护的度量501
30.8 小结502
习题与思考题503
扩展阅读与信息资源503
第四部分 管理软件项目506
第31章 项目管理概念506
31.1 管理涉及的范围507
31.1.1 人员507
31.1.2 产品507
31.1.3 过程508
31.1.4 项目508
31.2 人员508
31.2.1 利益相关者508
31.2.2 团队负责人509
31.2.3 软件团队509
31.2.4 敏捷团队511
31.2.5 协调和沟通问题512
31.3 产品513
31.3.1 软件范围513
31.3.2 问题分解513
31.4 过程514
31.4.1 合并产品和过程514
31.4.2 过程分解515
31.5 项目516
31.6 W5HH原则516
31.7 关键实践517
31.8 小结518
习题与思考题518
扩展阅读与信息资源519
第32章 过程度量与项目度量521
32.1 过程领域和项目领域中的度量522
32.1.1 过程度量和软件过程改进522
32.1.2 项目度量524
32.2 软件测量525
32.2.1 面向规模的度量526
32.2.2 面向功能的度量527
32.2.3 调和代码行度量和功能点度量527
32.2.4 面向对象的度量528
32.2.5 面向用例的度量529
32.2.6 WebApp项目的度量530
32.3 软件质量的度量531
32.3.1 测量质量531
32.3.2 缺陷排除效率532
32.4 在软件过程中集成度量533
32.4.1 支持软件度量的论点534
32.4.2 建立基线534
32.4.3 度量收集、计算和评估534
32.5 小型组织的度量535
32.6 制定软件度量大纲536
32.7 小结537
习题与思考题537
扩展阅读与信息资源538
第33章 软件项目估算540
33.1 对估算的观察541
33.2 项目计划过程542
33.3 软件范围和可行性542
33.4 资源543
33.4.1 人力资源544
33.4.2 可复用软件资源544
33.4.3 环境资源544
33.5 软件项目估算544
33.6 分解技术545
33.6.1 软件规模估算545
33.6.2 基于问题的估算546
33.6.3 基于LOC估算的实例547
33.6.4 基于FP估算的实例548
33.6.5 基于过程的估算549
33.6.6 基于过程估算的实例550
33.6.7 基于用例的估算550
33.6.8 基于用例点估算的实例551
33.6.9 调和不同的估算方法552
33.7 经验估算模型553
33.7.1 估算模型的结构553
33.7.2 COCOMOⅡ模型553
33.7.3 软件方程553
33.8 面向对象项目的估算554
33.9 特殊的估算技术555
33.9.1 敏捷开发的估算555
33.9.2 WebApp项目的估算555
33.10 自行开发或购买的决策556
33.10.1 创建决策树557
33.10.2 外包558
33.11 小结559
习题与思考题559
扩展阅读与信息资源560
第34章 项目进度安排561
34.1 基本概念562
34.2 项目进度安排概述563
34.2.1 基本原则564
34.2.2 人员与工作量之间的关系565
34.2.3 工作量分配566
34.3 为软件项目定义任务集567
34.3.1 任务集举例567
34.3.2 主要任务的细化568
34.4 定义任务网络568
34.5 进度安排569
34.5.1 时序图570
34.5.2 跟踪进度570
34.5.3 跟踪面向对象项目的进展572
34.5.4 WebApp和移动App项目的进度安排573
34.6 挣值分析575
34.7 小结576
习题与思考题577
扩展阅读与信息资源578
第35章 风险管理579
35.1 被动风险策略和主动风险策略580
35.2 软件风险580
35.3 风险识别581
35.3.1 评估整体项目风险582
35.3.2 风险因素和驱动因子583
35.4 风险预测584
35.4.1 建立风险表584
35.4.2 评估风险影响585
35.5 风险细化587
35.6 风险缓解、监测和管理587
35.7 RMMM计划589
35.8 小结590
习题与思考题590
扩展阅读与信息资源591
第36章 维护与再工程593
36.1 软件维护594
36.2 软件可支持性595
36.3 再工程596
36.4 业务过程再工程596
36.4.1 业务过程596
36.4.2 BPR模型597
36.5 软件再工程598
36.5.1 软件再工程过程模型598
36.5.2 软件再工程活动599
36.6 逆向工程600
36.6.1 理解数据的逆向工程601
36.6.2 理解处理的逆向工程602
36.6.3 用户界面的逆向工程602
36.7 重构603
36.7.1 代码重构603
36.7.2 数据重构604
36.8 正向工程604
36.8.1 客户/服务器体系结构的正向工程605
36.8.2 面向对象体系结构的正向工程606
36.9 再工程经济学606
36.10 小结607
习题与思考题607
扩展阅读与信息资源608
第五部分 软件工程高级课题612
第37章 软件过程改进612
37.1 什么是SPI613
37.1.1 SPI的方法613
37.1.2 成熟度模型614
37.1.3 SPI适合每个人吗615
37.2 SPI过程615
37.2.1 评估和差距分析616
37.2.2 教育和培训617
37.2.3 选择和合理性判定617
37.2.4 设置/迁移618
37.2.5 评价618
37.2.6 SPI的风险管理618
37.3 CMMI619
37.4 人员CMM622
37.5 其他SPI框架622
37.6 SPI的投资收益率624
37.7 SPI趋势624
37.8 小结625
习题与思考题626
扩展阅读与信息资源626
第38章 软件工程的新趋势627
38.1 技术演变628
38.2 关于纯粹工程学科的展望629
38.3 观察软件工程的发展趋势629
38.4 识别“软趋势”630
38.4.1 管理复杂性631
38.4.2 开放世界软件632
38.4.3 意外需求632
38.4.4 人才技能结合633
38.4.5 软件构造块633
38.4.6 对“价值”认识的转变634
38.4.7 开源634
38.5 技术方向634
38.5.1 过程趋势634
38.5.2 巨大的挑战635
38.5.3 协同开发636
38.5.4 需求工程636
38.5.5 模型驱动的软件开发637
38.5.6 后现代设计637
38.5.7 测试驱动的开发638
38.6 相关工具的趋势639
38.7 小结640
习题与思考题640
扩展阅读与信息资源640
第39章 结束语642
39.1 再论软件的重要性643
39.2 人员及其构造系统的方式643
39.3 表示信息的新模式644
39.4 远景645
39.5 软件工程师的责任646
39.6 写在最后647
索引648