以案例的形式讲述了软件项目管理的全过程,借助路线图讲述了项目管理的理论、方法以及技巧,覆盖项目管理十大知识域的相关内容,并重点强调了软件项目管理实施过程。
信息产业与软件产业的不断发展对软件工程技术提出了更高的要求,纵观目前软件产业的发展,软件工程技术必将朝着智能化、综合化、服务化、业务化等方向发展。软件人员不能只是低头编程,而要站在更高的位置,以更长远的眼光看软件发展。针对一个软件项目,好的软件人员应该高瞻远瞩,学会规划,并以最小的代价获得项目的成功。新技术的发展使得项目的成功更多地依赖软件管理过程,因此软件项目管理者应该具备更高的素质,要站在发展的角度规划和管理软件项目,紧跟技术发展潮流,培养前瞻意识和超前意识。
本书第4版基于前3版内容,在广泛参考和吸收教材使用者的意见和建议的基础上修订而成。本书第4版继续沿用前3版教材以案例贯穿始终的形式,分成“项目初始”“项目计划”“项目执行控制”“项目结束”“项目实践”五篇讲述软件项目管理的实施过程, 其中“项目实践”篇是新增加的内容。教材还完善和增加了敏捷项目管理的内容,从项目初始到项目结束乃至项目实践的整个过程都强调了敏捷管理思路。“项目实践”篇讲述了课程实践流程,增加了平台工具操作及实践结果的展示,对相关实践环节提供了在线视频播放的立体化功能。
本书配套的课程网站网址为http://www.icourse163.org/course/BUPT-1003557005。
本书综合了多个学科领域,知识结构完整,逻辑清晰,案例贯穿始终,注重实效。通过学习本书,读者可以在短时间内掌握软件项目管理的基本知识并具备实践能力。本书讲述如何管理软件项目以保证项目的成功,而如何构建软件项目可以参考本书的配套教程《软件工程案例教程:软件项目开发实践(第3版)》。
本书由机械工业出版社出版,书号为978-7-111-55984-9。——编辑注
本书第4版由韩万江和姜立新编写,在编写过程中参考了前3版教材使用者的反馈,很多高校教师和学生给我们提出了很多很好的建议,另外,韩冰、郭士榕、孙秋生、岳鹏、孙泉、韩馀林等老师也给予我们很多的帮助和指导,在此一并表示衷心感谢!本书也得到了北京邮电大学的全力支持, 并作为学校精品教材立项,在此表示感谢!
当然,由于作者水平有限,书中难免有疏漏之处,恳请各位读者批评指正,并希望读者一如既往地将意见、建议和体会反馈给我,作为以后版本修订的参考。我的E-mail是casey_han@263.net。
韩万江
2019年2月于北京
前言
第1章 软件项目管理概述1
1.1 项目与软件项目1
1.1.1 项目及其特征1
1.1.2 项目群与项目、项目与子项目的关系2
1.1.3 软件项目2
1.1.4 软件项目组成要素3
1.1.5 项目目标实现的制约因素3
1.2 项目管理3
1.2.1 项目管理背景4
1.2.2 项目管理定义4
1.2.3 软件项目管理的特征及重要性5
1.3 项目管理知识体系6
1.3.1 项目管理的知识领域6
1.3.2 标准化过程组13
1.4 软件项目管理知识体系15
1.4.1 软件过程定义15
1.4.2 过程管理在软件项目中的作用17
1.4.3 过程管理与项目管理知识体系的关系17
1.5 敏捷项目管理18
1.5.1 软件项目面临的挑战18
1.5.2 敏捷思维18
1.6 本书的组织结构20
1.7 小结22
1.8 练习题22
第一篇 项目初始
第2章 项目确立26
2.1 项目评估26
2.1.1 项目启动背景26
2.1.2 可行性分析27
2.1.3 成本效益评价指标27
2.2 项目立项28
2.2.1 立项流程28
2.2.2 自造-购买决策29
2.3 项目招投标30
2.3.1 甲方招标书定义31
2.3.2 乙方项目分析与竞标准备31
2.3.3 招标过程33
2.3.4 合同签署34
2.4 项目章程35
2.4.1 项目章程的定义35
2.4.2 敏捷项目章程37
2.4.3 项目经理能力和职责37
2.5 “医疗信息商务平台”招投标案例分析39
2.5.1 甲方招标书39
2.5.2 乙方投标书39
2.5.3 项目合同40
2.6 小结40
2.7 练习题41
第3章 生存期模型42
3.1 生存期概述42
3.1.1 生存期的定义42
3.1.2 生存期的类型42
3.2 预测型生存期模型44
3.2.1 瀑布模型44
3.2.2 V模型45
3.3 迭代型生存期模型46
3.4 增量型生存期模型47
3.5 敏捷型生存期模型49
3.5.1 Scrum50
3.5.2 XP53
3.5.3 OpenUP56
3.5.4 看板方法57
3.5.5 Scrumban方法58
3.5.6 精益模型58
3.5.7 持续交付58
3.5.8 DevOps59
3.5.9 其他敏捷模型简介59
3.6 混合型生存期模型60
3.7 “医疗信息商务平台”生存期模型案例分析61
3.8 小结63
3.9 练习题63
第二篇 项目计划
第4章 软件项目范围计划——需求管理66
4.1 软件需求定义66
4.2 需求管理过程67
4.2.1 需求获取68
4.2.2 需求分析69
4.2.3 需求规格编写70
4.2.4 需求验证71
4.2.5 需求变更73
4.3 传统需求分析方法75
4.3.1 原型分析方法75
4.3.2 基于数据流建模方法76
4.3.3 基于UML建模方法77
4.3.4 功能列表方法78
4.4 敏捷项目需求分析79
4.4.1 产品待办事项列表80
4.4.2 待办事项列表的细化80
4.4.3 用户故事80
4.5 “医疗信息商务平台”需求管理案例分析81
4.5.1 需求规格说明书81
4.5.2 需求变更控制系统93
4.6 小结93
4.7 练习题93
第5章 软件项目范围计划——任务分解95
5.1 任务分解定义95
5.1.1 WBS95
5.1.2 工作包97
5.1.3 任务分解的形式97
5.1.4 WBS字典98
5.2 任务分解过程与方法98
5.2.1 任务分解过程98
5.2.2 任务分解方法99
5.3 任务分解结果101
5.3.1 任务分解结果的检验101
5.3.2 任务分解的重要性102
5.4 敏捷项目的任务分解103
5.4.1 用户故事分解过程103
5.4.2 敏捷分解检验104
5.4.3 敏捷分解结果104
5.5 “医疗信息商务平台”任务分解案例分析104
5.6 小结106
5.7 练习题106
第6章 软件项目成本计划108
6.1 成本估算概述108
6.1.1 项目规模与成本的关系109
6.1.2 成本估算的定义109
6.1.3 成本估算过程109
6.2 成本估算方法110
6.2.1 代码行估算法111
6.2.2 功能点估算法111
6.2.3 用例点估算法117
6.2.4 类比估算法120
6.2.5 自下而上估算法122
6.2.6 三点估算法122
6.2.7 参数模型估算法概述123
6.2.8 参数模型估算法——COCOMO模型124
6.2.9 参数模型估算法——COCOMO 81模型124
6.2.10 参数模型估算法——COCOMO Ⅱ模型127
6.2.11 参数模型估算法——Walston-Felix模型131
6.2.12 参数模型估算法——基于神经网络估算131
6.2.13 专家估算法138
6.2.14 猜测估算法139
6.2.15 估算方法综述139
6.3 敏捷项目成本估算140
6.3.1 故事点估算141
6.3.2 故事点估算标准141
6.3.3 快速故事点估算方法142
6.4 成本预算143
6.5 “医疗信息商务平台”成本估算案例分析145
6.5.1 用例点估算过程145
6.5.2 自下而上成本估算过程146
6.6 小结148
6.7 练习题148
第7章 软件项目进度计划150
7.1 关于进度估算150
7.2 任务确定151
7.2.1 任务定义151
7.2.2 任务关联