《21世纪高等学校规划教材·软件工程:软件项目管理》从软件项目管理的实际出发,以适应本科专业的教学和实践为宗旨,在充分吸收国内外软件项目管理思想精华的基础上,依据作者多年软件项目开发与管理以及教学与科研经验,结合国内软件项目特点而编写,指出了提高软件开发效率进而使项目获得成功的有效途径。
全书共分为12章,分别讲述: 软件项目管理概述、软件开发过程管理、进度计划管理、可行性研究、招标投标管理、合同管理、质量管理、成本管理、配置管理、风险管理、人力资源管理、收尾管理。在阐明基本知识的同时,着重运用技术和方法解决实际问题。
《21世纪高等学校规划教材·软件工程:软件项目管理》适合作为高等学校计算机及相关专业本科生和研究生“软件项目管理”课程的教材,适合培训项目经理和软件开发技术人员,也是希望了解软件项目管理各类读者的参考书。
随着计算机技术的应用日益广泛,计算机程序日益复杂,软件开发出现的问题越来越难以解决。加强软件项目管理,可以提高劳动生产效率、提高软件质量、降低成本、减少风险。软件项目管理是一门艺术,需要平衡竞争目标、管理风险并克服制约因素,最终成功交付满足用户需要的软件产品。实际上,很少有软件按照要求的进度、成本、质量、功能、性能等要素成功交付,这也表明了软件项目管理的难度。只有加强软件项目管理,才能保证生产出高质量的软件产品,从而满足日益增长的软件需求。
本书从软件项目管理的实际出发,遵循软件工程的思想和方法,为软件项目管理提供了一套切实可行的方法和思路,是软件项目管理人员的工作指导和行为指南。运用信息技术和管理科学的理论与方法,对软件项目开发全过程进行管理,重点解决开发过程管理中的实际问题。软件项目有其独特性,开发的成功不仅依赖于成熟先进的方法和技术,更依赖于人的素质和技能。在管理过程中,要理论联系实际、勤于思考、精心策划、善于沟通、互相学习、勇于实践、及时总结。在深刻理解软件工程思想和方法的同时,不断探索新的管理技术和管理方法,以此促进软件项目管理学科的发展。
全书共由12章组成,主要内容和结构如下。
第1章软件项目管理概述。主要讲述: 项目及其生命周期的相关概念、管理者的知识结构和技能、项目管理的相关内容、软件项目管理的内容与知识体系、项目管理工具的功能和常见的项目管理工具、工作分解结构的原理及其应用。
第2章软件开发过程管理。主要讲述: 软件生命周期、软件过程、软件开发过程、软件开发过程模型(包括瀑布模型、原型模型等8个模型)、软件开发过程模型选择、传统开发过程存在的问题、从管理和技术两方面实施软件开发过程管理。
第3章进度计划管理。主要讲述: 进度计划的作用、进度计划管理的过程、项目范围管理、软件项目的活动、进度计划编制的技术和方法(甘特图、计划评审技术、关键路径法)、进度计划的表达形式、进度计划编制、进度计划控制。
第4章可行性研究。主要讲述: 可行性研究的含义与作用、可行性研究的内容(技术可行性、经济可行性、社会可行性)、可行性研究的阶段、成本/效益分析、方案选择与决策、可行性研究报告的描述方法(系统流程图、数据流图、数据字典)。
第5章招标投标管理。主要讲述: 招标投标的作用、招标投标的基本知识、招标管理、投标管理、开标、评标、定标、做好投标工作策略(做好投标前的准备工作、制订全面的投标计划、投标报价策略与方法,应对投标中的突发问题)。
第6章合同管理。主要讲述: 合同准备(合同形式、合同内容、订立过程)、合同谈判、合同补遗、合同签署(正式合同文件、无效技术合同)、合同履行、合同变更和解除、变更和解除的法律责任、合同争议(产生原因、常见争议、解决方式、争议预防)。
第7章质量管理。主要讲述: 软件质量与软件质量管理、软件质量策划、软件质量计划、质量保证活动、质量保证关键技术、软件质量控制模型、质量控制的方法与技术、软件质量改进、软件评审、软件质量度量过程、质量度量模型、ISO 9000质量管理体系。
第8章成本管理。主要讲述: 软件成本特点、软件成本构成、软件成本影响因素、软件资源计划、代码行法软件规模估算、功能点法软件开发成本估算、COCOMOⅡ软件开发成本估算、软件维护成本估算、软件成本预算、软件成本控制(流程、措施、方法)。
第9章配置管理。主要讲述: 配置管理需求分析、配置管理的作用、配置管理的相关概念、配置管理的组织、配置管理的主要活动(配置标识、版本控制、变更控制、状态报告、配置审核)、配置管理工具(选择标准、主要工具简介、常用工具比较分析)。
第10章风险管理。主要讲述: 软件项目风险类型、风险管理过程、风险管理规划、风险识别(识别活动、识别方法、识别结果)、定性风险分析与评估、定量风险分析与评估、分析与评估工作成果、风险应对与控制、风险监控过程、风险监控技术。
第11章人力资源管理。主要讲述: 软件项目人力资源的特征、人力资源管理的主要内容、人员的组织与分工、人力资源计划、项目经理(技能要求、素质与职责)、团队建设过程、打造高效团队的策略、软件企业人力资源管理的主要措施。
第12章收尾管理。主要讲述: 软件项目收尾的主要内容、成功收尾的特征与策略、软件项目验收、软件错误的严重性等级、软件项目移交、软件移交计划、软件项目清算、软件项目后评价(指标体系、指标权重的确定、后评价方法)、项目开发总结。
本书可以为多类读者服务,通俗易懂,实例丰富。既详细讲述了软件项目管理的基本思想和方法,又配合实例对一些关键技术问题进行了深入研究,非常适合作为高等学校计算机及相关专业本科生和研究生的“软件项目管理”相关课程的教材,同时也适合软件项目开发人员、维护人员、管理人员自学和参考,读者可根据自己的需要对本书部分章节内容有选择地进行学习。
渤海大学的李春杰、陈亮、李哲、孙蕾、刘维学、赵立双、彭霞、李仲秋、朱萍、陆璐、崔红霞等以及中国科学院的邢涛副研究员参加了本书的编写和校对工作,在此一并表示感谢。
鉴于作者水平有限,时间仓促,书中难免存在遗漏、欠缺和不足,敬请广大读者不吝赐教。
作者
2012年3月
第1章 软件项目管理概述
1.1 项目
1.1.1 项目的定义与内涵
1.1.2 项目的特征与属性
1.1.3 项目的生命周期
1.1.4 项目生命周期的重要概念
1.2 管理
1.2.1 管理的意义
1.2.2 管理的应用范围
1.2.3 管理者的知识结构和技能
1.3 项目管理
1.3.1 项目管理的定义
1.3.2 项目管理的相关内容
1.4 软件项目管理概述
1.4.1 软件项目难以管理的原因
1.4.2 软件项目管理的内容与知识体系
1.4.3 软件项目管理的原则
1.5 项目管理工具
1.5.1 项目管理工具的功能
1.5.2 常见的项目管理工具简介
1.5.3 选择项目管理工具的标准
1.5.4 应用项目管理工具的优点
1.6 工作分解结构
1.6.1 工作分解结构的概念
1.6.2 工作分解结构的作用
1.6.3 建立工作分解结构的原则
1.6.4 建立工作分解结构的方法
1.6.5 工作分解结构的分解准则
1.6.6 工作分解结构举例
思考题
第2章 软件开发过程管理
2.1 软件生命周期
2.2 软件过程
2.3 软件开发过程
2.4 软件开发过程模型
2.4.1 瀑布模型
2.4.2 V模型
2.4.3 原型模型
2.4.4 螺旋模型
2.4.5 增量模型
2.4.6 RAD模型
2.4.7 软件包模型
2.4.8 遗留系统维护模型
2.5 软件开发过程模型选择
2.6 传统开发过程存在的问题
2.6.1 管理方面
2.6.2 技术方面
2.7 实施软件开发过程管理
2.7.1 管理方面
2.7.2 技术方面
思考题
第3章 进度计划管理
3.1 软件项目进度计划概述
3.1.1 软件开发计划的内容
3.1.2 进度计划的作用
3.1.3 进度计划管理的过程
3.2 软件项目的活动
3.2.1 项目范围管理
3.2.2 定义活动
3.2.3 活动排序
3.3 进度计划编制的技术和方法
3.3.1 甘特图
3.3.2 计划评审技术
3.3.3 关键路径法
3.4 进度计划的表达形式
3.5 进度计划编制
3.5.1 任务的并行性
3.5.2 编制计划遵循的原则
3.5.5 进度计划编制过程
3.6 进度计划控制
3.6.1 进度计划控制的难点
3.6.2 进度计划控制的手段
思考题
第4章 可行性研究
4.1 可行性研究的含义
4.2 可行性研究的作用
4.3 可行性研究的内容
4.3.1 技术可行性
4.3.2 经济可行性
4.3.3 社会可行性
4.4 可行性研究的阶段
4.4.1 机会研究
4.4.2 初步可行性研究
4.4.3 可行性研究概述
4.4.4 项目评估决策
4.5 成本/效益分析
4.5.1 投资回收期
4.5.2 投资收益率
4.6 方案选择与决策
4.6.1 确定型决策
4.6.2 非确定型决策
4.7 可行性研究报告的描述方法
4.7.1 系统流程图
4.7.2 数据流图
4.7.3 数据字典
思考题
第5章 招标投标管理
5.1 招标投标管理概述
5.1.1 招标投标的作用
5.1.2 招标投标的基本知识
5.2 招标管理
5.3 投标管理
5.3.1 投标前期准备
5.3.2 拟定投标书
5.3.3 确保投标有效
5.4 开标
5.5 评标
5.5.1 评标委员会
5.5.2 讲标与投标澄清
5.5.3 废标与偏差处理
5.5.4 评标方法
5.5.5 评标报告
5.6 定标
5.7 做好投标工作策略
5.7.1 做好投标前的准备工作
5.7.2 制订全面的投标计划
5.7.3 投标报价策略与方法
5.7.4 应对投标中的突发问题
思考题
第6章 合同管理
6.1 合同准备
6.1.1 订立原则
6.1.2 合同形式
6.1.3 合同内容
6.1.4 订立过程
6.2 合同谈判
6.2.1 谈判内容
6.2.2 合同补遗
6.3 合同签署
6.3.1 正式合同文件
6.3.2 技术合同的合法性
6.3.3 无效的技术合同
6.4 合同履行
6.4.1 履行原则
6.4.2 履行抗辩权
6.5 合同变更和解除
6.5.1 合同变更
6.5.2 合同解除
6.5.3 合同终止
6.5.4 变更和解除的法律责任
6.6 合同争议
6.6.1 技术合同争议产生的原因
6.6.2 技术合同常见争议
6.6.3 争议解决方式
6.6.4 技术合同争议的预防
思考题
第7章 质量管理
7.1 软件质量与软件质量管理
7.1.1 软件质量
7.1.2 软件质量管理
7.1.3 软件质量指标
7.2 软件质量策划
7.3 软件质量计划
7.4 软件质量保证
7.4.1 质量保证活动
7.4.2 质量保证关键技术
7.5 软件质量控制
7.5.1 实施质量控制
7.5.2 质量控制模型
7.5.3 质量控制的方法与技术
7.6 软件质量改进
7.7 软件评审
7.7.1 评审内容
7.7.2 评审方法
7.8 软件质量度量
7.8.1 质量度量的分类与作用
7.8.2 质量度量过程
7.8.3 质量度量模型
7.9 ISO 9000质量管理体系
7.9.1 ISO 9000族标准的组成
7.9.2 ISO 9000在软件组织中的实施
思考题
第8章 成本管理
8.1 软件成本分析
8.1.1 软件成本特点
8.1.2 软件成本构成
8.1.3 软件成本影响因素
8.2 软件资源计划
8.3 软件开发成本估算
8.3.1 代码行法软件规模估算
8.3.2 功能点法软件成本估算
8.3.3 COCOMOⅡ软件成本估算
8.4 软件维护成本估算
8.4.1 影响维护成本因素分析
8.4.2 数学模型建立
8.4.3 估算示例与结果分析
8.5 软件成本预算
8.6 软件成本控制
8.6.1 成本控制流程
8.6.2 成本控制措施
8.6.3 成本控制方法
思考题
第9章 配置管理
9.1 配置管理概述
9.1.1 配置管理需求分析
9.1.2 配置管理的作用
9.2 配置管理的相关概念
9.2.1 软件配置项
9.2.2 基线
9.2.3 版本
9.2.4 配置数据库
9.3 配置管理的组织
9.4 配置管理计划
9.5 配置管理的主要活动
9.5.1 配置标识
9.5.2 版本控制
9.5.3 变更控制
9.5.4 状态报告
9.5.5 配置审核
9.6 配置管理工具
9.6.1 配置管理工具的选择标准
9.6.2 主要配置管理工具简介
9.6.3 常用配置管理工具比较
思考题
第10章 风险管理
10.1 风险及风险管理
10.1.1 软件项目风险管理
10.1.2 软件项目风险类型
10.1.3 风险管理过程
10.2 风险管理规划
10.3 风险识别
10.3.1 识别活动
10.3.2 识别方法
10.3.3 识别结果
10.4 风险分析与评估
10.4.1 分析与评估准则
10.4.2 定性分析与评估
10.4.3 定量分析与评估
10.4.4 分析与评估工作成果
10.5 风险应对与控制
10.5.1 风险应对策略
10.5.2 风险控制
10.6 风险监控
10.6.1 风险监控过程
10.6.2 风险监控技术
思考题
第11章 人力资源管理
11.1 软件项目人力资源的特征
11.2 人力资源管理的主要内容
11.3 人员的组织与分工
11.3.1 项目组的组织形式
11.3.2 项目组的人员配备
11.3.3 各阶段人员需求
11.4 人力资源计划
11.4.1 人力资源计划理论基础
11.4.2 人力资源计划实例
11.5 项目经理
11.5.1 项目经理的技能要求
11.5.2 项目经理的素质与职责
11.6 团队建设
11.6.1 团队建设过程
11.6.2 团队的沟通交流
11.6.3 打造高效团队的策略
11.7 软件企业人力资源管理的主要措施
思考题
第12章 收尾管理
12.1 软件项目收尾
12.1.1 收尾的主要内容
12.1.2 项目结束
12.1.3 成功收尾的特征与策略
12.2 软件项目验收
12.2.1 验收过程与内容
12.2.2 验收测试项目
12.2.3 软件错误的严重性等级
12.3 软件项目移交与清算
12.3.1 软件项目移交
12.3.2 软件移交计划
12.3.3 软件项目清算
12.4 软件项目后评价
12.4.1 后评价概述
12.4.2 后评价指标体系
12.4.3 指标权重的确定
12.4.4 后评价方法
12.5 项目开发总结
思考题
参考文献