CMM软件能力成熟度框架分析

时间:2022-04-09 11:42:56

CMM软件能力成熟度框架分析

【摘要】软件能力成熟度模型是一个有明确定义、管理测量和控制程度的特定软件过程。它建立在过往成功软件开发经验教训的分析总结之上,使得整个软件开发过程从无序到有序、从不可控到可控,它的出现极大提高了软件开发效率、缩短了开发周期,同时又保证了交付软件的质量和可靠性。软件能力成熟度模型是一个关系软件开发全周期的系统工作,它涉及到了整个开发过程的方方面面,本文只对软件能力成熟度的产生、作用、简单概念以及其大致的分级情况作一个抛砖引玉式的简单阐述,使大家对它能有一个比较清楚的了解。

【关键词】软件能力成熟度度模型;软件过程;软件过程能力;软件过程成熟度;软件过程行为

1.引言

随着软件业的发展,软件规模的不断扩大,软件开发方法和技术的不断更新,而相应的软件生产率和软件开发质量却未得到有效提高,软件产品时常不能按时完成,软件生产预算超支,而交付客户使用的软件产品也由于各种原因产生的错误无法克服。软件能力成熟度模型(以下简称CMM模型)就是为了应对这一软件业危机而提出的。

2.CMM简介

美国的Walter Shewart于上世纪30年表了软件开发质量控制统计成果,随后卡莱基.梅隆大学软件工程研究所将这套质量控制方法改造整理成为一套能力成熟度框架,并于1990年由SEI公布了CMM模型的第一个版本。CMM的核心是把软件开发视为一个过程,依据这一原则对软件开发和维护进行过程监控和研究并建立起一套框架,使得软件开发组织可以依据框架对项目管理和项目工程进行定量控制和能力评估,从而最终达到使软件的研发过程更加科学化、标准化的目标。随着CMM模型在软件开发中应用,项目开发中的风险得到减低,开发时间大大缩短,开发成本得以减少并大大降低软件产品中的错误发生率。

3.CMM框架

软件生产过程理论告诉我们,软件质量往往取决于软件过程的能力水平,以及在软件过程中所采用的技术适应该过程的成熟度水平。软件过程是一个可度量的、可控制的、可以不断改进的过程。

CMM强调应对软件过程进行连续的改进,在这一改进过程中形成的分级结构――CMM框架,将提供不同等级中的目标和核心领域来规范软件开发过程并为过程的评论和改进提供客观标准。CMM框架共分为5个级别,分别是初始级、可重复级、定义级、管理级和优化级,它们由低到高的代表了不同等级的软件开发过程成熟度能力。

1)CMM初始级

个人英雄主义的天下,绝无可重复性,也无甚积累,项目的执行是随意和混乱,软件开发过程未经定义,开发组织不具备稳定的软件开发与维护环境,面对开发中所遇的各类具体实施问题往往由编程人员凭个人经验与主观感觉应对。在这一级别软件开发过程是不可重复、不可预见、不成体系以及不可积累及不稳定的。

2)CMM可重复级

确定基本的软件生产管理和控制,能针对特定软件项目制定开发过程及管理措施,能将以往项目开发经验用于类似的新项目,有一套不同的软件生产过程提供不同项目选择。软件生产成本和工期能得以客观预测并被有效追踪,过程标准在项目实施中能保证被遵循。项目的开发是有计划的,有控制的,并可重复的行为。在此级别下的软件开发过程是初步实现基本的可管理和可复现。

3)CMM定义级

软件开发过程在整个开发组织范围内得以确立。有一套软件过程规则对所有软件工程和管理行为给与指导。组织内部设置了软件工程小组负责过程的制定,修改,调整和监督。有关软件工程及管理工程的过程文件被编制并成为企业标准,所有项目都必须按照这些标准过程或经调整后的项目过程来实施。软件过程在此得到的稳定的,重复的和持续性的应用,使开发风险大为下降。总而言之,第三级的主要特点在于软件过程已被编制为各个标准化过程,并在企业范围内执行,从而使软件生产和管理在“可重复级”的基础上更具可重复性、可控制性、稳定性和持续性。

4)CMM管理级

第四级的过程是量化的过程,所有项目和产品的质量都有明确的定量化衡量标准,软件也被置于这样一个度量体系中进行分析、比较和监控,所有定量指标都被尽可能地详细采集并描述,使之可具体用于软件产品的控制之中,软件开发过程成为一种真正的工业化生产行为,由专门的软件过程数据库收集和分析软件过程中的各类数据并以此为对软件活动的质量评估的基准。

在此级中,所有的软件过程和产品都树立了定量的目标并被“定量”的管理,使软件组织的能力可以很好地预测。项目组成员对整个过程及其管理体系有高度一致的理解并已学会运用数据库等方法定量地看待和理解软件工程。本级主要在上一级“定义级”基础上实现开发过程的定量化和可预测化。

5)CMM优化级

第五级的软件过程应是持续改进的过程,有一整套有效机制确保软件工程误差接近最小或零。每一个过程在具体项目的运用中,可根据周边和反馈信息来判断下一步实施所需的最佳过程,以持续改善过程使之最优化。因此不断调整软件生产过程,按优化方案改进并执行所需过程。

总之,优化级就是可以根据过程中反馈信息来及时完善下一步的执行过程,通过不断调整使软件开发过程以求达到最佳。

从上面可以看到,五个CMM级别描述了软件开发过程管理从无序到基本有序、到过程定性管理、再到过程定量管理、最后到持续反馈改进的渐进过程,它是一个循序渐进的累进,从第二级到第五级,每一级都需要在满足前一级的基础上实施才可能达到。

4.结论

实施CMM对提升软件过程能力起着至关重要的作用,CMM过程本身就是对软件开发过程发展的一个完整而准确的描述,通过实施CMM可以更好的规范化软件生产和管理的流程,使软件开发组织更加规范化。企业通过CMM认证不是为了满足客户的要求,而是为了自身更好的发展,为进一步扩大规模打下良好基础。近年来国内许多著名的公司,诸如:华为、联想、鼎新等涉及软件开发的企业已经通过了CMM的相关认证,预计未来两三年,软件业会出现一个CMM认证的高潮,这是大势所趋,也标志着我国软件业开始走上标准化、规范化的国际发展道路。

参考文献

[1]杨一平等著.软件能力成熟度模型CMM方法及其应用[M].人民邮电出版社,2009,4:35-60.

[2]Joesph Raynus著.邱仲潘等译.CMM软件过程改进指南[M].电子工业出版社 2007,3:85-110.

[3]GJB5000-2003 军用软件能力成熟度模型.

上一篇:基于光柴混合发电的应急供电系统设计 下一篇:舰船地震波数据分析