本书从进行软件过程改进和通过软件能力成熟度评估的角度引导读者阅读和理解CMMI模型,以便进行软件过程的改进工作,并顺利通过CMMI的评估。为便 于国家行业标准的实施,本书结合了国家信息产业部于2001年4月发布的《中华人民共和国电子行业标准(SJ/T 11235-2001)——软件能力成熟度模型》和《中华人民共和国电子行业标准(SJ/T 11234-2001)——软件过程能力评估模型》两个行业标准。
本书首先简要介绍了CMM与CMMI以及它们的差别,然后重点介绍了CMMI模型的框架、CMMI过程域解读示例、CMMI的评估方法、CMMI软件能力成熟度等级过程域等内容,最后介绍了CMMI-SW模型的受管理级、已定义级、定量管理级、持续优化级的全部过程域的具体内容。
本书可以作为软件技术人员掌握CMMI的基本知识和核心内容的自学教材,亦可以作为软件组织实施软件过程改进和进行软件能力成熟度评估的指导文献。本书还可以作为软件学院的CMMI课程的教材或参考书。
第1章 CMM与CMMI
1.1 软件产业的发展历程
1.2 CMM的引入
1.3 CMMI的提出
1.4 CMMI奠定中国软件能力成熟度模型的行业标准
1.5 CMM与CMMI的比较
1.6 习题
第2章 CMMI模型框架
2.1 CMMI过程域的能力等级特征
2.2 CMMI的成熟度等级特征
2.3 CMMI过程域的分类
2.4 CMMI软件能力成熟度等级与过程能力等级之间的关系
2.5 CMMI过程的可视性
2.6 习题
第3章 CMMI过程或解读示例
3.1 需求管理过程域
3.2 过程域的内容分类
3.3 必要部件
3.4 期望部件
3.5 参考部件
3.6 特定实践
3.7 共性实践
3.8 过程域的框架结构
3.9 成熟度等级中过程域的结构
3.10 习题
第4章 CMMI的评估
4.1 CMMI评估方法简介
4.2 选择适合组织商业目标的CMMI模型
4.3 剪裁模型
4.4 评估类型
4.5 选择评估时机
4.6 评估定级判断准则
4.7 确定评估目标和需求
4.8 成立评估组
4.9 检查验证客观证据
4.10 确定评估结果
4.11 报告评估结果
4.12 拟定后续改进计划
4.13 向评估机构提交报告
4.14 归档/销毁关键评估产品
4.15 习题
第5章 成熟度等级过程域
5.1 CMMI 2级——受管理级
5.2 CMMI 3级——已定义级
5.3 CMMI 4级——定量管理级
5.4 CMMI 5级——持续优化级
5.5 能力成熟度的共性目标和共性实践
5.6 CMMI - SW过程域间的相互关系
5.7 习题
第6章 受管理级
6.1 需求管理
6.2 项目策划
6.3 项目监督和控制
6.4 供方协定管理
6.5 测量和分析
6.6 过程和产品质量保证
6.7 配置管理
6.8 习题
第7章 已定义级
7.1 需求开发
7.2 技术解决
7.3 产品集成
7.4 验证
7.5 确认
7.6 组织过程聚集
7.7 组织过程定义
7.8 组织培训
7.9 集成项目管理
7.10 风险管理
7.11 决策分析和决定
7.12 练习
第8章 定量管理级
8.1 组织过程性能
8.2 定量项目管理
8.3 练习
第9章 持续优化级
9.1 组织革新和部署
9.2 原因分析和决定
9.3 练习
附录A 软件生命周期模型
软件能力成熟度模型(Capability Maturity Model For Sohware,CMM)是由美国卡内基梅隆大学软件工程研究所(Sohware Engineering Institute,SEI)受美国国防部委托研究制订,于1991年首先在美国应用,随后在全世界推广实施的一种软件能力成熟度评估标准,主要用于指导软件开发过程的改进和软件开发能力的评估。
CMM在全世界的应用推动了软件企业的软件过程改进和软件管理能力的提高,从而极大地提高了软件项目的控制能力和软件产品的质量,促进了全世界软件产业的健康发展。
CMM等级的评估为软件产品发包方选择承包商提供了便利。没有CMM等级的评估,不可能承接美国国防部的软件项目。此外,越来越多的软件产品发包方根据CMM等级的评估结果来选承包商。
2000年,国务院发布了《鼓励软件产业和集成电路产业发展的若干政策》,由此我国软件产业进入了飞速发展时期,CMM等级的评估也已成为我国软件产业走向世界的重要条件之一。
CMM的应用虽然促进了全世界软件产业的发展,但在实际应用中也发现了一些问题和缺陷。由此,美国卡内基梅隆大学软件工程研究所于1999年提出了新的软件能力成熟度模型——软件能力成熟度集成模型(Capabiliity Maturity Model Integration For Software,CMMI)。CMMI是CMM的改进模型,并且从2001年起,已经开始逐步代替CMM。有消息报道,到2005年美国卡内基梅隆大学软件工程研究所将停止CMM评估的备案工作,转而全力做好CMMI的推广和备案工作。
和CMM模型一样,CMMI模型也是关于软件过程改进的指导性文献,但它仅仅告诉软件组织进行软件过程改进需要做哪些事情,而没有告诉软件组织怎样做这些事情。因此,怎样做到CMMI模型中所规定的目标,需要软件组织发挥自己的优势来达到这些目标。
事实上,软件开发的情况各式各样,很难也不可能有一个标准的到达CMMI所规定的目标的具体方法。读者可以参考很多已经成功地实施了CMM或CMMI认证的软件专家或软件组织所编写的经验总结书籍。例如,可以参考主要参考文献中的文献8和10。当然,除此之外,也还有许多的资料可供参考。
在工程领域,组织的质量和生产率依赖于3个主要的因素:过程、人员和技术。在一些大型系统的开发领域,随着技术的不断进步和人们素质的提高,过程因素逐渐成为制约产品质量和生产效率的瓶颈。因此,在开发组织中进行过程改进,进而增强其过程能力成为了开发组织必须要做的一项工作。
在我国引进CMM的初期,有一个非常令人困惑的问题,这就是好像CMM的目标就是花费10万元或100多万元人民币来进行CMM评估,似乎CMM就是为评估而创建的。当时,从国外请来讲座的专家们也是仅讲CMM的评估,这更加深了人们的误解。事实并不是这样。CMM和CMMI的目的其实是为了帮助软件组织进行软件过程改进,提高软件过程能力、软件产品质量和软件开发效率,从而提高软件组织自身的国内和国际竞争力。CMM或CMMI的评估仅仅是对软件组织的过程改进成果进行实事求是的鉴定诊断,判断经过程改进后的软件组织的软件过程能力或软件能力成熟度等级。因此,CMM或CMMI的评估仅仅是促进软件过程改进的手段,评估本身并不是目的。
CMMI模型不但子模型众多,而且是一个不断修改的软件过程改进模型,它不断变化。例如,CMMI的最新版本是2002年公布的。软件组织如果要进行软件过程改进,并希望进行CMMI模型的评估时,要特别注意CMMI模型的最新版本。
本书是关于CMMI模型阅读和理解的指导性文献,而不是关于过程改进的指导文献。CMMI模型是一种关于软件过程改进的标准化文献,一般读者难以阅读和理解。一位从事标准化工作30多年的专家曾这样评价CMMI模型:尽管我从事标准化工作几十年,但我从未见过像CMMI模型这样的类似天书一样的标准。本书就试图将此天书拉回到地面上来,希望这个目标能够真正实现。
本书介绍CMMI的发展历程、基本框架结构、CMMI过程域的基本结构、CMMI的评估和CMMI的成熟度等级等基本内容,并以CMMI—SW模型为例介绍了CMMI软件能力程度模型的过程域的特定目标和特定实践。这些特定目标和特定实践是CMMI模型中最为重要的部分。
本书分两大部分共9章。第一部分包括前5章,是关于阅读和理解CMMI模型的内容;第二部分包括后4章,是CMMI—SW模型的阶段式表示法的内容。
第1章介绍CMM与CMMI的相同之处和不同之处,主要包括软件产业的发展历程,CMM的引入,CMMI的提出,CMMI奠定中国软件能力成熟度模型的行业标准和CMM与CMMI的比较等内容。
第2章介绍CMMI的框架结构,主要包括CMMI过程域的能力等级特征,CMMI的成熟度等级特征,CMMI过程域的分类,CMMI软件能力成熟度等级与过程能力等级之间的关系和CMMI过程的可视性等内容。
第3章以“需求管理”过程域为例介绍CMMI的过程域基本概念和组成部件,主要包括需求管理过程域,过程域的内容分类,必要部件,期望部件,参考部件,特定实践,共性实践,过程域的框架结构和成熟度等级中过程域的结构等内容。
第4章介绍CMMI模型的评估方法,主要包括CMMI评估方法简介,选择适合组织商业目标的CMMI模型,剪裁模型,评估类型,选择评估时机,评估定级判断准则,确定评估目标和需求,成立评估组,检查验证客观证据,确定评估结果,报告评估结果,拟定后续改进计划,向评估机构提交报告和归档/销毁关键评估产品等内容。
第5章介绍CMMI模型的能力成熟度等级第2级到第5级的22个过程域的必要部件——目标(包括特定目标和共性目标),期望部件——实践(包括特定实践和共性实践),这些内容是:CMMI评估所必须要满足的要求。本章主要包括受管理级、已定义级、定量管理级、持续优化级、能力成熟度的共性目标和共性实践及CMMI—SW过程域间的相互关系等内容。
第6章介绍CMMI模型的能力成熟度等级的2级——受管理级的所有过程域的详细内容,主要包括需求管理,项目策划,项目监督和控制,供方协定管理,测量和分析,过程和产品质量保证和配置管理等过程域。
第7章介绍CMMI模型的能力成熟度等级的3级——已定义级的所有过程域的详细内容,主要包括需求开发,技术解决,产品集成,验证,确认,组织过程聚焦,组织过程定义,组织培训,集成项目管理,风险管理,决策分析和决定等过程域。
第8章介绍CMMI模型的能力成熟度等级的4级——定量管理级的所有过程域的详细内容,主要包括组织过程性能和定量项目管理两个过程域。
第9章介绍CMMI模型的能力成熟度等级的5级——持续优化级的所有过程域的详细内容,主要包括组织革新和部署、原因分析和决定两个过程域。
附录软件生命周期模型对第6.2节中的“软件开发模型”进行了补充。
本书作者曾参与过CMM的认证评估,具有软件过程改进和评估的实践经验。因此,书中内容也结合了作者的一些实践体会,希望能对读者有所帮助。
本书可以作为软件技术人员掌握CMMI的基本知识和核心内容的自学教材,亦可以作为软件组织实施软件过程改进和进行软件能力成熟度评估的指导文献。本书还可以作为软件学院的CMMI课程的教材或参考书。
参加本书编写的人员有罗运模、林经、温四海、李运霞、谢敏、唐宾、刘志方、李华刚、张海宾、陶元庆、王国华。
由于作者经验所限,书中不足或错误之处,敬请读者批评指正。