第1章 软件项目管理导论 1
1.1 软件项目管理概述 1
1.1.1 项目管理的发展 1
1.1.2 什么是项目 2
1.1.3 什么是项目管理 3
1.1.4 项目管理环境 5
1.1.5 软件工程与项目管理 6
1.2 软件项目分类 8
1.3 企业愿景 9
1.4 项目成功需要的关键投入 10
1.5 软件项目开发过程 10
1.6 软件项目管理的重要性 12
1.6.1 失控项目定义 12
1.6.2 失控项目特征 12
1.6.3 技术问题 12
1.7 CMM模型 13
1.7.1 CMM概述 13
1.7.2 CMM的内部结构 15
1.7.3 CMM的5个等级 15
1.7.4 CMM中5级的发展关系 19
第2章 组织平台 20
2.1 组织机构与决策机制 21
2.1.1 组织的定义 21
2.1.2 组织平台与项目决策 25
2.2 常见软件组织形式 27
2.2.1 简单的软件开发组织 27
2.2.2 普通的软件开发组织 28
2.2.3 较成熟的软件开发组织 29
2.2.4 开发组织的选择与设定 32
2.3 CMM中的组织 32
2.3.1 CMM中的关键工作组 33
2.3.2 物理组与逻辑组 34
2.3.3 组织的完善与独立性 34
2.3.4 关键角色 34
第3章 软件项目立项 38
3.1 识别潜在项目 38
3.2 产品立项 39
3.2.1 商业目标 39
3.2.2 产品战略 40
3.2.3 产品的5个层次 42
3.2.4 产品定位战略 43
3.2.5 产品开发立项 43
3.2.6 产品立项报告 44
3.3 定制项目立项 44
3.3.1 项目选择 44
3.3.2 合同签定要注意的问题 45
3.3.3 定制项目立项报告 45
3.4 立项评审 46
3.5 技术人员在立项中的责任 46
第4章 软件开发过程 47
4.1 需求确定 47
4.1.1 把握系统需求 47
4.1.2 需求管理的实施过程 48
4.1.3 需求变更管理 50
4.1.4 需求分析提交的结果 51
4.1.5 角色划分 53
4.2 软件设计 54
4.2.1 概要设计 55
4.2.2 详细设计 56
4.3 编码 58
4.3.1 编码标准 59
4.3.2 编码风格 60
4.3.3 命名规则 61
4.4 测试 63
4.4.1 测试目标 63
4.4.2 测试原则 64
4.4.3 软件测试过程管理 65
4.5 发布、部署和维护 79
4.5.1 发布 79
4.5.2 部署 79
4.5.3 维护 81
第5章 软件估算 86
5.1 软件估算概述 86
5.2 估算步骤 89
5.2.1 确定软件范围 89
5.2.2 确定工作所需资源 89
5.2.3 确定估算内容 90
5.2.4 估算改进 91
5.3 估算方法 92
5.3.1 FP功能点估算法 92
5.3.2 LOC估算法 95
5.3.3 COCOMO估算法 95
5.3.4 软件方程式估算法 98
5.3.5 类比估算法 98
5.3.6 WBS估算法 98
5.3.7 Delphi估算法 98
5.3.8 PERT方法 99
5.3.9 估算方法的综合应用 100
5.4 估算的表达 102
5.5 估算的原则与技巧 103
第6章 软件项目计划 105
6.1 软件项目计划的层次 105
6.2 软件项目计划编制的方针 106
6.3 软件项目计划的内容 107
6.3.1 项目介绍 107
6.3.2 技术方案概述 108
6.3.3 过程计划 109
6.3.4 测试计划 109
6.3.5 组织计划 109
6.3.6 资源计划 110
6.3.7 软件估算与预算 110
6.3.8 进度表 110
6.3.9 质量计划 111
6.3.10 风险计划 111
6.3.11 变更管理计划 112
6.3.12 文档计划 112
6.3.13 培训计划 112
6.3.14 发布与实施计划 112
6.4 软件项目计划成功的关键要素 113
6.5 软件项目计划模板 113
第7章 软件配置管理 118
7.1 软件配置管理概述 118
7.1.1 术语与概念 119
7.1.2 软件配置管理定义 120
7.1.3 软件配置管理的基础 121
7.2 软件配置管理的活动 122
7.2.1 制定SCM计划 123
7.2.2 软件配置标识与维护 124
7.2.3 软件配置控制与变更管理 127
7.2.4 版本管理 131
7.2.5 软件配置状态发布 136
7.2.6 软件配置审计 136
7.2.7 软件发布管理 137
7.3 配置管理工具 138
7.3.1 几种配置管理工具介绍 138
7.3.2 配置管理工具选择 140
7.3.3 配置管理工具实施 141
7.4 成功的关键 142
7.5 职责分配与角色 143
第8章 软件质量管理 145
8.1 软件质量管理基础 145
8.1.1 软件质量 145
8.1.2 软件质量需求与质量特征 146
8.1.3 软件质量管理 152
8.2 软件质量保证 155
8.2.1 建立SQA组 156
8.2.2 确定软件质量保证活动 159
8.2.3 软件质量保证计划 160
8.3 软件质量控制 161
8.3.1 软件质量控制活动 161
8.3.2 软件质量控制方法 165
8.4 软件质量度量 170
8.5 质量管理体系 171
8.5.1 ISO 9000系列标准 171
8.5.2 软件能力成熟度模型 171
8.5.3 6希格玛方法 172
8.5.4 某软件企业质量体系结构 173
8.6 岗位与职责分配 174
第9章 软件度量 176
9.1 软件度量概述 176
9.1.1 什么是软件度量 176
9.1.2 软件度量的目标 176
9.1.3 软件度量的对象 177
9.2 利用软件度量改进组织能力 178
9.3 软件度量体系结构 178
9.3.1 软件度量过程体系结构 178
9.3.2 PSP中个体度量过程 180
9.3.3 TSP中个体度量过程 181
9.4 度量项目 182
9.5 度量成功的关键与风险 183
第10章 风险管理 185
10.1 什么是软件项目风险 186
10.2 引发风险的因素 186
10.3 风险管理概述 187
10.3.1 主动与被动风险管理 188
10.3.2 风险管理过程 188
10.4 风险识别 190
10.4.1 风险识别过程 190
10.4.2 风险识别的技术与工具 192
10.4.3 风险识别的结果 201
10.4.4 常见风险 203
10.5 风险分析 204
10.5.1 风险分析的活动 204
10.5.2 风险分析的方法 207
10.5.3 风险分析的六要素 208
10.6 风险的优先级 209
10.7 风险控制 210
10.7.1 风险管理计划 211
10.7.2 风险监督 212
10.7.3 风险化解 214
10.8 风险报告 216
10.9 风险度量与分析 217
10.9.1 风险度量与反馈 217
10.9.2 风险知识库 217
10.10 问题管理 218
10.11 成功的关键 219
第11章 软件外包管理 221
11.1 介绍 221
11.1.1 外包的好处 221
11.1.2 外包管理应考虑的问题 222
11.2 软件外包管理过程 223
11.3 考虑外包的时机 224
11.4 外包管理计划 225
11.5 承包商评估与选择 225
11.6 软件外包合同 226
11.7 外包过程监控与质量管理 228
11.7.1 需求质量是软件质量的基础 228
11.7.2 设计 229
11.7.3 编码与单元测试 229
11.7.4 成果验收 229
11.7.5 外包的管理规程 230
11.8 境外外包 230
11.9 软件外包的风险管理 231
11.10 外包成功的关键 233
11.11 承接软件外包项目需注意的问题 233
11.12 案例——某企业产品开发外包 234
第12章 人力资源管理与团队建设 236
12.1 企业人力资源管理模型 236
12.2 人力资源管理的关键 239
12.2.1 合理的薪酬 239
12.2.2 有事做 239
12.2.3 职业发展 239
12.2.4 激励 240
12.2.5 项目经理面对的人力资源管理 240
12.3 团队建设 240
12.3.1 团队结构 241
12.3.2 团队模式 242
12.3.3 团队角色 243
12.3.4 项目团队管理的目标 249
12.3.5 团队合作 249
12.3.6 激励机制 255
12.3.7 加班 258
第13章 软件知识产权管理 259
13.1 软件知识产权介绍 259
13.1.1 知识产权发展 259
13.1.2 知识产权的特点 261
13.1.3 软件著作权登记 261
13.1.4 软件著作权保护什么 262
13.1.5 开源软件与著作权 266
13.2 软件企业如何保护知识产权 269
13.2.1 建立企业的知识产权管理体制 270
13.2.2 利用相关法律综合保护 270
13.2.3 按照经济合同规范调整各种关系 271
13.2.4 尊重他人的知识产权 272
13.2.5 建议 273
13.3 与软件著作权相关的法律法规 273
13.4 案例分析 273
13.4.1 金益康知识产权案 274
13.4.2 利玛信息技术知识产权案 275
第14章 项目经理面临的政治 280
14.1 项目中的政治 280
14.1.1 识别项目中的政治“选手” 281
14.1.2 识别项目中的政治权力 283
14.1.3 明确自己在项目中的政治身份 284
14.2 测定项目的基本特征 285
14.3 识别项目组成员的承诺水平 287
14.4 项目干系人利益博弈 288
14.4.1 博弈论的基本概念 288
14.4.2 项目干系人博弈模式 289
14.4.3 项目管理博弈中的沟通管理 290
14.4.4 项目管理过程中的基本博弈分析 290
14.5 构建和谐的项目政治秩序 291
14.5.1 明确项目经理的定位 291
14.5.2 了解项目中的政治 292
14.5.3 分析项目的投入/产出效率 292
14.5.4 分析项目的风险和收益结构 293
14.5.5 构建项目经理在项目中的政治权力 294
14.5.6 构建博弈均衡 294
14.6 死亡之旅 295
14.6.1 死亡之旅的定义 295
14.6.2 发生的原因 295
14.6.3 为什么参加 297
14.6.4 案例 297
第15章 项目管理技巧 301
15.1 职业素质 301
15.1.1 道德 301
15.1.2 职业道德 301
15.1.3 项目经理的职责 306
15.1.4 项目经理应具备的职业素质与管理技能 307
15.2 沟通技巧 313
15.2.1 沟通的基础 313
15.2.2 何时放弃沟通 313
15.2.3 有效沟通模式 314
15.2.4 有效沟通技巧 316
15.2.5 高效沟通的基本步骤 317
15.2.6 怎样与领导沟通 318
15.2.7 怎样与下级沟通 320
15.2.8 与客户沟通的技巧 324
15.2.9 演讲技巧 326
15.2.10 会议沟通技巧 327
15.3 冲突管理 330
15.3.1 理解冲突 330
15.3.2 冲突管理方法 331
15.3.3 解决冲突的角色 333
15.3.4 异议管理 333
15.4 压力管理 334
15.4.1 压力成因 334
15.4.2 有效化解压力 335
15.4.3 团队的压力管理 336
15.5 时间管理 337
15.6 解决问题 340
参考文献 341