基于CMM的软件过程方法研究

时间:2022-09-02 10:03:14

基于CMM的软件过程方法研究

摘要:随着软件产业的升温,一些软件企业开始寻求出口的道路,它们更加重视管理和质量水平的提高,国内的软件企业争先恐后加入到CMM的认证队伍中去。阐明了什么是软件过程,进行软件过程方法研究的背景和意义,软件能力成熟度模型CMM的主要内容,探讨了如何在中小型软件企业中正确地实施CMM,提出中国的软件企业利用CMM进行过程管理的一点建议。

关键词:软件质量;软件过程;软件能力成熟度级别;CMM评估

中图分类号:G642文献标志码:A文章编号:1673-291X(2010)01-0251-02

一、基本概念

软件过程(Software Process):是指软件人员开发和维护软件及相关产品的一套行动、方法、实践和转化过程。

软件过程能力(Software Proces Capability):描述了在遵循一个软件过程后能够得到的预期结果的界限范围。该指标是对能力的一种衡量,用它可以预测一个企业在承接下一个软件项目时,所能期望得到的最可能的结果。

软件过程成熟度(Software Process Maturity):是软件过程改进的一个重要概念,它指一个特定软件过程得到清晰的定义、管理、测量、控制的有效程度。所谓成熟度包含着能力的一种增长潜力,同时也表明了企业实施软件过程的实际水平。随着组织软件过程成熟度能力的不断提高,组织内部通过对过程的规范化和对成员的技术培训,软件过程也将会被他的使用者关注和不断修改完善,从而使软件的质量、生产率和生产周期得到改善。

二、中小型企业中实施CMM的意义

美国卡内基・梅隆大学软件工程研究所SEI(Software Engineer Institute)的Watts Humphrey等人提出了软件过程、软件能力成熟度等级等概念,并形成了SW-CMM,即软件能力成熟度模型(Software Capability Maturity Model),简称为CMM[1],它是一种评价软件承包商的软件开发管理能力并帮助其提高质量的方法,为软件机构描述了从混乱的、不成熟的软件过程向成熟、有纪律的软件过程改进的一条有效途径。

CMM过程本身就是对软件企业发展历程的一个完整而准确的描述,企业通过实施CMM,可以帮助企业组织识别自身情况,对软件工程过程进行管理和改进,提高软件开发的质量,能够指导软件组织提高软件开发与改进能力;降低软件承包商和采购者的风险;评估软件承包商的软件开发管理能力;帮助软件企业共享业界有效过程实践;增加软件企业的国际竞争能力。

三、CMM模型

SEI给CMM下的定义是:对于软件组织在定义、实现、度量、控制和改善其软件过程的进程中各个发展阶段的描述。CMM将软件组织的能力成熟度分为了初始级(Initial)、可重复(Repeatable)、已定义(Defined)、已管理(Managed)和优化级(Optimizing)五个等级[2],这五个等级有着如下图所示的螺旋式上升的阶梯型层次结构,其主要特征为:

图CMM模型级别

初始级(Initial):软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经过定义的,成功依赖于个人的努力。此时工作方式处于救火状态,需要不断的应对突如其来的危机。

可重复级(Repeatable):已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪律已经就位,使具有类似应用的项目。能重复以前的成功。

定义级(Defined):已将用于管理和工程的软件过程文档化、标准化,并形成组织的标准软件过程。所有项目均使用与实际情况相吻合、适当裁剪的标准软件过程来开发和维护软件产品。

管理级(Managed):已采集详细的有关软件过程和产品质量的度量。无论软件过程还是产品均得到了定量了解和控制,量化控制将使软件开发真正成为一种工业生产活动。

优化级(Optimizing):利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续过程改进成为可能。如果企业达到了第五级,就表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。

基于这种级别的划分,可以标识软件组织的过程能力,还可以方便地实现持续不断改进。因为每种级别都提供了一个软件过程改进层次,使成熟结构的每一个层次都能通过实现软件过程中的一些标准实现。这种方法同样使软件企业的软件能力得到提高。

四、在软件企业中实施CMM的几点建议

实施CMM对软件企业的发展起着至关重要的作用,CMM过程本身就是对软件企业发展历程的一个完整而准确的描述[3],企业通过实施CMM,可以更好地规范软件生产和管理流程,使企业组织规范化,从而使企业更好地发展,为企业进一步扩大规模打下坚实的基础。对于软件企业实施CMM,提出以下几点建议以供参考[4]。

1.提高思想认识。CMM在中国的实施,从整体上看处于起步阶段,很多软件公司对ISO9000了解较多,也有较多企业通过了ISO9000认证。相对而言,了解CMM的就不多了。正式推行CMM需要在人力和经费上增加投入,一般的软件中小企业有一定困难,这就需要公司领导及全体员工提高认识,认识到CMM在企业生存发展过程中的重要作用。

2.进行CMM培训和咨询工作。根据CMM模型的要求,一个项目的开发一定要有章可循,而且要做到有章必循,这两点都离不开培训。培训的内容主要有两个方面,第一,对所有员工包括经理在内的最基本的软件工程和CMM培训知识;第二,对各个工作组的有关人员提供专业领域知识等方面的培训;此外,在每次开发过程中,还要对普通人员进行软件过程方面的培训。

3.确定合理的目标。要实施CMM,首先应该对本企业的现状有一个准确的评估。企业目前处于什么水平,企业发展的问题是什么,借助CMM要达到的目的是什么。然后再结合企业的实际情况选择CMM的切入点,确定总体目标。这个目标包括在多长时间之内,需要投入多少人力、物力和财力,要达到哪一级。在总体目标已经确定的前提下,还要制定近期目标和长期目标。

4.成立工作组。企业针对CMM的实施,应成立专门的CMM实施领导小组或专门的机构。领导层必须真正学习理解软件过程管理和改进的重要性,亲自领导和参与,要保证过程管理的人员配备,抽调企业中有管理能力、组织能力和软件开发能力的骨干人员。 在CMM的实施过程中,有几个重要的组织是必不可少的,这些组织包括软件工程过程组、软件工程组、系统工程组、系统测试组、需求管理组、软件项目计划组、软件项目跟踪与监督组、软件配置管理组、软件质量保证组、培训组。

5.制定和完善软件过程。CMM模型强调软件过程的改进,如果企业还没有一个文档形式的软件过程,则首要任务是对当前的工作流程进行分析、整理及文档化,从而制定出一个具有本企业风格的软件过程,并用该文档化的过程指导软件项目的开发。如果已经具备了软件过程,则要对这个过程做内部评估,对照CMM的要求,找出问题,然后对这个过程进行补充修改。

6.内部评审。由于中国在CMM评估中要聘请外籍主任评估师,费用较高。据估计,要通过一个级别的CMM评估,费用是通过ISO9000认证的十多倍。因此,建议软件企业在进行正式评估之前,先进行内部评审或评估。

7.正式评估。目前主要有两种基于CMM的评估方法 [5],一种是CBA-SCE(CMM-Based Appraisal for Software Capability Estimation)它是基于CMM对组织的软件能力进行评估,是由组织外部的评估小组对该组织的软件能力进行的评估。另一种是CBA-IPI(CMM-Based Appraisal for Internal Process Improvement),它是基于CMM对内部的过程改进进行的评估,是由组织内部的小组对软件组织本身进行评估以改进质量,结果归组织所有,目的是引导组织不断改进质量。SCE与IPI两评估结果应该一致,评估结果的所有资料都将呈报CMU/SEI。

8.根据评估结果改进软件过程。一般来说,应该在评估之后很快地作出软件过程改进的计划,因为这时大家对评估结果和存在的问题仍有一个深刻的认识。计划在软件过程改进中是一个非常必要的阶段,只有有效的计划,才能确保软件过程得到有效的改进。

五、结束语

中国自1998年首次引进CMM实施以来,国内已有两百多家软件企业通过CMM 二到五级评估。虽然国内目前出现了软件企业进行CMM等级评估的热潮,但是通过分析不难发现,国内通过CMM评估的企业所占的比重还是很低的,且都是比较大型的IT企业或部门,而针对中小型软件企业和软件工程项目的研究却显得不足。这与中国中小型软件企业占有很大比例的现实明显不相称。因此,为了加快提升中小软件企业的管理水平,推行CMM过程质量管理是必不可少的。通过本文的论述期望越来越多的软件企业能用CMM来规范软件项目的开发以提高在国际市场的竞争力。

参考文献:

[1]卡耐基梅隆大学软件工程研究所能力成熟度模型(CMM).软件过程改进指南[M].北京:电子工业出版社,2003.

[2]郑人杰,王纬,王方德,蔡愉祖,等.基于软件能力成熟度模型(CMM)的软件过程改进――方法与实施[M].北京:清华大学出版社,2003:3.

[3]Joseph Raynus.CMM软件过程改进指南[M].邱仲潘,译.北京:电子工业出版社,2002.

[4]杨一平,等.软件工程技术与CMM的融合[M].北京:人民邮电出版社,2002:11.

[5]刘孟仁.能力成熟度模型(CMM):软件过程改进指南[M].北京:电子工业出版社,2001.[责任编辑 陈鹤]

上一篇:积极心理学视野下大学生幸福感教育 下一篇:论普通高校辅导员队伍建设的原则