中国如何引进CMM评估,促进软件产业发展


北京软件行业协会

(本文转载自软件工程专家网www.21cmm.com)

一、CMM的含义及作用

  CMM(软件能力成熟度模型:Capability Maturity Model For Software)是由美国卡内基梅 隆大学的软件工程研究所(SEI:Software Engineering Institute)受美国国防部委托研究制定 并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力 的评估和改进。

  CMM软件评估标准是从1930年开始的近代质量管理理论与实践基础上发展起来的。1986年美国 卡内基梅隆大学由联邦政府赞助成立了软件工程研究所(SEI),1991年SEI采访了100多家软件公 司,开发出了CMM 1.0版本,1993年又推出了1.1版本。CMM把软件开发过程的成熟度由低到高分为 五级,即初始级、可重复级、已定义级、已管理级和优化级。随着CMM等级的提高,逐步降低了软 件开发风险,缩短了开发时间,降低了软件开发的人力物力成本,降低了灾难性的错误发生率, 提高了质量。CMM评估等级的提升会大幅度提高软件开发能力,有助于客户特别是大公司对该软件 企业建立信心,并向该软件企业下订单采购软件产品。

  我国软件要大幅度提高开发能力,走向世界,必须向国际上公认的软件评估标准靠拢。目前 北京的软件出口约占全国软件出口的三分之二,而美国的软件市场约占世界软件市场的三分之 二,这两个三分之二如何对接?即北京的软件产业如何能够开拓美国市场,关键之一就是要获得 CMM认证的通行证。印度软件企业因通过CMM认证而大量出口软件到美国为我们提供了先例。

二、美国、欧洲和印度的经验表明:CMM确能促进软件产业发展

1.CMM在美国

  现在美国10-15%的软件客户都是大公司,如波音公司、洛克希德公司等,他们一般都要求软 件供应商通过较高级别的CMM评估。

2.CMM在欧洲

  欧洲许多国家除独立研究与实践有关软件成熟度的软件工程理论和方法外,也引进了CMM评 估。英国著名的路透集团就是其中之一,该集团于1998年通过了CMM 2级评估,计划于今年通过3 级评估。在CMM评估中,对包括经理在内的所有员工都进行了培训,目前已有64名从事CMM评估的 全职人员。

3.CMM在印度

  印度的Infosys是拥有约4500名员工的大软件公司,已于1999年通过CMM 5级评估。1991年前 该公司软件开发没有执行标准,软件开发水平仅取决于开发人员个人的努力和高级主管对未来的 预测。随着软件开发领域的扩大,公司决策人意识到在公司中必须实施软件规范,1992年起按ISO 9001标准去做,1993年通过了ISO 9001论证。从1993年起又开始CMM评估,由1级一直提升到5级。 大幅度提高了软件开发能力,保证了向美国和欧洲软件出口的高增长,现在为《财富》杂志排名 前500家企业中的许多家提供应用软件。Infosys公司的CMM专家K.Dinesh先生在论坛上介绍了以上 情况后着重谈了个人的体会:CMM是一个很好的软件标准,可以给软件企业带来好处,但CMM能否 实施成功,取决于人的努力。在实施CMM中,职工要改变原来的习惯,每个人都要制定自己的目 标。软件质量由人 + 技术 + 过程决定。三个因素如同一张桌子的三条腿,每条腿都重要。

  印度的QAI公司是从事服务和软件开发的公司,积极参加CMM评估,现在是印度唯一专门从事 CMM评估的公司,也是亚洲第一个具有CMM评估资质机构。QAI的商务经理V. Manghani先生在论坛 上介绍了通过CMM评估提高印度软件产业整体水平的情况。印度的软件产值从10年前的5000万美元 增长到1998-1999年度的40亿美元,保持了50%以上的年增长率。目前印度有约1000家软件企业, 28万软件人员,仅次于美国。

  《财富》杂志中排名前500家企业中有200多家都是印度软件企业的 客户。印度在软件领域中取得好成绩的原因有:软件开发成本低、英语能力好、技术水平高、教育制度保证有顶尖人才参加软件开发、软件人员待遇高、员工对公司忠诚度好、采用好的质量管 理方法等。印度很多软件公司10年来一直进行软件过程改进,他们认识到只采用一种框架不能提 供很好的产品,因应采用混合性标准,主要有:ISO9001、CMM、P-CMM(个人软件开发成熟度模 型)、总体质量管理等。现印度有100多家软件企业通过了ISO9001论证,越来越多的企业认识到 应逐步采用CMM评估标准。

三、我国如何根据国情引进CMM评估

1. CMM是一种过程较复杂、费用较昂贵的评估

  CMM评估包括5个等级,共计18个关键过程域,52个目标,300多个关键实践。每一个CMM等级 评估周期(从准备到完成)约需12-30个月。每一级别的评估由美国卡内基梅隆大学的软件工程研 究所授权的主任评估师领导一个评审小组进行,其成员大部分来自企业内部。评估过程包括员工 培训(企业的高层领导也要参加)、问卷填写和统计、文档审查、数据分析、与企业的高层领导 讨论和撰写评估报告等。评估结束由主任评估师签字生效。

  要取得主任评估师的资格比较困难,首先要有10年以上的软件开发经验;其次要在美国卡内 基梅隆大学的软件工程研究所接受培训,培训费用每人约需数万美元,非美国人加倍;第三要经 过两次以上CMM评估的全过程实习;第四要得到已有主任评估师资格的人推荐。主任评估师的资格 并非终身制,如要继续保持,每年至少要参加两次CMM评估。目前全世界一共只有313个主任评估 师,大部分在美国,而我国大陆还没有一个主任评估师。

  由于我国在CMM评估中要聘请外籍主任评估师,所以费用较高。据估计,要通过一个级别的 CMM评估,费用是通过ISO9001认证的十多倍。

2. ISO9001与CMM的关系

  国际标准化组织ISO9000系列质量保证体系用于制造业的是ISO9001(在软件行业的实施指南 为ISO9000-3),与CMM均可作为软件企业的过程改善框架,前者面向合同环境,站在用户立场对 质量要素进行控制,而后者是对软件组织内部过程能力的逐步改善。

  ISO9001与CMM是强相关的,ISO9001不覆盖CMM,CMM也不完全覆盖ISO9000。一般言,通过ISO 9001认证的企业可达到CMM 2级或略高的程度,通过CMM 3级的企业只要稍做补充,就可较容易地 通过ISO 9001认证。粗略地说,ISO 9001近似于CMM “2.5级”。

  ISO 9001约有80%的文件可以用于CMM 2级评估。

3. CMM与工具

  CMM评估只定义了要做什么,但没有定义如何做。一般说,CMM评估主要考虑的是达到各个级 别的要求,至于工具通常就是利用现有的数据库软件和办公软件(如Microsoft公司的Excel), 专门的工具很少。

  北京鼎新信息系统开发有限公司在CMM评估实践的基础上,开发了一个基于Lotus Domino / Notes的软件开发过程管理工具:项目助手2000。

4.CMM评估的文化背景

  在CMM讨论会上,有人问已通过CMM 5级评估的印度Infosys公司的K.Dinesh先生,已通过了5 级,是否已万事大吉?回答是:“通过CMM 5级,只是万里长征的第一步。为了保持市场份额,还 要做许多工作”。显然,印度既看重CMM评估,但更看重市场,通过CMM评估只是更好地进行市场竞 争的手段,在市场竞争中任何时候都不能掉以轻心的。

  国外CMM等级评估生效,只需要主任评估师的签字,既没有某主管单位的批准,也没有盖上公 章的证书。显然,国外更看重主任评估师及公司的信誉。

5.我国的软件企业应根据自己的实际情况引进CMM评估方法

  在引进CMM中,要根据软件企业的实际情况,大致可分为两类:

  有软件出口的企业,应逐步通过CMM等级评估,以提高在国际市场上的竞争力。

  一般软件企业可以借鉴CMM的方法,改进软件企业的管理,提高软件开发水平。

  当前国内比较容易着手做的工作是:进行CMM的普及性培训,请已通过CMM某级别的软件企业 代表介绍经验等。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于游戏平衡性——王者荣耀英雄伤害数值参考

收集王者荣耀各个英雄的装备对技能增加的百分比,这样的主要目的为保证游戏的平衡性。对于技能主要包括:血量、物理攻击、法术攻击、物理穿透、法术穿透、暴击等。关于各个装备,已经列成一张excel表格,在这里不再详细描述表格。在这…

Swift-setValuesForKeysWithDictionary

重写 setValuesForKeysWithDictionary 那么字典中可以有的字段在类中没有对应属性 class Person : NSObject {var age :Int 0 // 重写 setValuesForKeysWithDictionary 那么字典中可以有的字段在类中没有对应属性override func setValuesForKeysWithDictionary(keyedValues…

hdu 1269 迷宫城堡(trajan判环)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1269 题意&#xff1a;略 题解&#xff1a;trajan模版直接求强连通分量。 #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N 1e4 10; const i…

Arithmetic图像处理halcon算子持续更新

目录abs_diff_imageabs_imageacos_imageadd_imageasin_imageatan2_imageatan_imagecos_imagediv_imageexp_imagegamma_imageinvert_imagelog_imagemax_imagemin_imagemult_imagepow_imagescale_imagesin_imagesqrt_imagesub_imagetan_imageabs_diff_image 功能&#xff1a;计算…

身于“乱世”,我们程序员应该如何打算?

今天看了这篇文章&#xff0c; 发现自己也有点生处乱世&#xff0c;不平之感&#xff0c;但是文章的朴实却让我有了一个良好的反省&#xff0c;特此转载 分类&#xff1a; 项目管理 2011-09-04 00:58 770人阅读 评论(12) 收藏 举报 不仅要低头拉车&#xff0c;还要抬头看路。…

Activity的启动流程

Activity的启动流程 努力工作 自己平时工作接触的frameworks代码比较多&#xff0c;但真正理解的很有限&#xff0c;一直在努力分析。。我主要还是用补丁的形式来看 core/java/android/app/Activity.java | 6 core/java/android/app/ActivityManagerNative.jav…

es6--箭头函数

基本用法 ES6允许使用“箭头”&#xff08;>&#xff09;定义函数。 var f v > v; 上面的箭头函数等同于&#xff1a; var f function(v) {return v; }; 如果箭头函数不需要参数或需要多个参数&#xff0c;就使用一个圆括号代表参数部分。 var f () > 5; // 等同于…

halcon Bit图位像素处理算子,持续更新

目录bit_andbit_lshiftbit_maskbit_notbit_orbit_rshiftbit_slicebit_xorbit_and 功能&#xff1a;输入图像的所有像素的逐位与。 bit_lshift 功能&#xff1a;图像的所有像素的左移。 bit_mask 功能&#xff1a;使用位掩码的每个像素的逻辑与。 bit_not 功能&#xff1…

NYOJ题目839合并

--------------------------- AC代码&#xff1a; 1 import java.util.Scanner;2 3 public class Main {4 5 public static void main(String[] args) {6 7 8 Scanner scnew Scanner(System.in);9 10 int timessc.nextInt(); 11 …

指针的魅力

序 指针说&#xff1a;love me&#xff0c;love me&#xff01; 但是他对指针说&#xff1a;I hate u&#xff0c;I hate u&#xff01; …… 指针仅仅是作为指针&#xff0c;我们可以把它当做有用的工具&#xff0c;为我们提供便利与好处。说起工具不得不让我想起一样东西—…

python多进程

2019独角兽企业重金招聘Python工程师标准>>> python多进程 进程简介 进程是程序在计算机上的一次执行活动。当你运行一个程序&#xff0c;你就启动了一个进程。显然&#xff0c;程序是死的(静态的)&#xff0c;进程是活的(动态的)。进程可以分为系统进程和用户进程。…

halcon彩色图像颜色处理算子,持续更新

目录apply_color_trans_lutcfa_to_rgbtrans_to_rgbclear_color_trans_lutcreate_color_trans_lutgen_principal_comp_translinear_trans_colorprincipal_comprgb1_to_grayrgb3_to_graytrans_from_rgbapply_color_trans_lut 功能&#xff1a;申请使用颜色查找表。 cfa_to_rgb …

夺命雷公狗---node.js---20之项目的构建在node+express+mongo的博客项目5mongodb在项目中实现添加数据...

我们上一步就引入了mongodb了&#xff0c;那么下一步就要开始写添加数据了&#xff0c;不过有个前提是先将表单的数据处理好&#xff1a; 最基本的这部现在已经成功了&#xff0c;因为最基本的这步就是先将表单处的提交方式和提交地址给处理好&#xff0c;这里和PHP的基本上是一…

重新绑定ItemsSource先设置ItemsSource = null;的原因

即报错信息为&#xff1a;在使用 ItemsSource 之前&#xff0c;项集合必须为空。原因&#xff1a;Items和ItemSource&#xff0c;只能有一个生效&#xff0c;想用其中一个&#xff0c;另一个必须是空。重新绑定ItemSource&#xff0c;虽然绑定的集合对象Clear了&#xff0c;但是…

敏捷开发学习

Scrum 敏捷开发&#xff0c;绩效管理&#xff0c;团队管理&#xff0c;企业管理&#xff0c;ASP.net MVC 敏捷开发 培训|咨询 工具开发 课题研讨 http://blog.csdn.net/cheny_com/article/category/794542 http://blog.csdn.net/vincetest/article/category/650747 http://blog…

Git commit后,本地代码丢失解决方法

问题描述&#xff1a; 提交代码时&#xff0c;rebase了两次&#xff0c;本地代码丢失了&#xff0c;吓得我差点跳起来。解决方法如下&#xff1a; 1、执行命令&#xff1a; git reflog d6ea731 (HEAD -> dev, origin/dev, master) HEAD{0}: checkout: moving from master to…

Edges图像边缘处理halcon算子,持续更新

目录close_edgesclose_edges_lengthderivate_gaussdiff_of_gaussedges_coloredges_color_sub_pixedges_imageedges_sub_pixfrei_ampfrei_dirhighpass_imageinfo_edgeskirsch_ampkirsch_dirlaplacelaplace_of_gaussprewitt_ampprewitt_dirrobertsrobinson_amprobinson_dirsobel_…

Android存储数据方式

可以查看Android开发文档中的&#xff1a;/docs/guide/topics/data/data-storage.html Android provides several options for you to save persistent application data. The solution you choose depends on your specific needs, such as whether the data should be privat…

防止cpu 一直被占用 sleep(0) 和 yield

在java的Thread类中有两个有用的函数&#xff0c;sleep和yield&#xff0c;sleep就是线程睡眠一定的时间&#xff0c;也就是交出cpu一段时间&#xff0c;yield用来暗示系统交出cpu控制权。这两个函数在多线程开发的时候特别有用&#xff0c;可以合理的分配cpu&#xff0c;提高程…

做一个有胆识的有为青年

1、一个年轻人&#xff0c;如果在这四年的时间里&#xff0c;没有任何想法&#xff0c;他这一生&#xff0c;就基本这个样子&#xff0c;没有多大改变了。 2、成功者就是胆识加魄力&#xff0c;曾经在火车上听人谈起过温州人的成功&#xff0c;说了这么三个字&#xff0c;“胆…