周伯生教授CMM认证工作会上作学术报告

2008-04-09 04:08:43来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

2000年10月20日,北京软件产业促进中心召开北京软件产业基地企业质量认证实施工程第二次工作会议,特邀北京航空航天大学软件工程研究所周伯生教授做CMM评估基本要点及最新动态学术报告,准备开展CMM评估的约20家软件企业的代表参加了会议。

周教授在报告中介绍了美国软件工程实践的现状、CMM/PSP/TSP软件过程的框架和企业进行CMM评估有关的若干问题、CMM的最新进展,以及在卡耐基-梅隆大学参加世界软件工程研讨会的情况。周教授认为,软件过程改善是当前软件开发技术的核心问题,而软件产业的发展,在经历了从70年代开始的结构化生产时代,到90年代中期,以CMM模型的成熟模型和日益为市场接受为标志,已经进入以过程为中心的时代,而软件发展第三个时代,及软件工业化生产时代,从90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础,已经渐露端倪,估计到2005年,可以实现真正的软件工业化生产,这个趋势应该引起软件企业界和有关部门的高度重视,及早采取措施,跟上世界软件发展的脚步。
北京软件产业促进中心

软件因其复杂性和难以度量,使软件项目管理较之其他项目管理而言有其特殊性。那么,如何确保软件项目的质量?软件研发项目管理又应该遵循什么标准呢?


打造软件管理新观念
----周伯生教授谈软件研发项目管理

问:近年来,您在大力倡导软件研发项目管理方面做了很多工作。首先,请您 介绍一下软件项目管理的由来,您认为实施软件研发项目管理的意义何在呢?

答:软件研发项目管理最早源自于70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理不善引起的,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。这个结论非常重要。到了90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。

在商用软件产业中,这一现象尤为严重。1995年,美国共取消了810亿美元的软件项目,其中31%的项目未做完就取消了,53%的软件项目进度通常要延长一半的时间,通常只有9%的软件项目能够及时交付并且费用也不超支。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件研发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常往意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露了硬件的缺点;关心创新而不关心费用和风险;军用标准太少且不够完善等等。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制。需求变化和风险管理等都是与项目管理直接相关的因素。由此可见,软件研发项目管理的意义至关重要。

软件项目管理和其他项目管理相比有其特殊性。首先,软件是知识产品,进度和质量都难以度量,生产效率也难以保证。其次,软件系统的复杂程度也是超乎人想象的。例如,宇宙飞船的软件系统源程序代码多达2000万行,如果按过去的生产效率一个人一年只能写1万行代码的话,那么需要2000万人年的工作量,这是非常惊人的。正因为软件如此复杂和难以度量,软件研发项目管理的发展还很不成熟。

 

问:如您所说,软件是十分复杂且难以度量,因此对软件研发项目进行管理必须依据一定的标准。国内软件行业以前倡导的标准是1SO9000系列,而您却在很多场合大力倡导CMM,即能力成熟度模型(Capability Maturity Model)。请问这两种标准的区别何在?为什么您主张软件研发项目管理一定要依循CMM标准呢?

答:ISO9000是国际标准化组织提出的系列标准,其中1So9003是专门为软件行业定制的。而CMM则是美国卡纳基梅隆大学软件工程研究所(CMU/SEI)提出的软件研发项目管理的一系列方法。1SO9000和CMM的共同点是二者都强调了软件产品的质量。所不同的是,ISO9000强调的是衡量的准则,例如应该做什么、什么算好、什么算不好,却没有告诉软件开发人员如何达到好的目标,如何避免差错。CMM则提供了一整套较为完善的软件研发项目管理的方法。美国先后在这上面投资了5亿多美元,做了很多实践工作来改进软件研发项目管理,而且其内容还在不断地改进,CMM1.1版本推出后,现在又开始推出了CMM 2.0。ISO9000系列标准涵盖面广,即包括其他行业也一直没有什么改进。在软件行业方面,它实际上是由英国学院派一批没有做过复杂巨系统的人制定出来的标准,如果认为,只要通过ISO9000认证,就可改善软件生产,并用它来引导国内软件行业的发展,这无疑是种误导,我认为应该倡导美国的CMM系列。我在1999年宣扬这个观点时,当时有些人还觉得这个观点有些偏颇,但现在,越来越多的人已经同意这种观点。最近,北京市软件行业协会在中关村电脑节期间也开始倡导依循CMM来进行软件研发项目的管理。相信国内对这方面的重视程度还会进一步加强。


问:CMM的具体内涵是什么?是否实施了CMM后,软件研发项目的质量就能够有所保障了呢?

答:根据软件生产的历史与现状。CMM框架可用5个不断进化的层次来表达:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。在某个层次内部,也有成熟程度的区别。在一个较低层次的上沿,很可能与一个较高层次的下沿非常接近,此时由这个较低层次向该较高层次进化也就比较容易。反之,在一个较低层次的下沿向较高层次进化,就比较困难,在CMM框架的不同层次中,需要解决带有不同层次特征的软件过程问题。因此,一个软件开发单位首先需要了解自己处于哪一个层次,然后才能够对症下药地针对该层次的特殊要求解决相关问题,这样才能收到事半功倍的软件过程改善效果。任何软件开发单位在致力于软件过程改善时,只能由所处的层次向紧邻的上一层次进化,即软件过程的进化是渐进的,而不能是跳跃的。而且在由某一成熟层次向上---更成熟层次进化时,在原有层次中的那些已经具备的能力还应该得到保持与发扬。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ROSE技术白皮书

下一篇:需求变更