软件能力成熟度模型(CMM)及其应用

1.CMM 的发展

  为了保证软件产品的质量,80年代中期,美国联邦政府提出对软件承包商的软件开发能力进行评估的要求。因此,美国卡内基-梅隆大学软件工程研究所 (CMU/SEI) 于1987年研究发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评价两种评估方法和软件成熟度提问单。4年之后,SEI将软件过程成熟度框架进化为软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM),并发布了最早的SW-CMM 1.0版。经过两年的试用,1993年SEI正式发布了SW-CMM1.1版,这是目前使用最为广泛的版本。按照SEI最初的计划,应该在1998年发表SW-CMM的2.0版。由于软件过程评估(SPA)国际标准项目的进展,美国国防部下令暂时停止推进到SW-CMM 的2.0版,以便吸收SPA的长处,于是便产生了CMMI(集成CMM)。2000~2001年SEI发表了《系统工程和软件工程综合能力成熟度模型》(CMMI-SE/SW)1.0版和CMMI-SE/SW 1.1版以及《系统工程、软件工程和集成产品与过程开发的综合能力成熟度模型》(CMMI-SE/SW/IPPD)1.1版。就软件而言,CMMI是SW-CMM的修订本。事实上,它兼收了SW-CMM 2.0版C稿草案和SPA中更合理、更科学和更周密的优点。在发表CMMI-SE/SW1.0时,SEI宣布大约用两年的时间完成从CMM到CMMI的过渡。

  CMM基于众多软件专家的实践经验,是组织进行软件过程改善和软件过程评估的一个有效的指导框架。CMMI项目更为工业界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复,降低基于模型改善的成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力。CMM或CMMI不仅是一个模型,一个工具,它更代表了一种管理哲学在软件工业中的应用。

  CMM的思想来源于已有多年历史的产品质量管理和全面质量管理。Watts Humphrey和Ron Radice在IBM公司将全面质量管理的思想应用于软件工程过程,收到了很大的成效。SEI的软件能力成熟度框架就是在以Humphrey为主的软件专家实践经验的基础上发展而来的。软件能力成熟度模型中融合了全面质量管理的思想,以5个不断进化的层次反映了软件过程定量控制中项目管理和项目工程的基本原则。CMM所依据的想法是只要不断地对软件企业的软件工程过程的基础结构和实践进行管理和改进,就可以克服软件生产中的困难,增强开发制造能力,从而能按时地、不超预算地制造出高质量的软件。

2.CMM的作用

  最近的SEI评估报告显示,从1996年到2000年,全球有1012个组织进行了CMM评估,其中64.8%为商业组织,26.7%为美国官方和军方合同商,主要业务为软件开发和维护的组织有922个,有将近一半的组织规模是在100人以下。这些数据表明,CMM认证已经引起软件企业的高度关注,并且这种认证同样适合中小企业。

  CMM主要应用在两大方面:能力评估和过程改善。

1)能力评估

  CMM是基于政府评估软件承包商的软件能力发展而来的,有两种通用的评估方法用以评估组织软件过程的成熟度:软件过程评估和软件能力评价。

  软件过程评估:用于确定一个组织当前的软件工程过程状态及组织所面临的软件过程的优先改善问题,为组织领导层提供报告以获得组织对软件过程改善的支持。软件过程评估集中关注组织自身的软件过程,在一种合作的、开放的环境中进行。评估的成功取决于管理者和专业人员对组织软件过程改善的支持。

  软件能力评价:用于识别合格的软件承包商或者监控软件承包商开发软件的过程状态。软件能力评价集中关注识别在预算和进度要求范围内完成制造出高质量的软件产品的软件合同及相关风险。评价在一种审核的环境中进行,重点在于揭示组织实际执行软件过程的文档化的审核记录。

2.)过程改善

  软件过程改善是一个持续的、全员参与的过程。CMM建立了一组有效地描述成熟软件组织特征的准则。该准则清晰地描述了软件过程的关键元素,并包括软件工程和管理方面的优秀实践。企业可以有选择地引用这些关键实践指导软件过程的开发和维护,以不断地改善组织软件过程,实现成本、进度、功能和产品质量等目标。

3.CMM的主要内容

  CMM把软件开发组织的能力成熟度分为5个可能的等级。除了第1级外,其他每一级由几个关键过程方面组成。每一个关键过程方面都由公共特性予以表征。CMM给每个关键过程规定了一些具体目标。按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就能达到,这就表明该关键过程实现了。这种分级的思路在于把一个组织执行软件过程的成熟程度分成循序渐进的几个阶段,这与软件组织提高自身能力的实际推进过程相吻合。这种成熟度分级的优点在于级别明确而清楚地反映了过程改进活动的轻重缓急和先后顺序。这一点很重要,因为大多数软件组织只能在某一段时间里集中开展少数几项过程改进活动。

  如果按管理、组织和工程三个方面分类,则CMM的关键过程方面分布如表所示。

 管理

组织

工程
CMM1:初始级   
CMM2:可重复级需求管理 / 软件项目策划 / 软件项目追踪和监督 / 软件分包管理 / 软件质量保证 / 软件配置管理  
CMM3:定义极集成式软件管理 / 组间协调组织过程定焦 / 组织过程定义 / 培训软件产品工程 / 对等审查
CMM4:定量管理级定量过程管理 软件质量管理
CMM5:优化级 技术变更管理 / 过程变更管理缺陷预防

4.CMM的评估

  CMM评估要遵循SEI的CAF (CMM Assessment Frame-work) 规范,由CMU/SEI授权的主任评估师(Lead Assessor)领导一个评审小组进行,评估过程包括员工培训(企业的高层领导也要参加)、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。

  目前主要有两种基于CMM的评估方法,一种是CBA-SCE(CMM-Based Appraisal for Software Capability Estimation),它是基于CMM对组织的软件能力进行评估,是由组织外部的评估小组对该组织的软件能力进行的评估。另一种是CBA-IPI(CMM-Based Appraisal for Internal Process Improvement),它是基于CMM对内部的过程改进进行的评估,是由组织内部和外部人员联合组成的评估小组对软件组织本身进行评估以改进质量,结果归组织所有,目的是引导组织不断改进质量。

  这两种评估均由CMU/SEI授权的主任评估师领导,根据CMM模型来进行,都要审查正在使用和将来使用的文件/文档,并对不同的组织员工进行采访。SCE与IPI两评估结果应该一致,评估结果的所有资料都将呈报CMU/SEI。

  针对企业实施CMM的需要,这里主要讲述CBA-IPI的评估方式,以便企业提高软件过程能力。

  CBA-IPI的评估由几方共同组成:评估小组、公司的管理人员、具体项目的执行人员以及主任评估师。其中评估小组是由经验丰富的软件专业人员组成,还要经过CMM和CBA评估的培训,使他们了解组织的同时,也懂得如何将CMM模型及关键实践与组织的要求建立关联。

  评估过程主要分成三个阶段:准备阶段、评估阶段和报告阶段。准备阶段包括小组人员培训、计划以及其它必要的评估准备工作。在评估的最初几天,小组成员的主要任务是采集数据,回答SEI的CMM提问单,文档审阅以及进行交谈,对整个组织中的应用有一个全面的了解。

  然后进行数据分析。评估员要对记录进行整理,并检验所观察到的一切信息,然后把这些数据与CMM模型进行比较,最后给出一个评估报告。在每个评估报告中,必须针对CMM 的每个关键过程方面,指出这个软件过程在什么地方已经有效地执行了,什么地方还没有有效地执行。只有所有评估人员一致通过的情况下,这个评估报告才有效。

  在评估报告的基础上,评估小组产生一个评估结果。评估和评级的结果应与有关的关键过程方面和目标相对应。评估报告和结果将送交所有有关的人员并上报CMU/SEI。

5.我国软件能力评估标准的制定与实施

  软件已经作为一个新兴高技术产业在我国崛起。但与发达国家相比,无论在开发能力还是管理水平上都还存在一定差距,尤其是落后的软件工程管理制约了开发能力的发挥。某些国家的软件开发能力并不比我国强,但在国际软件市场上的份额却远大于我国,其主要原因之一是我们在软件开发管理方面明显落后。国务院以国发[2000]18号文颁布了《鼓励软件产业和集成电路产业发展的若干政策》,其中要求通过标准化工作对软件产业发展提供必要的支撑与保障。为了落实国务院18号文的精神,加快我国软件能力模型标准的制定,推动软件产业的发展,信息产业部2000年9月28日主持成立了软件体系评估标准特别工作组,同时提出了 “依据我国软件政策,利用国际先进经验,结合我国国情,制定出有助于指导和促进我国软件企业发展的评估模型标准”的原则,并确定了标准制定的两个主要目标:支持软件企业和企业内的软件组织对自身的软件过程能力实施持续性的内部改进;支持对软件企业的综合软件能力进行第二方和第三方评估。

  工作组深入研究了CMM、CMMI、ISO/IEC TR15504、ISO9000以及其他有关的资料和文件以及国外企业实施CMM的实际情况,结合国情,确定了以CMMI作为主要参考文件来制定标准。最终形成了SJ/T 11234-2001《软件过程能力评估模型》和SJ/T 11235-2001《软件能力成熟度模型》行业正式标准,并于2001年5月1日正式实施。

  SJ/T 11234-2001《软件过程能力评估模型》针对软件企业对自身软件过程能力进行内部改进的需要,与CMMI连续表示形式基本相同。该模型有22个过程,分为4大类,即:过程管理类、项目管理类、工程化类和支持类,每个过程能力从0到5划分为6个评估等级,每个等级包含了通用目标、通用惯例、特定目标和特定惯例,它们组成一套衡量准则。按此准则对实际运行的过程进行评估,可以确定当前软件过程的能力状态。对每个过程评估后,可以得到企业软件过程能力的一条“谱线”。这是一个二维坐标曲线,横坐标是22个过程,纵坐标是6个等级。企业也可以根据自己的业务目标对各项软件过程改进工作的轻重缓急做出恰当安排,拟制出一条本企业希望达到的软件过程能力“谱线”,或者说是“目标轮廓”。企业还可以针对软件开发项目,根据项目的目标和要求,有针对性地“弄清楚”有关过程的能力状态,实施必要的过程改进,以支持项目的完成。

  SJ/T 111235-2001《软件能力成熟度模型》针对软件企业综合能力第二方或第三方评估的需求,与CMMI分阶段表示形式基本相同。该模型用成熟度1~5个等级来描述综合软件能力。除了成熟度等级1外,每个等级包含若干个过程方面,每个过程方面的实施情况由相应目标和惯例的实施情况体现。采用这种衡量准则可以评估软件企业的综合能力——软件能力成熟程度。

  SJ/T 11234-2001《软件过程能力评估模型》和SJ/T 11235-2001《软件能力成熟度模型》两项软件标准的特点是对各项软件工程活动给出了比较全面、细致的描述。在这两项标准的实施过程中,将会面临下列问题:

- 内容多,篇幅大。标准中涉及22个方面的过程,100多个惯例,总篇幅600多页,60余万字。因此,需要恰当处理篇幅大与阅读便捷的问题。

- 概念新,实践少。我国目前软件企业熟悉这两个标准的人不多。需要培养一批熟悉和运用标准的人才,指导软件企业稳步提高软件能力水平。

- 软件工程基础差。这两个标准给出了总体要求和方法,具体实施需要软件工程基础作指导,但我国软件企业缺少对软件工程标准的了解。

  针对以上问题,推进标准的实施需要考虑以下几个方面:

1. 开发相应的工具。软件能力评估标准涉及软件工程实践中的大量活动,为保证清晰、迅速而恰当地掌握和评价这些活动,提高软件企业运用标准的能力,需要具备一些评估工具。

2. 培训工作。赛宝认证中心已在国内数个软件园区和大型软件企业进行了培训工作。

3. 软件工程标准的制定与宣贯。我国目前已发布了20多项软件工程标准,但是要满足软件产业需要还有一定差距。因此,应加强对诸如软件生存周期标准、软件接口标准、软件度量标准、配置管理标准、质量保证标准、系统测试标准、软件项目管理标准、风险管理标准的宣贯工作。

4. 软件工程实践的交流。软件工程的发展要靠广大从事软件工程实践和理论研究的人员共同努力,所以经常性的交流活动可以促进我国的软件工程理论和实践水平,从而进一步支持模型标准的正确实施。

6.赛宝认证中心的作用

  赛宝认证中心是经国家认可/授权、专业从事第三方认证的权威机构,在软件质量保证领域实力雄厚,是国家信息产业部授权的可以开展CMM培训、咨询、评估业务的三家试点单位之一,也是《SJ/T 11234-2001 软件过程能力评估模型》和《SJ/T 11235-2001 软件能力成熟度模型》两个标准的主要起草单位,拥有多名中国CMM评估员与培训教师,并聘请了数名美国、印度的CMM主任评估员(Lead Assessor),可以直接对企业进行CMM的培训、咨询和评估工作。

  赛宝认证中心致力于中国软件事业的发展,热诚帮助企业建立和实施CMM。赛宝认证中心可提供的业务有CMM培训、咨询和评估(国内、国外评估)等服务,其中:

  CMM培训:包括软件能力评估标准,实施CMM的过程方法,以及企业领导和员工的职责和义务;

  CMM咨询:对组织的软件质量体系现状进行诊断,成立软件工程过程组(SEPG),编制文档框架、模板,进行文档审核,落实改进方案;

  CMM评估:确定评估范围、成立评估小组、制定评估计划、实施评估过程和报告评估结果 。

  集多种业务能力于一身的赛宝认证中心,通过“一次审核,多项认证,多种证书”,为企业带来极大方便。赛宝认证中心目前已对国内多家软件企业提供了CMM培训和认证服务。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值