CMM:软件成熟度模型

我们都是业界的搬运工,过时片刻就放松...

本次随笔内容是:软件成熟度模型

一、CMM简介

CMM,英文全称为Capability Maturity Model for Software,即:软件成熟度模型。

CMM的核心是把软件开发视为一个过程。它是对于软件在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。

根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好地实现商业目标。

分级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级

优点:

1、提高软件开发的管理能力,因为CMM可提供软件公司自我评估的方法和自我提高的手段;

2、提高软件开发效率;

3、提高软件质量;

4、提高软件竞争力;

 

二、初始级(Initial)

特点:软件工程管理制度缺乏,过程缺乏定义、混乱无序。经常由于缺乏管理和计划导致时间、费用超支,管理方式属于反应式,主要用来应付危机,过程不可预测,难以重复。

     即使制定了一些软件工程规范,但如果规范未能覆盖基本的关键过程要求,且执行时没有相关资源的支持保证,仍将其视为初始级。

关键词:技术负债

提高:建立项目过程管理,建立各种计划,开展QA活动。

 

三、可重复级(Repeatable)

特点:基于类似项目的经验,建立了基本的项目管理制度,采取了一定的资源控制手段。管理人员可及时发现问题,采取应对措施。

     软件开发的首要问题不是技术问题而是管理过程,一个可管理的过程则是一个可重复的过程。

提高:引入需求管理、项目管理(包括项目跟踪和监控)、子合同管理、软件配置管理和质量管理(包括质量量化和监控)。

 

四、已定义级(Defied)

特点:软件过程文档化、标准化,可按照需求改进开发过程,采用评审方法保证软件质量,引入case管理工具提高质量和效率。

     将执行标准集成到企业软件开发标准过程中,根据标准过程执行,可根据具体情况进行调整,调整需要相关人员确认通过。

提高:组织过程定义、焦点,培训大纲,软件集成管理,组织协调,专家评审等。

 

五、已管理级(Managed)

特点:所有过程建立相应的度量方式和明确的度量指标,度量是详尽且可用于理解和控制软件过程的。量化控制将使软件开发真正成为一种工业生产活动。

     针对制定质量、效率目标,并收集、度量相应指标,利用统计工具分析并采取改进措施。

提高:定量的软件过程管理和产品质量管理,防止和规避缺陷的能力,技术革新能力,过程不断改进。

 

六、优化级(Optimizing)

特点:可根据执行过程的反馈来改善下一步的执行过程,优化执行步骤(基于统计质量和过程管理的工具,持续改进软件过程),质量和效率稳步提升和改进。

提高:缺陷预防管理(包括预防和应对容灾措施)、过程变更管理(工作流)和技术变更管理。

 

除了第1级外,其他每一级由几个关键过程方面组成。每一个关键过程方面都由上述5种公共特性予以表征。CMM给每个关键过程了一些具体目标。每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。

如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就达到了,也就表明该关键过程实现了。这种成熟度分级的优点在于,这些级别明确而清楚地反映了过程改进活动的轻重缓急和先后顺序。

 

posted @   攻城狮-tester  阅读(395)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示