第一篇 基础篇 3
第1章 软件项目管理导论 3
1.1软件市场 3
1.1.1软件商品特征 3
1.1.2软件的成本 4
1.1.3软件的定价 4
1.1.4软件市场的垄断现象 4
1.1.5软件市场的发展现状 5
1.2软件产业 6
1.2.1软件产业的特点 6
1.2.2软件产业在国民经济中的地位 7
1.2.3国外软件产业发展策略 8
1.2.4资料:印度新经济产业 9
1.2.5对我国软件产业发展策略的认识 13
1.3软件工程 15
1.3.1软件工程定义 15
1.3.2软件工程框架 16
1.3.3软件工程模型 19
1.4项目管理框架 21
1.4.1项目与项目管理 21
1.4.2项目管理知识体系 26
1.4.3项目管理学科的发展 28
1.5软件项目管理 30
1.5.1软件项目产品的特点 30
1.5.2软件项目失控的原因 31
1.5.3软件项目管理的内容 34
1.6小结 36
第二篇 管理篇 39
第2章 软件项目需求管理 39
案例故事 39
2.1需求工程 40
2.1.1软件需求概念 40
2.1.2软件需求层次 40
2.1.3软件需求质量评价 42
2.1.4需求工程发展历程 44
2.1.5需求工程研究内容 45
2.2需求开发 47
2.2.1需求开发活动 47
2.2.2需求获取 47
2.2.3需求分析 51
2.2.4编写需求文档 52
2.2.5需求验证 54
2.2.6案例:某公司“船代”项目的需求开发 57
2.3需求管理 59
2.3.1需求管理的必要性 59
2.3.2需求管理的困难性 61
2.3.3需求管理的目标和原则 61
2.3.4需求管理活动 63
2.3.5需求变更管理 64
2.3.6需求状态 68
2.3.7需求文档版本控制 70
2.3.8需求跟踪 71
2.3.9案例:需求变更的代价 74
2.4案例故事解析 76
2.4.1需求开发的注意事项 76
2.4.2需求管理的注意事项 77
2.5小结 78
第3章 软件项目成本管理 79
案例故事 79
3.1概述 79
3.1.1成本 80
3.1.2成本管理 80
3.1.3成本估算的时机 81
3.2软件项目规模估算 83
3.2.1 WBS 83
3.2.2 LOC估计 83
3.2.3 FP估计 84
3.2.4 PERT估计 85
3.3软件项目成本估算 86
3.3.1软件生产率估算 86
3.3.2软件项目成本估算方法 87
3.3.3软件项目成本估算模型 92
3.3.4软件项目成本估算步骤 103
3.3.5软件项目成本预算制订 106
3.3.6案例:过分乐观的估算 106
3.4软件项目成本监控 107
3.4.1成本管理常见问题 107
3.4.2软件项目成本监控要素 108
3.4.3赢得值分析法 108
3.4.4案例:某项目第4月度成本控制状态报告 111
3.5案例:精确到螺丝钉的成本控制 112
3.6案例故事解析 112
3.7小结 114
第4章 软件项目进度管理 115
案例故事 115
4.1概述 116
4.1.1时间管理原则 116
4.1.2时间管理技巧 118
4.1.3软件项目进度管理内容 119
4.1.4项目活动定义 120
4.2项目活动排序和历时估计 120
4.2.1确定活动顺序 120
4.2.2网络图 120
4.2.3甘特图 124
4.2.4项目历时估计 124
4.2.5案例:应用PERT估算项目历时 125
4.3制订项目计划 127
4.4项目进度监控 129
4.5案例:某软件研发的项目计划和进度控制 131
4.6案例故事解析 135
4.7小结 136
第5章 软件项目风险管理 138
案例故事 138
5.1概述 139
5.1.1风险 139
5.1.2软件风险 140
5.1.3软件项目风险管理 140
5.1.4软件项目风险管理的意义 141
5.2风险识别 142
5.2.1风险识别依据 142
5.2.2常见软件风险 142
5.2.3风险识别过程 143
5.2.4风险识别方法与技术 144
5.2.5案例:英达公司用TOP10法识别项目风险 146
5.3风险分析 147
5.3.1风险分析过程 147
5.3.2风险分析技巧与工具 150
5.3.3风险分析的成果 152
5.4风险跟踪与应对 152
5.4.1风险跟踪的目标和依据 153
5.4.2风险跟踪的成果 153
5.4.3风险跟踪的过程 153
5.4.4风险应对策略 155
5.4.5风险应对过程 156
5.4.6案例:金融行业使用容灾系统有效应对突发事件 157
5.5风险管理验证 159
5.6案例:风险管理保障奥运场馆建设 160
5.7案例故事解析 161
5.8小结 163
第6章 软件项目配置管理 164
案例故事 164
6.1概述 165
6.1.1基本概念 165
6.1.2软件配置管理定义 167
6.1.3软件配置管理过程 168
6.1.4软件配置管理过程活动 169
6.2配置管理策划 169
6.2.1软件配置管理组织 169
6.2.2软件配置管理职责 171
6.2.3软件配置管理文件体系 172
6.2.4配置管理计划的大纲 173
6.3配置管理功能 175
6.3.1配置标识 175
6.3.2版本控制 177
6.3.3变更管理 178
6.3.4配置状态报告 181
6.3.5案例:Kevin团队使用配置管理加快开发速度 182
6.4配置审核 184
6.4.1配置审核概念 184
6.4.2配置审核内容 184
6.4.3配置审核的种类 185
6.4.4软件交付 186
6.4.5软件配置管理的功能表 186
6.5基于构件的配置管理 187
6.5.1软件复用 187
6.5.2软件构件技术 188
6.5.3基于构件的版本管理 190
6.5.4基于构件的配置管理 192
6.5.5案例:河电集团某研究所的系统集成 194
6.6案例故事解析 196
6.7小结 198
第7章 软件项目资源管理 199
案例故事 199
7.1人力资源管理 199
7.1.1人力资源管理概念 200
7.1.2人力资源分析与策划 201
7.1.3人力资源的获取 204
7.1.4团队组织和分工 205
7.1.5团队建设 208
7.1.6人力资源评估 210
7.1.7案例:诺基亚如何建设优秀团队 211
7.2软件资源管理 213
7.2.1软件资源基本概念 213
7.2.2软件资源的复用方式 213
7.2.3软件复用的粒度 214
7.2.4可复用软件资源的管理 215
7.2.5 CASE工具及其管理 217
7.3硬件资源管理 219
7.3.1硬件资源管理概念 219
7.3.2硬件设备的经济管理 219
7.3.3硬件设备的技术管理 220
7.4案例故事解析 221
7.5小结 222
第8章 软件项目质量管理 224
案例故事 224
8.1质量管理的概念 224
8.1.1软件质量 224
8.1.2软件产品质量与过程质量 226
8.1.3软件质量保证 227
8.2软件评审 227
8.3软件测试 229
8.3.1软件测试的概念 229
8.3.2软件测试类型 230
8.3.3测试的原则 234
8.3.4测试计划 235
8.3.5测试用例的开发 236
8.3.6测试的执行与报告 237
8.3.7案例:微软的软件测试技术 237
8.4软件缺陷跟踪 239
8.5软件缺陷预防 240
8.5.1问题的提出 240
8.5.2缺陷预防的原则 240
8.5.3缺陷预防的步骤 241
8.6 ISO 9000:2000质量认证体系 243
8.6.1 ISO 9000的概念 243
8.6.2 ISO 9000标准的8项质量管理原则 245
8.6.3获得ISO 9000认证的条件和程序 246
8.7能力成熟度集成模型CMMI 247
8.7.1 CMM的提出 247
8.7.2 CMM的基本内容 248
8.7.3从CMM到CMMI 250
8.7.4 CMMI的表示 251
8.7.5 CMMI过程的可视性 257
8.7.6 CMMI的实施 258
8.7.7 CMMI的评估 260
8.8案例故事解析 263
8.9小结 263
第三篇 实践篇 267
第9章 Rational统一过程 267
9.1什么是Rational统一过程 267
9.2核心概念 269
9.2.1架构 269
9.2.2工作流程 270
9.2.3角色 274
9.2.4活动 274
9.2.5步骤 275
9.2.6工件 275
9.3 6个最佳实践 277
9.3.1迭代式的软件开发 278
9.3.2需求管理 279
9.3.3使用基于构件的架构,以架构为中心的过程 281
9.3.4可视化软件建模 281
9.3.5验证软件质量 282
9.3.6控制软件变更 282
9.3.7案例:利用视图和用例来捕获和描述需求 282
9.4 RUP的二维结构 286
9.4.1动态结构:阶段和迭代时间轴 287
9.4.2静态结构:工作流程轴 295
9.5核心工作流程 296
9.5.1业务建模工作流程 296
9.5.2需求工作流程 297
9.5.3分析和设计工作流程 299
9.5.4实现工作流程 300
9.5.5测试工作流程 302
9.5.6部署工作流程 304
9.5.7配置和变更管理工作流程 306
9.5.8项目管理工作流程 306
9.5.9环境工作流程 308
9.6小结 309
第10章 敏捷软件开发 311
10.1敏捷软件开发的诞生 311
10.2敏捷软件开发宣言 313
10.3敏捷宣言遵循的原则 315
10.4对比其他的方法 317
10.5敏捷软件开发的适用性 318
10.6极限编程概述 318
10.6.1价值观 319
10.6.2原则 319
10.6.3行为 320
10.6.4实践 320
10.6.5极限编程小结 327
10.7 Scrum 327
10.7.1一个简单的框架 328
10.7.2 Scrum过程 328
10.7.3 3个角色 329
10.7.4 3项活动 330
10.7.5 3种工具 331
10.7.6自适应的项目管理 333
10.7.7 Scrum较传统开发模型的优点 334
10.7.8案例:Scrum在开发中的应用 334
10.8小结 337
第11章 将6σ管理引入软件开发 339
11.1 6σ的故事 339
11.2 6σ理论基础 341
11.2.1平均值屏蔽了问题,波动成了焦点 341
11.2.2“波动”问题的数学描述 343
11.2.3 6σ的数学含义 345
11.2.4其他术语 348
11.3 6σ管理 349
11.4使用6σ改善软件开发过程 352
11.4.1项目启动和问题定义阶段 353
11.4.2系统分析 354
11.4.3系统设计 356
11.4.4构造 356
11.4.5测试和质量保证 356
11.4.6交付和维护 357
11.5案例:如何实施DMAIC过程 358
11.5.1定义阶段 358
11.5.2度量阶段 363
11.5.3分析阶段 367
11.5.4改进阶段 370
11.5.5控制阶段 372
11.6小结 373
附录A 可行性分析报告 374
附录B 需求规格说明书 377
附录C 项目开发计划 379
附录D 概要设计说明书 381
附录E 详细设计说明书 383
附录F 用户操作手册 384
附录G 测试计划 387
附录H 测试分析报告 389
附录I 程序维护手册 391
附录J 项目总结报告 396
附录K ISO 9001:2000标准的内容 397
参考文献 409