`

CMM

 
阅读更多
一、引言
信息技术的发展,使得软件规模越来越大。传统的“软件作坊”,生产往往依赖于人们急于创造财富的激动情绪,生产处于无序、混沌的一种状态,软件产品的质量不能保证,甚至中途撤消软件项目。这种生产方式已经不能满足日益增长的软件需求了。
人们认识到,软件过程是否完善是软件风险大小的决定因素。
1986年11月,美国卡内基梅隆大学的软件工程研究所(SEI)应美国联邦政府的要求,针对美国国防部对软件承包商的能力评价问题,研究"过程成熟度框架"。
它主要用于软件开发过程和软件开发能力的评价和改进。CMM自1987年开始实施认证,现已成为软件业最权威的评估认证体系。

二、CMM综述
2.1什么是CMM?
CMM (软件能力成熟度模型)是英文 Capability Maturity Model for Software缩写,SW-CMM 的简称。
CMM 的定义是:有关软件企业或组织的软件过程进程中各个发展阶段的定义、实现、质量控制和改善的模型化描述。这个模型用于确定软件企业或组织的软件过程能力和找出软件质量及过程改进方面的最关键问题,为企业或组织的过程改进提供指南。
CMM 的核心思想是将软件开发视为一组过程,并根据统计质量管理的理论对软件开发进行过程管理,以使其满足工程化、标准化的要求,使企业能够更好地实现商业目标。它侧重于软件开发的管理及软件工程能力的提高,因此 CMM 可以作为企业软件过程改进闹改希镏砑⒒菇⒀细竦摹⒐娣兜娜砑⒐蹋钣行У靥岣呷砑こ棠芰Α?

2.2 CMM的成熟度等级
CMM 提供了一个软件能力成熟度模型的框架,它将软件过程改进的进化步骤组织成五个成熟度等级,为软件过程不断改进奠定了一个循序渐进的基础。每一个成熟度等级为继续改进过程提供一个台基。第一级实际上是一个起点,任何准备按 CMM 体系进化的企业都自然处于这个起点上,并通过这个起点向第二级迈进。除第一级外,每一等级包含一组过程目标,通过实施相应的一组关键过程域来达到这一组过程目标。当这一组目标达到时,就能使软件过程的一个相应的重要成分得以稳定。每达到成熟度框架的一个等级,就建立起软件过程的一个相应的稳定成分,从而导致软件开发组织过程能力一定程度的增长。
CMM的成熟度分级、特征与要求见下表:
表-1 CMM的分级、特征与要求
等级名称 特征与要求
初始级 软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经过定义的,成功依赖于个人的努力。
可重复级 已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪律已经就位,使具有类似应用的项目。能重复以前的成功。
定义级 管理活动和工程活动两方面的软件过程均已文档化、标准化、并集成到组织的标准软件过程。全部项目均采用供开发和维护软件用的组织标准软件过程的一个经批准的剪裁版本。
管理级 企业对产品及过程建立起定量的质量目标,同时在过程中加入规定的很清楚的连续的度量。作为企业的度量方案,要对项目的重要过程活动进行生产率和质量的度量。软件产品因此而具有可预期的高质量。达到该级的企业已实现过程定量化。
优化级 整个企业将会把重点放在对过程进行不断的优化,采取主动的措施去找出过程的弱点与长处,以达到预防缺陷的目标。同时,分析各有关过程的有效性资料,作出对新技术的成本与效益的分析,并提出对过程进行修改的建议。达到该级的公司可自发的不断改进,防止同类缺陷二次出现。



2.3 CMM的关键过程域
在CMM中每个成熟度等级(第1级除外)规定了不同的关键过程域,一个软件组织如果希望达到某一个成熟度等级,就必须完全满足关键过程域所规定的不同要求,即满足每个关键过程域的目标。所谓关键过程域是指一系列相互关联的操作活动,这些活动反映了一个软件组织改进过程时必须集中精力改进的几个方面。换句话说,关键过程域标识了达到某个成熟度等级时所必须满足的条件。在 CMM 中一共有18个关键过程域,分布在2至5级中:
第 2 级(可重复级)有6个关键过程域,主要涉及建立软件项目管理控制方面的内容。
即:需求管理(RM)、软件项目计划(SPP)、软件项目跟踪与监控(SPTO)、软件子合同管理(SSM)、软件质量保证(SQA)、软件配置管理(SCM)

第 3 级(定义级)有7个关键过程域,主要涉及项目和组织的策略,使软件组织建立起对项目中的有效计划和管理过程的内部细节。
即:组织过程焦点(OPF)、组织过程定义(OPD)、培训程序(TP)、集成软件管理(ISM)、软件产品工程(SPE)、组间协调(IC)、同级评审(PR)

第 4 级(管理级)有2个关键过程域,主要的任务是为软件过程和软件产品建立一种可以理解的定量的方式。
即:定量过程管理(QPM)、软件质量管理(SQM)

第 5 级(优化级)有3个关键过程域,主要涉及的内容是软件组织和项目中如何实现持续不断的过程改进问题。
即:缺陷预防(DP)、技术变更管理(TCM)、过程变更管理(PCM)


三、软件企业与CMM
3.1实施CMM对软件企业的意义
中国正式加入WTO之后,中国软件市场已经是世界市场的一部分,中国软件企业已经直接面对国际IT企业的残酷竞争,中国企业除了要在国内占领市场之外,还应该放眼世界,走出国门,这样才能更好的生存和发展。
如何进入国际市场,成为了所有一切的前提。中国软件要赢得国际市场的信任和青睐,首先必须达到国际标准,通过国际标准的认证。现在想在软件产业化方面有所作为的企业,已经充分意识到加强国际标准认证的重要性和紧迫性。
鉴于CMM认证在国际上的声誉地位以及CMM对于软件企业能带来的实质性的质量的改进革新,以及我国政府大力支持CMM认证的政策,在企业内部实行项目管理和进行CMM认证:
3.1.1能将以前的隐性管理变为显性管理,把CMM带来的管理需求推到前台,并且确定用户在软件开发过程中的核心地位,使研发过程逐步透明化,项目进度得到更好的控制,实现全过程的质量管理。
3.1.2可以创造一个良好的软件开发环境和企业文化。软件开发人员严格遵守共同的规则规范,每一步都有明文记录,将上一次的经验运用到下一次步骤或项目中去;还能够做到分工明确,责任清楚,从而实现自身价值。
3.1.3 CMM是评价一个软件企业项目管理及研发实力的国际准则,它标志着企业走上标准化、规范化国际化的发展道路。
所以,CMM认证已成为软件企业的首选行动选择。通过CMM认证最直接的收益就是得到越来越多的国外企业的信任,也就能接到越来越多的订单。
原领导摩托罗拉中国研究中心通过CMM认证的李启煊先生曾说:“中国软件企业一定要进行CMM认证,如果我们连这点都做不到,将不但被国际软件产业价值链排除在外,不久以后甚至连中国本土的市场也会全部失去,因为CMM是目前提高软件企业竞争力的最佳途径。”

3.2软件企业如何实施CMM
3.2.1领导重视,全员参与。
将CMM变成习惯思维而不是应付差事。
3.2.2以CMM为软件过程改进指导书,结合企业现状作适当配置。
不要一味不变的本本理论。
3.2.3运用管理工具。
实施CMM需要的工具有:软件开发过程框架、需求管理工具、面向对象的分析设计工具、配置管理工具、变更管理工具、软件测试工具等等。
3.2.4建立软件工程过程小组(SEPG),负责软件过程改进。
制定出规范、规程,并经过与项目组反复讨论后确定,以保证其科学有效。此外,还要提供培训和咨询服务,解答项目人员的疑问,对项目进行检查并形成各种工作报告等等。

3.3软件企业实施CMM的范例
3.3.1 软件企业实施CMM的过程:
软件开发组织中实施CMM评估应该按照以下两个阶段进行:
第一阶段:申请评估的软件开发组织首先应该自己组织CMM培训,强化组织成员的CMM理念,在整个组织中树立起过程管理和质量管理意识,并着重培养一批具有初步经验的CMM实施管理人员。在此基础上,选取一些合适规模的中小型项目进行试点,初步积累一些实施CMM的经验,为进行正式的CMM评估打下基础。
第二阶段:在第一阶段取得收获的基础上,聘请有实施CMM成功经验的单位作为咨询顾问,在组织内全面实施CMM。并且在咨询专家的指导下提出评估申请,并着手准备组织预评估和正式评估。

3.3.2 某软件企业实际实施CMM的范例:
在正式决定实施CMM2级的初期,企业上下都非常乐观,认为在自己的企业实施CMM是一件轻而易举的事。
实施CMM首先从培训和过程文档的编写开始。经过培训,大家都认为基本掌握了CMM的知识要点,领会了基于过程改进企业软件能力的思想。
SEPG组开始定义企业的软件过程规范和文档模板的时候,就开始暴露出一些问题。因为SEPG组成员基本上都有本职工作,过程文档的编写时间得不到保证,导致过程规范文档的编写不能保证进度。而且在文档编写中,缺乏整体控制。SEPG组在制订过程文档的同时,软件部门也在酝酿进行组织结构调整,这两件事同时在进行,分别由不同的人员在运作,相互间的沟通渠道也不顺畅。
在经过了几轮修正后,尽管过程文档还存在不少的问题,但是SEPG组认为即便再次修改也很难有较大改善。由于进度已经明显的滞后,在企业高层领导的批准下,经过对项目组成员的培训,开始了CMM的试运行工作。
部门对于项目计划比较重视,但忽视了项目策划过程。在试运行的项目中,SEPG组要求项目经理需要把项目策划过程逐一地留下证据,便于SQA人员的审核。在实际的操作过程中,前期工作留下的隐患开始逐步暴露出来。首先暴露出来的问题是项目估计规程存在一些不合理的地方。其次,由于以前基本没有科学地进行估计,也没有适用的历史数据,项目组成员在进行估计时有一种无从下手的感觉。再次,项目成员对于过程文档的理解不够深入,经常理解错误。导致项目组在项目策划过程中消耗了很长的时间,也带来了一些争执和冲突。
项目计划出来以后,和以前的项目计划比较,发现工作量增加了很多。究其原因:1.新的计划是经过详细的估计过程逐步得到的,而以前的计划则属于是“拍脑瓜”的结果。2.原计划中,管理活动考虑较少,而新的计划增加了一些可以预期的管理活动。3.由于是初次使用科学的方法进行估计,但是估计过程中的参数选择可能与企业现状不符。
高级经理在看到这个计划后,虽然也觉得新的项目策划过程更加科学,但是,迫于绩效考核的压力,不大情愿批准这样的计划,甚至不愿意把这些项目投入到CMM的试运行中。
在实施的过程中,也存在一些问题困扰着SEPG组。
例如: 企业实施CMM时都想尽快地见到实效,可是在实施初期,过程规范很难一步到位,过程规范的探索和改进会增加软件项目的工作量。实施CMM可能会在相当长的时间内,企业需要付出很多学费,而效果却需要很长的时间才能显露出来。
值得庆幸的是,上述的一些问题已经开始被SEPG组所识别,并且得到了公司各方的重视。同时,咨询公司也在积极地指导我们解决试运行过程中碰到的问题。希望在不久的将来,CMM能够得到大家的认可,主动地按照相应的过程规范来运作软件项目,并且可以顺利地通过评估。
分享到:
评论

相关推荐

    CMM3 过程模板文档全套

    CMMI3级软件过程改进方法与规范 1.1 CMMI简介 4 1.1.1 CMMI发展简史 4 1.1.2 CMMI的过程域 5 1.1.3 CMMI的两种表示法 6 1.2 CMMI阶段式表示法 7 1.2.1 成熟度等级L1:初始级的特征 8 ...1.7 CMM/CMMI在中国 21

    java CMM.zip

    本实验的实验目的为构建一个CMM语言解释器,该解释器分为三部分:词法分析器,语法分析器,语义分析器,三者为拓扑关系,即后一个部件建立在前一个部件的基础之上。 实验内容主要包括:CMM语言的词法分析,语法分析...

    TRACE32软件的Practice脚本 cmm脚本.zip

    标准Practice脚本的扩展名是.cmm,因此有人也称之为cmm脚本 Practice脚本是Lauterbach公司提供的一种脚本语言,运用于其TRACE32软件当中,非常容易上手、并且功能强大。 我在文章...

    软件成熟度模型CMM入门(PDF格式)

    很多时候,人们提到CMM,其实指的是SW-CMM,即软件CMM。除了SW-CMM以外,还有P-CMM,SE-CMM,SA-CMM和CMMI等,这些CMM都是美国Carnegie Mellon大学软件工程研究所(SEI)的产品。每个CMM都是独立的产品,有各自不同...

    CMM3规范项目管理

    cmm3 CMM3是项目管理软件。由美国卡内基梅隆大学的软件工程研究所(SEI)创立的CMM(Capability Maturity Model 软件能力成熟度模型)认证评估,在过去的十几年中,对全球的软件产业产生了非常深远的影响。CMM共有五个...

    软件过程改进与CMM介绍

    1. 软件过程改进与CMM的关系 ? 2. 为什么有些企业实施CMM后,质量没有明显提高,进度更落后了,成本增加了,人员更累了?? 3. CMM理论本身有缺陷吗? 4. 按顺序遍历CMM过程域和关键实践,这种做法可行吗? 5. 应该...

    CMM教材(中文版)

    CMM是能力成熟度模型(Capability Maturity Model)的缩写词。在软件业中实质上就是指Software Capability Maturity Model(SW-CMM),即软件能力成熟度模型,通常简化描述成CMM。所以,CMM就是指软件能力成熟度模型...

    浙江大学CMM课件浙江大学CMM课件浙江大学CMM课件

    浙江大学CMM课件浙江大学CMM课件浙江大学CMM课件浙江大学CMM课件

    CMM词法分析器 使用java语言实现

    使用JAVA语言实现的CMM词法分析器,从txt文档读取CMM代码进行分析

    CMM2实施文档

    CMM2级实施计划.doc 用户需求说明书.doc 产品需求规格说明书.doc 需求评审报告.doc 需求跟踪报告1.doc 需求变更控制报告1.doc 项目估计表1.doc 项目计划1.doc 项目计划变更控制报告1.doc 项目监控数据表1.doc 项目...

    CMM3体系架构

    CMM3是项目管理软件。由美国卡内基梅隆大学的软件工程研究所(SEI)创立的CMM(Capability Maturity Model 软件能力成熟度模型)认证评估,在过去的十几年中,对全球的软件产业产生了非常深远的影响。CMM共有五个等级,...

    cmm解释器大作业

    武汉大学cmm解释器构造实践课程作业,包含词法分析器 语法分析器 语义分析和界面。

    cmm.rar_CMM

    CMM的实验讲义,详细介绍,说明很清楚。希望对大家学习CMM有用

    CMM一些关键过程域的实践

    CMM将软件过程成熟度划分为5个级别------从第一级别(最低)到底五级别(最高),针对每一级别,CMM分别定义了一些关键过程域(KPA,Key Process Area)。一个软件机构,如果要达到某一个特定的级别就必须关注这些域...

    CMMI和CMM的主要区别

    通过列表对比方式,简单阐述CMMI和CMM两者的主要区别。

    CMM-manager 中文手册

    CMM-manager

    CMM中的软件质量保证实施准则

    SQA(Software Quality Assurance,软件质量保证)是CMM的一个关键过程域,CMM的每个关键过程域几乎都涉及软件质量的验证,它在软件开发过程中起着非常重要的作用

    CMM能力成熟度模型_日文版

    3 作業面から見たCMMの定義......................................... 27 3.1 成熟度レベルの内部構造...................................... 28 3.2 成熟度レベル.................................................

    cmm.rar_CMM_CMM 解释器_CMM解释器_C语言 解释器_C语言解释器

    这是一个cmm语言的解释器。所谓cmm,相对于C++,就是对C语言的进一步简化。

    软件测试CMM文档 Word版

    软件测试CMM软件测试CMM软件测试CMM软件测试CMM软件测试CMM软件测试CMM软件测试CMM软件测试CMM软件测试CMM

Global site tag (gtag.js) - Google Analytics