
2006-5-21 20:10
pharos
软件过程改进与软件能力成熟度模型 SW-CMM
软件过程改进与软件能力成熟度模型 SW-CMM
(1) 为什么过程管理与过程改进对于软件产业是重要的?CMM的角色是什么?
大家都知道“软件危机”,简单地说就是:软件质量达不到要求,软件项目无法按时完成,和软件项目的花费超预算。这是一个世界性的问题。于是,在试图解决这个危机时,就引入了软件工程过程管理与软件工程过程改进的概念。
有软件开发经验的同行都知道,许多问题不是出在不懂怎么做,而是没有安排做,做的次序不对.做得不好.或不知道怎样做得更好。软件工程过程管理就是要把整个软件的生命周期,从原始概念到产:品维护,订出—个明确合理的工程过程加以管理。
软件工程过程改进则是不断改善软件工程过程的制订及其管理。缺少了过程管理与改 进,就没有可能消除软件危机,更无可能使我们开发制造软件的能力逐步地成熟起来。
恐怕没有人会反对过程管理与改进的重要性?问题就归结到该做些什么,该怎样做。
有些人担心,过程管理会影响甚至压制专业人员的创造性。只要分析一下就会明白,好的工程过程反而会保证软件项目不会陷入混乱状态,开发人员不必被动地到处救火,因而就能有充分的时间按计划进行创造。关键的一点是,我们要作过程的主人,而不是作过程的奴隶。过程及其管理只不过是我们手中的一件工具,而且这件工具是我们为了自己而设计的。 我们在设计制定这件工具的时候,必须令其起到“利”器的作用。正如古语说的“工欲善其事,必先利其器”。绝不能把过程和管理看作、也不能让过程管理成为束缚自己的东西。时刻记住:我们是过程与管理的主人。如果我们发现现行的过程有缺点,就改进它。
在试图回答怎样进行软件过程管理与改进这个问题的时候,软件界的许多人提出了各种 各样的方案。其中,卡内基梅隆大学的软件工程研究所SEI(Software Engineering Institute)提出了SW—CMM。
SW—CMM是;软件能力成熟度模型(Software Capability Maturity Model)。
(以下简称为CMM)应该说是:能力成熟度成长的模型,因为CMM的五个等级标志 着企业的逐渐提高的软件开发能力的成熟度;更有价值的是,它列出了为要达到每一个成熟度等级所必须要做的事。CMM的提出者希望企业通过使用这个模型,一个等级一个等级地去提高它们的软件开发及生产能力。
在讨论CMM的应用之前,首先明确一下什么是“模型”。“模型”是对某种事物的模拟。 我们要注意的是,CMM所要模拟的对象是(CMM的提出者所定义的):软件能力成熟度 及其相关的实践行动。因此,从某种意义上来说,CMM本身是一种学术理论。一切根据C MM所进行的活动都是对这种理论的尝试。“软件过程本身也是一个软件”,CMM表达的只 是其中的一种写法。
一些推行CMM的人把它形容为“路线图”,亦即“达到目的地的路径”的意思。笔者 并不同意这种比喻,因为按照CMM去做的企业中,有成功的,也有失败的。(失败的原因 是多种多样的,笔者将会在以后的文章中专门讨论这个问题。)中国媒体宣传的多是一些成 功的例子,而忽略了那些无甚收效、甚至是失败的例子。笔者认为,应该把CMM比作“合 成的菜单与菜谱”。说它是“菜单”,因为它提出了一种为了某一特定目标的,分组配套起来 了的方法:企业要达到某个成熟度等级就必须做某一组的软件关键过程活动;说它是“菜谱”, 因为它详细列出了每—项软件关键过程活动的各个实践行动组成部分。说它是“合成的”的, 因为它的提出是通过总结各种不同的经验后,再加上引入“全面质量管理”理论的应用而衍 生出来的。
另外,不能忽视的一点是, CMM是为一个特定类型的软件企业为对象而制订出来的。 它们是:承接政府(或军方)大型软件合同的企业。因此,中小型企业在采用CMM的时候, 必须运用自己的专业知识和判断力去进行剪裁和按照企业本身的特点和需要去解释它的条 文。用上面提到过的比喻,CMM就好比是一份包括各种等级的国宴的菜单。但如果你是中 小型饭店,或足。一个家庭.煮起菜来绝不会照搬国宴菜单,只能用作参考。
因此,正确的态度足把CMM作为一个参考模型,而不是一个必须完全照办的标准。
(2) CMM带给美国的软件产业什么影响?
让我们先来看看软件工程研究所SEI的一份名单:“公布了的企业软件能力成熟度等 级”。在这份名单中,达到CMM 2级的企业有l6间,达到CMM 3级的企业有42间, 达到CMM4级的企业有14间,达到CMM 5级的企业有11间,共83间。其中,绝大多数是美国的大型企业,而其中又以承接美国国防与政府的大型软件合同的公司为主。还有一些是大银行、大金融保险公司、或大航空公司的附属软件分公司(在本质上,许多这类附属分公司也是以类似合同的方式承接主公司的软件项目)。
值得注意的是,在这83间公司中,就有五六间印度的软件服务公司。他们向一切的美国或世界各国的客户提供服务。其中的某些公司业务发展迅速。
在新闻报道中,也可以知道,在美国的展开全面推行应用CMM的企业中,主要是较大规模的企业占多数,并多涉及合同式的业务。原因可能有几个:
a、正式地推行CMM,需要在人力和经费上增加投入。这方面中小企业会有困难。
b、要经过较长的一段时间之后(两年、三年、或者更长),才能看到成效。
c、没有很有力的证据能令人相信,对CMM的全面投入一定能够取得预期的效果。
d、许多企业都已有一套现行的软件工程过程。他们多数采用的办法是基于现有过程, 针对企业的需要而进行一些过程改进,而不是全盘实施引进CMM。
e、采用CMM,有成功,也有失败:有些人认为CMM是不合实际的、行不通的。(有 一篇由一个知名的软件专家所写的文章叫“不成熟的‘能力成熟度模型’”)
f、对于其软件产品直接在市场上销售的企业来说,真正的最终产品的质量竞争才是决 定成败的关键。所以他们不必追求“等级评鉴”。
笔者认为,CMM给美国的软件产业带来的不是轰轰烈烈的大变动,而是一种渐渐发生的影响。CMM的宣传影响了对软件过程管理与过程改进的重视,企业的管理人员极可能会参考CMM和其他的软件过程改进方案去制订或修改他们的软件过程。 在SEI的协助下,美国务地都建立了一些软件过程改进组织,每个月开个讨论会,互相交流经验,出点简报。会议开放给任何有兴趣的人。在旧金山海湾地区,包括硅谷,就有四个这种组织。成员一般是参加本组织的会议,但如果有特别感兴趣的议题,也会走远一点。有些时候,是咨询公司介绍他们客户的例子,当然同时是在推广生意业务。
随着软件工业界对过程管理与改进的日益重视,高等教育界也行动起来,以便对此作出贡献。大学的行动主要有两个目标;第一,向软件王业界提供软件工程教育方面的帮助;第二,向工业界提供受过良好软件工程教育的毕业主。大学与工业界是在紧密的合作之下展开这些行动的。形式主要有:
a.大学到软件企业或政府有关部门开课。
b.企业与大学一起共同开发、设计出公开讲授的或为企业特设的软件工程培训课程。
c.大学开设发放证书的训练计划。
d.在工业界顾问小组的协助与指导下,大学或其附属机构为一些软件工业界组织开办 系列化的各种活动;例如;课程、讲座、讨论会、及大型技术会议等等。
e.学校与一些非盈利的学术组织共同开办活动。
f.企业送员工去上大学有关的课程(工作时间或业余)。
g.学生到软件企业进行实践。
h.学生与教师在暑期到软件企业工作。
i.学校聘请软件(管理)工程师担任教师。
在阅读有关推广CMM的成效的资料时,我们需要注意到的一点是,SEI是由美国国防部资助的,他们必须要证明他们的理论在实践中行之有效,这种资助才会源源不断地到来。而对于那些承接美国政府与军方合同的公司,他们必须要经评鉴达到一定的CMM级别,才 利于争取合约;所以也需要证明他们的软件过程改进取得成果。
因此,他们在谈论CMM的效果时,倾向性是可能存在的。另外,在一份CMM成果总结中,SEI也表明,他们无法确定该文件当中的企业的例子是否具有代表性,考虑到,在采用CMM活动中失败了的公司, 会不愿再多讲他们的遭遇。
同时,在CMM的推行应用活动中,也无法象在其他的受控环境下的科学实验中那样, 设立对照组,用以作效果对比。
因此,我们在读材料的时候必须带有分析,运用自己的专业判断力。笔者读过国内的一 些文章,只转引了个别例子,就大讲实行CMM的收效,讲CMM的投资回报率(ROI, Return OF InvestmenL)是多么高。这很容易做成企业对推行CMM的效果有过高的预期,对投入与回报有不正确的估计,因而在实践中没能达到这种不切实际的 目标时,很容易会一下子失去信心而放弃努力。此外,对巴西及印度的软件业近十多年来的发展的报道中,也没有把ISO 9000及CMM的作用作恰如其分的分析。
要真正地利用好CMM,就必须全面研究它、如实报道它,以正确的态度对待它。
2006-5-27 14:24
anfaan
hao
支持, 关键是听过 没接触过, 多多向你学习!
2006-5-28 14:38
我是老鼠你是猫
Re: hao
[QUOTE][i]最初由 anfaan 发布[/i]
[B]支持, 关键是听过 没接触过, 多多向你学习! [/B][/QUOTE]
欢迎常来坐坐:) :shy2: :rose:
2006-6-4 18:02
ziele.z
不懂
2006-6-27 16:26
月明
SW-CMM:o
页:
[1]

Powered by ITPUB论坛