1、软件能力成熟度软件能力成熟度模型模型12第十二章第十二章112.1 CMM概述概述软件能力成熟度模型软件能力成熟度模型 CMM(Capability Maturity Model) 是由美国卡内基是由美国卡内基 -梅隆大学软件工程研究所梅隆大学软件工程研究所(CMU/SEI)推出的评估软件能力与成熟度的一套标推出的评估软件能力与成熟度的一套标准,该标准基于众多软件专家的实践经验。准,该标准基于众多软件专家的实践经验。从从 86年开始,开发软件过程成熟度框架。年开始,开发软件过程成熟度框架。91年年 8月月 SEI将将 软件过程成熟度软件过程成熟度 框架进化为框架进化为 软件软件能力成熟度能力成
2、熟度 模型(模型( Capability Maturity Model For Software,简称,简称 SW-CMM1.0 版)版) 。目前目前 ,CMM已经发展到已经发展到 CMMI( Capability Maturity Model Integration),能力成熟度模型集成,能力成熟度模型集成阶段。阶段。 212.1 CMM概述概述CMM侧重于软件开发过程的管理及工程能力的侧重于软件开发过程的管理及工程能力的提高与评估,提高与评估, 是国际上流行的软件生产过程标准和是国际上流行的软件生产过程标准和软件企业成熟度等级认证标准,它更代表了一种管软件企业成熟度等级认证标准,它更代表了
3、一种管理哲学在软件企业中的应用。理哲学在软件企业中的应用。 CMM认证已经成为世界公认的软件产品进入国认证已经成为世界公认的软件产品进入国际市场的通行证际市场的通行证 。 CMM的主要用于:的主要用于:1.软件过程软件过程 评估评估 SPA( Software Process Assessment)2. 软件过程改进软件过程改进 SPI( Software Process Improvement)3. 软件能力评价软件能力评价 SCE( Software Capability Evaluation) 312.1.1 CMM的基本概念的基本概念1. 什么是什么是 软件过程软件过程一个软件过程是指
4、人们开发和维护软件及其相关产品所采取的一系列活动。规程与方法工具和 设备有技能 经过 培训 的开 发 人 员 过程过程412.1.1 CMM的基本概念的基本概念2. 什么是什么是 软件能力成熟度?软件能力成熟度? 由于特定项目的属性和环境限制,项目的实际性由于特定项目的属性和环境限制,项目的实际性能并不能充分反映组织的软件过程能力,但成熟的软能并不能充分反映组织的软件过程能力,但成熟的软件过程可弱化和预见不可控制的过程因素(如客户需件过程可弱化和预见不可控制的过程因素(如客户需求变化或技术变革等)。求变化或技术变革等)。一个组织的软件过程能力为组织提供了预测软件一个组织的软件过程能力为组织提供
5、了预测软件项目开发的数据基础,提供了全面的软件质量保证。项目开发的数据基础,提供了全面的软件质量保证。软件过程成熟度是指一个软件过程被明确定义、软件过程成熟度是指一个软件过程被明确定义、管理、度量和控制的有效程度。成熟意味着软件过程管理、度量和控制的有效程度。成熟意味着软件过程能力持续改善的过程,成熟度代表软件过程能力改善能力持续改善的过程,成熟度代表软件过程能力改善的潜力。的潜力。512.1.2 软件过程的成熟度等级软件过程的成熟度等级 CMM将软件过程的成熟度分为 5个级别 (Maturity Levels),如图所示, 5个等级分别是:初始级可重复级已定义级已管理级优化级1.初始级(初始
6、级( Initial)2.可重复级(可重复级( Repeatable)3.已定义级(已定义级( Defined)4.已管理级(已管理级( Managed)5.优化级(优化级( Optimizing)成熟度等级单击鼠标左键单击鼠标左键查看相应内容查看相应内容6初始级可重复级已定义级已管理级优化级初始级( Initial)在初始级,企业一般不具备稳定的软件开发与维护环境。项目成功与否在很大程度上取决于是否有杰出的项目经理和经验丰富的开发团队。此时,项目经常超出预算和不能按期完成,组织的软件过程能力不可预测。初始级初始级7初始级可重复级已定义级已管理级优化级可重复级 (Repeatable): 在可
7、重复级,组织建立了管理软件项目的方针以及为贯彻执行这些方针的措施。组织基于在类似项目上的经验对新项目进行策划和管理。组织的软件过程能力可描述为有纪律的,并且项目过程处于项目管理系统的有效控制之下。可重复级可重复级8初始级可重复级已定义级已管理级优化级已定义级( Defined):在已定义级,组织形成了管理软件开发和维护活动的组织标准软件过程,包括软件工程过程和软件管理过程。项目依据标准定义自己的软件过程进行管理和控制。组织的软件过程能力可描述为标准的和一致的,过程是稳定的和可重复的并且高度可视。已定义级 9初始级可重复级已定义级已管理级优化级已管理级( Managed):组织对软件产品和过程都设置定量的质量目标。项目通过把过程性能的变化限制在可接受的范围内,实现对产品和过程的控制。组织的软件过程能力可描述为可预测的,软件产品具有可预测的高质量。已管理级已管理级 10