第1章 软件项目管理引言
1.1 引言
1.2 什么是项目
1.3 软件项目和其它类型的项目
1.4 合同管理和技术项目管理
1.5 软件项目管理覆盖的活动
1.6 计划、方法和方法学
1.7 软件项目的分类方法
1.7.1 信息系统与嵌入式系统
1.7.2 目的与产品
1.8 什么是管理
1.9 软件项目的问题
1.10 设定目的
1.10.1 子目的和目标
1.10.2 有效性度量
1.11 项目相关人员
1.12 业务案例
1.13 需求规格说明
1.14 管理控制
1.15 小结
附件1 可行性研究内容列表
附件2 项目计划内容列表
1.16 进一步的练习
第2章 步进式方法:项目策划概述
2.1 步进式项目策划概述
2.2 第0步:选择项目
2.3 第1步:标识项目的范围和目的
2.4 第2步:标识项目的基础设施
2.5 第3步:分析项目的特征
2.6 第4步:标识项目的产品和活动
2.7 第5步:估计每个活动的工作量
2.8 第6步:标识活动的风险
2.9 第7步:分配资源
2.10 第8步:评审/发布计划
2.11 第9步和第10步:执行计划并进行较低层次的策划
2.12 小结
2.13 进一步的练习
第3章 项目评价
3.1 引言
3.2 战略评估
3.2.1 项目群管理
3.2.2 业务量管理
3.3 技术评估
3.4 成本效益分析
3.5 现金流预测
3.6 成本效益评价技术
3.6.1 净利润
3.6.2 回收期
3.6.3 投资回报率
3.6.4 净现值
3.6.5 内部回报率
3.7 风险评价
3.7.1 风险标识和排等级
3.7.2 风险和净现值
3.7.3 成本效益分析
3.7.4 风险剖面分析
3.7.5 使用决策树
3.8 小结
3.9 进一步的练习
第4章 选择合适的项目方法
4.1 引言
4.2 选择技术
4.2.1 将项目标识为目的驱动或产品驱动
4.2.2 分析其它项目特征
4.2.3 标识高级别项目风险
4.2.4 考虑与实现有关的用户需求
4.2.5 选择通用的生命周期方法
4.3 技术计划内容清单
4.4 过程模型的选择
4.5 结构与交付速度
4.6 瀑布模型
4.7 V过程模型
4.8 螺旋模型
4.9 软件原型开发
4.10 分类原型的其它方法
4.10.1 要从原型中学到什么
4.10.2 原型要做到什么程度
4.10.3 哪些要进行原型化
4.11 在原型开发期间控制变更
4.12 增量式交付
4.12.1 优点
4.12.2 缺点
4.12.3 增量式交付计划
4.12.4 标识系统目的
4.12.5 创建开放的技术计划
4.12.6 计划增量
4.12.7 增量示例
4.13 动态系统开发方法
4.14 极限编程
4.15 管理迭代过程
4.16 选择最合适的过程模型
4.17 小结
4.18 进一步的练习
第5章 软件工作量估计
5.1 引言
5.2 在何处进行估计
5.3 估计过高和估计过低的问题
5.4 软件估计基础
5.4.1 需要历史数据
5.4.2 工作的度量
5.4.3 复杂性
5.5 软件工作量估计技术
5.5.1 由底向上估计
5.5.2 自顶向下法和参数模型
5.6 专家判断
5.7 类比估计
5.8 Albrecht功能点分析
5.9 Mark II功能点
5.10 对象点
5.11 面向过程代码的方法
5.12 COCOMO:一个参数模型
5.13 小结
5.14 进一步的练习
第6章 活动策划
6.1 引言
6.2 活动策划的目的
6.3 何时计划
6.4 项目进度表
6.5 项目和活动
6.5.1 定义活动
6.5.2 标识活动
6.6 确定活动的次序和进度
6.7 网络策划模型
6.8 网络模型的公式化表示
6.8.1 构造优先网络
6.8.2 描绘滞后活动
6.8.3 吊床活动
6.8.4 标注约定
6.9 增加时间维
6.10 正向遍历
6.11 反向遍历
6.12 标识关键路径
6.13 活动缓冲期
6.14 缩短项目周期
6.15 标识关键活动
6.16 活动-箭头网络
6.16.1 活动-箭头网络的规则和约定
6.16.2 使用虚活动
6.16.3 描绘滞后的活动
6.16.4 给活动加标签
6.16.5 网络分析
6.17 小结
6.18 进一步的练习
第7章 风险管理
7.1 引言
7.2 风险的本质
7.3 风险的类型
7.3.1 估计错误
7.3.2 策划假设
7.3.3 不可预计的事
7.4 管理风险
7.5 危险标识
7.6 危险分析
7.6.1 风险危害度
7.6.2 设置风险优先级
7.6.3 风险缓解效果
7.7 风险策划和控制
7.8 评价进度风险
7.8.1 使用PERT评价不确定性的影响
7.8.2 使用期望周期
7.8.3 活动标准偏差
7.8.4 满足目标的可能性
7.8.5 计算每个项目事件的标准偏差
7.8.6 计算z值
7.8.7 转换z值为概率
7.8.8 PERT的优点
7.8.9 蒙特卡洛仿真
7.9 小结
7.10 进一步的练习
第8章 资源分配
8.1 引言
8.2 资源的性质
8.3 标识资源需求
8.4 资源调度
8.5 创建关键路径
8.6 计算成本
8.7 特定的细节
8.8 发布资源进度表
8.9 成本进度
8.10 调度顺序
8.11 小结
8.12 进一步的练习
第9章 监督与控制
9.1 引言
9.2 创建框架
9.2.1 责任
9.2.2 进展评估
9.2.3 设置检查点
9.2.4 取快照
9.3 收集数据
9.3.1 局部完成报告
9.3.2 风险报告
9.4 进展可视化
9.4.1 甘特图
9.4.2 延迟图
9.4.3 球形图
9.4.4 时间线
9.5 成本监督
9.6 获得价值
9.6.1 基线预算
9.6.2 监督获得价值
9.7 优先级控制
9.8 使项目返回目标
9.8.1 缩短关键路径
9.8.2 重新考虑优先需求
9.9 变更控制
9.9.1 配置库管理员角色
9.9.2 变更控制规程
9.9.3 系统范围的变更
9.10 小结
9.11 进一步的练习
第10章 管理合同
10.1 引言
10.2 合同的种类
10.2.1 固定价格合同
10.2.2 时间和材料合同
10.2.3 每单位固定价格合同
10.2.4 公开的投标过程
10.2.5 受限制的投标过程
10.2.6 已商定的规程
10.3 合同部署的阶段
10.3.1 需求分析
10.3.2 评估计划
10.3.3 邀请投标
10.3.4 评估提议
10.4 典型的合同条款
10.4.1 定义
10.4.2 协议的形式
10.4.3 供应的商品和服务
10.4.4 软件的所有权
10.4.5 环境
10.4.6 客户承诺
10.4.7 验收规程
10.4.8 标准
10.4.9 项目和质量管理
10.4.10 时间表
10.4.11 价格和付款方式
10.4.12 其它法律上的需求
10.5 合同的管理
10.6 提交和验收
10.7 小结
10.8 进一步的练习
第11章 管理人员和组织群组
11.1 引言
11.2 理解行为
11.3 组织行为:背景
11.4 为该工作选择合适人选
11.5 用最好的方法进行教育
11.6 动机
11.6.1 Taylorist模型
11.6.2 Maslow的需要层次
11.6.3 Herzberg的双因素理论
11.6.4 动机的期待理论
11.7 Oldham-Hackman工作特征模型
11.8 在组内工作
11.9 成为群组
11.10 决策制定
11.10.1 制定正确决策的心理障碍
11.10.2 小组决策的制定
11.10.3 正确的小组决策制定的障碍
11.10.4 减少小组决策制定的缺点的措施
11.11 领导能力
11.12 组织结构
11.12.1 正式的与非正式的结构
11.12.2 层次化的方法
11.12.3 员工与生产线
11.12.4 部门化
11.12.5 非自我编程
11.12.6 主程序员组
11.13 压力
11.14 健康和安全
11.15 小结
11.16 进一步的练习
第12章 软件质量
12.1 引言
12.2 软件质量在项目策划中的位置
12.3 软件质量的重要性
12.4 定义软件质量
12.4.1 产品操作质量因素
12.4.2 产品修订质量因素
12.4.3 产品转变质量因素
12.5 ISO 9126
12.6 实用的软件质量度量方法
12.6.1 可靠性
12.6.2 可维护性
12.6.3 可扩展性
12.7 产品与过程质量管理
12.8 外部标准
12.8.1 BS EN ISO 9001:2000
12.8.2 BS EN ISO 9001:2000 QMS需求概述
12.8.3 能力过程模型
12.8.4 评估软件产品
12.9 有助于提高软件质量的技术
12.9.1 审查
12.9.2 Fagan方法的普遍原理
12.9.3 结构化编程和净室软件开发
12.9.4 形式化方法
12.9.5 软件质量循环
12.9.6 质量循环解决的问题
12.9.7 质量循环的效率
12.10 质量计划
12.11 小结
12.12 进一步的练习
第13章 小型项目
13.1 引言
13.2 学生项目的一些问题
13.2.1 使用不熟悉的工具
13.2.2 不确定的设计需求
13.2.3 不完整的系统
13.2.4 缺少客户对项目的承诺
13.3 项目计划的内容
13.4 小结
附录A PRINCE 2概述
附录B BS 6079:1996概述
附录C 项目群管理
附录D ISO 12207概述
附录E 项目管理知识体系
附录F 练习答案
进一步的阅读材料
索引