本书将60(六西格玛)与CMM的评审策略与软件研发管理实践系统融合,集中介绍了在软件工程中研发的核心内容和策略,主要内容包括软件危机和软件成熟度模型、软件度量、需求管理、项目计划与跟踪、合同管理、质量保证、配置管理、培训管理。’将理论与实践应用案例紧密结合,具有很强的实践指导意义。
本书适于软件工程专业学生作为教材和教学参考书使用,也可作为软件企业管理,研发技术人员的参考书。
第1章软件危机和软件过程成熟度模型
1.1软件的发展经历
1.2软件危机
1.2.1手工作坊式软件的特点
1.2.2软件危机的发生
1.2.3软件危机的举例
1.2.4对软件的新认识
1.2.5软件工程过程
1.3软件成熟度模型介绍
1.3.1不成熟的与成熟的软件机构的对比
1.3.2软件过程成熟度模型
1.3.3软件过程的可视性的提高
1.3.4提高软件过程成熟度级别的意义
1.460管理法介绍
1.4.160管理法的定义
1.4.260管理法的核心
1.4.366管理法的优点
1.4.460管理法的步骤
1.4.5实施60管理法的优势
1.4.6关于60管理法组织的特征
1.5应用举例
第2章软件度量
2.1直接的度量
2.2间接的度量
2.2.1功能点的度量
2.2.2复杂度的度量
2.2.3生产率、成本的度量
2.2.4正确性、可维护性、完整性、可使用性和错误排除率的度量
2.3项目度量
2.3.1历史数据基线的建立
2.3.2技术的度量
2.4过程度量
2.5应用举例
第3章软件开发管理的概要
3.1软件开发管理的要素
3.1.1管理的对象
3.1.2管理的要素
3.2软件开发管理的概要
3.2.1计划的管理
3.2.2跟踪与报告
3.2.3风险管理
3.2.4合同管理
3.2.5技术上统一控制开发内容和方法
3.3软件开发管理的整体视图
3.4应用举例
第4章需求管理
4.1获得用户需求
4.1.1获得用户需求的一般方法
4.1.2用户需求不明时的原型化方法
4.2需求分析文档
4.2.1需求规格说明书项目
4.2.2书写需求规格说明书的注意点
4.2.3初步的用户手册的编写
4.2.4用户需求的分析
4.3需求的评审
4.3.1评审的内容
4.3.2评审的注意点
4.4需求的更改
4.5应用举例
4.5.1项目需求调研表和需求分析报告的评审项
4.5.2用户满意度调查表
4.5.3需求的跟踪能力矩阵
第5章项目计划
5.1软件的估算
5.1.1估算的意义
5.1.2估算的风险
5.1.3估算的步骤
5.2项目进度安排
5.2.1准确安排进度的重要性
5.2.2进度安排的方法
5.2.3注意点
5.3软件的风险评估
5.3.1风险的分类
5.3.2风险评估的项目
5.3.3风险的估计方法
5.3.4风险的评估
5.3.5风险的消除
5.4制订项目计划
5.4.1制订项目计划的目的
5.4.2主要针对的事项
5.4.3开发对象和环境的优化
5.4.4对象系统的记述
5.4.5合同和约定
5.4.6制订项目计划对各方的依赖
5.4.7软件生命周期的选择、开发方针的确定
5.5项目计划的文档
5.5.1编写项目计划的文档的注意点
5.5.2项目管理计划的目录(示例)
5.5.3项目管理计划的评审
5.5.4项目管理计划的变更
5.6应用举例
5.6.1项目启动表和小组创建表
5.6.2项目开发计划书
5.6.3进度管理表和项目结束分析报告
第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.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.7软件工程技术活动的跟踪
6.7.1跟踪的目的
6.7.2跟踪的要点
6.8报告
6.8.1报告的目的
6.8.2报告的注意点
6.8.3报告的种类
6.8.4报告的内容
6.8.5进度状况报告(小组周报示例)
6.9应用举例
6.9.1跟踪和监控项目会议记录表、问题表和行动跟踪表
6.9.2缺陷预防举例
6.9.3用挣得值分析方法跟踪项目成本举例
6.9.4用关键路径方法跟踪和控制项目进度举例
第7章合同管理
7.1与用户的合同管理
7.1.1合同的准备、签署、变更
7.1.2合同的履行
7.2分包管理
7.2.1合同与订货
7.2.2计划、进度、质量和配置管理
7.2.3交付、验收、支付、评价
7.3应用举例
7.3.1内部合同书与完成项目统计表
7.3.2客户服务品质协议书
第8章质量保证
8.1质量保证计划
8.1.1质量保证计划内容
8.1.2模块结束标准
8.1.3测试计划
8.1.4系统完成标准
8.1.5质量保证计划、测试计划、项目结束标准的完成时间和准备事项举例
8.2质量保证的实施
8.2.1走查
8.2.2检查
8.2.3正式评审
8.2.4测试
8.3问题管理
8.3.1问题管理的要点
8.3.2问题的种类
8.3.3问题管理的功能
8.3.4问题管理的顺序
8.4应用举例
8.4.1测试与评审缺陷表和缺陷原因分类表
8.4.2软件测试计划和测试内容一览表
8.4.3软件质量保证报告和软件质量保证跟踪记录
8.4.4缺陷防范和过程改进计划
第9章配置管理
9.1标识软件配置项
9.1.1软件配置项
9.1.2标识软件配置项
9.1.3软件配置项的联系
9.2建立软件基线库
9.3版本控制
9.4变更管理
9.4.1变更管理的目的与对象
9.4.2变更管理的操作顺序
9.4.3管理文档和管理项目
9.5基线状态报告
9.6应用举例
9.6.1配置项分类列表和基线库的访问权限列表
9.6.2配置审计报告和配置审计的会议记录
9.6.3软件配置管理计划
9.6.4变更申请表、变更登记表、变更状态报告表和变更登记一览表
第10章培训管理
10.1对开发人员的培训
10.1.1培训计划的确定时间
10.1.2培训计划的制订与实施
10.1.3培训计划的变更
10.1.4培训的文档
10.2面向用户的培训
10.2.1培训计划的目的
10.2.2培训计划的制订时间
10.2.3培训计划的要点
10.2.4培训计划的确定与实施
10.3应用举例
10.3.1培训需求表、培训计划表写培训的反馈
10.3.2培训的索引与培训结果评价表
10.3.3用户培训计划、培训实施指导表和培训确认表
附录参考文献
国内软件业发展到今天,面临着需要转折的局面。一方面,以前的开发方式存在很多弊端,随着一些较大软件项目的提出,这种弊端越来越明显,为此软件企业需要改变软件的开发方式;另一方面,对于如何以一种新的、高质量的方式来开发大的软件项目却不大清楚。虽然国外提出了用于提高软件质量的软件过程成熟度模型(CMM),但该模型只提出了“做什么”的要求,却没有“如何做”的指南。这是因为每个企业的情况不同,必须根据自身情况决定如何去做。为提高软件产品质量,国外很多著名大公司推崇60管理法。但60管理法几乎适合于任何行业,因此它的重要意义在于其原理。而两者的原理(以下称“质量原理”)极其相似,都认为质量的提高是企业自身能力提高的过程。
作为一家通过了CMM5级评审的软件企业,海辉科技公司在几年的高速发展中一直在思考这样一些问题。比如,在技术上哪些东西需要保留,哪些东西必须摈弃,从国内外业界同行中能吸取什么等,对于国外的经验只能批判地接受,必须走出一条符合自己特点的路,这条路也应符合国内大多数软件企业的实际,具有一定的普遍意义。将“质量原理”付诸实践,把软件开发的质量提高到一个新高度,也为了与业界同行在这方面交换心得,编写了本书,本书也是海辉科技管理丛书之一。事实上,正如60管理法和CMM中所表述的那样,海辉科技公司对开发质量的追求也是在实践中探索,在探索中前进。同时参照了“质量原理”,不断改进自身的开发方式,提高开发质量。对于一个企业来说,质量意味着生命,追求质量的道路永无止境,要不断努力,力争达到质量的新高度。
本书得到了北京大学软件研究所副所长、国家863高技术计划专家组成员、中国计算机学会软件工程专业委员会主任梅宏教授的指点。梅教授在百忙之中抽出时间,对本书提出了许多中肯的建议和意见,在此深表感谢!
本书还得到了大连海辉科技股份有限公司同事们的大力协助,在此也致以深深的谢意!同时郑重声明,本书中来自大连海辉科技股份有限公司的资料均已得到该公司的许可。任何单位或个人如果引用,须标明出处,并得到大连海辉科技股份有限公司的许可,否则将承担法律责任。
作者对清华大学出版社计算机第二事业部的丁岭主任和许振伍编辑为本书的顺利出版所付出的辛勤劳动表示感谢。
本书主要面向有一定软件开发经验的软件工程师、软件项目负责人、软件公司的管理者以及一切有志于软件开发工作的大专院校学生,本书也可作为大专院校的软件工程课程的实践类参考书籍。
由于作者水平有限,加上时间仓促,难免存在错误和疏漏,欢迎读者批评指正。