一、CMM简介
CMM,英文全称为Capability Maturity Model for Software,即:软件成熟度模型。
CMM的核心是把软件开发视为一个过程。它是对于软件在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好地实现商业目标。
分级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
优点:
1、提高软件开发的管理能力,因为CMM可提供软件公司自我评估的方法和自我提高的手段;
2、提高软件开发效率;
3、提高软件质量;
4、提高软件竞争力;
二、初始级(Initial)
特点:软件工程管理制度缺乏,过程缺乏定义、混乱无序。经常由于缺乏管理和计划导致时间、费用超支,管理方式属于反应式,主要用来应付危机,过程不可预测,难以重复。
即使制定了一些软件工程规范,但如果规范未能覆盖基本的关键过程要求,且执行时没有相关资源的支持保证,仍将其视为初始级。
关键词:技术负债
提高:建立项目过程管理,建立各种计划,开展QA活动。
三、可重复级(Repeatable)
特点:基于类似项目的经验,建立了基本的项目管理制度,采取了一定的资源控制手段。管理人员可及时发现问题,采取应对措施。
软件开发的首要问题不是技术问题而是管理过程,一个可管理的过程则是一个可重复的过程。
提高:引入需求管理、项目管理(包括项目跟踪和监控)、子合同管理、软件配置管理和质量管理(包括质量量化和监控)。
四、已定义级(Defied)
特点:软件过程文档化、标准化,可按照需求改进开发过程,采用评审方法保证软件质量,引入case管理工具提高质量和效率。
将执行标准集成到企业软件开发标准过程中,根据标准过程执行,可根据具体情况进行调整,调整需要相关人员确认通过。
提高:组织过程定义、焦点,培训大纲,软件集成管理,组织协调,专家评审等。
五、已管理级(Managed)
特点:所有过程建立相应的度量方式和明确的度量指标,度量是详尽且可用于理解和控制软件过程的。量化控制将使软件开发真正成为一种工业生产活动。
针对制定质量、效率目标,并收集、度量相应指标,利用统计工具分析并采取改进措施。
提高:定量的软件过程管理和产品质量管理,防止和规避缺陷的能力,技术革新能力,过程不断改进。
六、优化级(Optimizing)
特点:可根据执行过程的反馈来改善下一步的执行过程,优化执行步骤(基于统计质量和过程管理的工具,持续改进软件过程),质量和效率稳步提升和改进。
提高:缺陷预防管理(包括预防和应对容灾措施)、过程变更管理(工作流)和技术变更管理。
软件成熟度模型反映了软件开发过程的不断优化和技术的变更,管理效率的不断提升,也从另一方面印证了生产力发展的规律:标准化、管理化、自动化。。。