一、软件能力成熟度模型(Capabilitymaturity model,CMM)
CMM是目前国际上使用流行的一种软件生产过程行业标准模型,可定义、评价软件开发过程的成熟度,并提供提高软件质量的指导。
CMM模型分为五级:初始级(1级)、可重复级(2级)、定义级(3级)、管理级(4级)、优化级(5级)共5个成熟度等级,低级别是实现高级别的基础
二、五级特征
(1)初始级(initial)。
工作无序,项目进行过程中常放弃当初的计划。
管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。
(2)可重复级(Repeatable)。
管理制度化,建立了基本的管理制度和规程,管理工作有章可循。
初步实现标准化,开发工作比较好地按标准实施。
变更依法进行,做到基线化,稳定可跟踪,新项目计划和管理基于过去实践经验,具有重复以前成功项目的环境和条件。
核心:建立基本的项目管理和实践来跟踪项目费用、进度和功能特性
(3)已定义级(Defined)。
许多组织追求的目标
开发过程,包括技术工作和管理工作,均已实现标准化、文档化。
建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。
核心:使用标准开发过程(或方法论)构建(或集成)系统
(4)已管理级(Managed)。
产品和过程已建立了定量的质量目标。
开发活动中的生产率和质量是可量度的。
已建立过程数据库。
已实现项目产品和过程的控制。
可预测过程和产品质量趋势,如预测偏差,实现及时纠正。
核心:管理层寻求更主动地应对系统的开发问题
(5)优化级(Optimizing)。
可集中精力改进过程,采用新技术、新方法。
拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。
可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。
核心:连续地监督和改进标准化的系统开发过程
关键过程域KPA
在 CMM中一共有 18 个关键过程域,分布在 2~5 级中。
CMM的第 2 级(可重复级)有 6 个关键过程域,主要涉及建立软件项目管理控制方面的内容。
需求管理( Requirements Management , RM )
软件项目计划( Software Project Planning , SPP )
软件项目跟踪与监控( Software Project Tracking and Oversight , SPTO )
软件子合同管理( Software Subcontract Management , SSM )
软件质量保证( Software Quality Assurance , SQA )
软件配置管理( Software Configuration Management , SCM )
CMM的第 3 级(定义级)有 7 个关键过程域,主要涉及项目和组织的策略。 使软件组织建立起对项目中的有效计划和管理过程的内部细节。组织过程焦点( Organization Process Focus , OPF )
组织过程定义( Organization Process Definition , OPD )
培训程序( Training Program , TP )
集成软件管理( Integrated Software Management , ISM
软件产品工程( Software Product Engineering , SPE )
组间协调( Intergroup Coordination , IC )
同级评审( Peer Reviews , PR )
CMM的第 4 级(管理级)有 2 个关键过程域,主要的任务是为软件过程和软件产品建立一种可以理解的定量的方式。
定量过程管理( Quantitative Process Management , QPM )
软件质量管理( Software Quality Management , SQM )
CMM的第 5 级(优化级)有 3 个关键过程域,主要涉及的内容是软件组织和项目中如何实现持续不断的过程改进问题。缺陷预防( Defect Prevention , DP )
技术变更管理( Technology Change Management, TCM )
过程变更管理( Process Change Management , PCM )