UML软件工程组织

软件质量,CMM不是惟一
作者:软件世界 2002年01月26日

 

CMM―软件能力成熟度,如今,已经成为了软件质量保障的代名词。其实,只要有一个科学合理的软件管理流程,不实施CMM也一样能够生产高质量的软件产品。但是,这并不代表CMM就不应该推广,只是,我们应该提倡因企业而异,根据企业自身实际情况选择保障软件质量的方式。

软件能力成熟度模型是软件组织管理的一种方法和工具。我国软件业以何策略应对国内国际市场和用户的最终需求是一个很值得研究的问题。我们特别提出要加强软件测量研究这个观点,而不是盲目追从某一种规范。

软件质量 必须重视

当今是个信息时代。信息产业已由平台(单机)时代发展到了网络系统时代。各种各样的商业模式正在迈入基于网络系统的新时期。信息产业的制造商正大力开展基于数字信息的全寿命管理运动,其中包括需求生成、产品系统分析、初步和详细设计、制造验收、批量生产和运用管理。信息使市场战争形态发生了根本变化,我们把21世纪的市场战争定义为信息化的战争应该是恰如其分的。

信息技术深刻影响着世界,影响着每个人。几乎所有的人都看到了信息技术是经济增长的新发动机(如图1所示)。

在信息产业中,计算机的发展速度最为迅猛(如图2所示),其中软件产业比硬件产业发展速度更快。例如:1979~1992年,美国防部采购软件的费用增长了8.5倍;采购硬件的费用只增长了2.6 倍。同时,软件开放也在日趋成熟,例如廿世纪80年代后期生产的F-16C战斗机的相关软件,只需要230000条软件语句,而新型飞机F-22估计需要4~6百万条语句。

但是,众所周知,软件中微小的失误,可能会导致质量事故、产品报废甚至人员伤亡。软件质量的极大重要性,早已为世人所知。随着软件自身价值的提升,软件修复费用也在攀升。

软件是:

* 人造的最复杂的系统;

* 以个人劳动为基础的产品;

* 和文化、心理、集体性有极大关系。

所以,要重视软件质量、加大软件质量研究的投资势在必行,否则,自已于客户的损失不言而喻。

质量管理 方法众多

世界上成功的软件生产商,如微软、Oracle、Sybase等都没有参加CMM评估,但是他们的软件质量确实得到了广泛的信任。这些厂商都有自己一套成熟的软件质量管理规范,我们就称之为“洋办法”吧。当然,这些大公司的雄厚资金、大量的软件人才及其他“硬件”条件也不是一般的企业可比拟的。

就我们身旁的一些软件企业来说,多年来一直为社会各界输送着质量可靠的软件产品,至今依然活跃在软件业。这样的企业内部也有自己的软件质量管理规范,我们姑且称之为“土办法”吧。印度通过CMM评估的企业很多,但是没有参加CMM评估的软件公司也一样朝气蓬勃。看来是否要走国际化道路是选择是否一定需要CMM评估的一个重要因素。

不论是现在流行的“时尚规范”――CMM、“洋办法”还是“土办法”,能够让企业生存、发展就是好办法。所以,如果只是从这一点上讲,实施CMM就不是唯一的质量保障措施。但是,我们今天还是要研究CMM,因为,不可否认CMM评估是具有代表性和科学性的。我们可以通过分析CMM评估而提升自己的管理水平。

软件能力成熟度模型重点是从组织管理方面研究评估软件生产过程,从而提高软件质量。软件业通过多年实践,总结出软件质量是人才、过程和技术的函数,即

Q= f(M,P,T)

其中,Q表示软件质量;M表示人才;P表示软件生产过程;T表示技术。

* 三位一体的最高境界

根据这个公式,我们可以看到所有的企业都希望达到的最高境界:M、P、T三路齐整,和谐统一。

在上面给出的形式化的公式中,人才、过程、技术可以被看作是独立的,实际上人才、过程、技术是相互依存的关系。把三者都合理地管理起来,使人才、过程和技术相互配合,达到整体最佳状态,这必然是应追求的目标。这一策略对大小软件组织都是适用的,都是必须应用实施的。

*百花齐放的质量控制

具体说,我国软件企业对参与CMM评估的问题应根据实际情况区别对待。而且,我们再次提醒那些有能力发展CMM评估的企业,一定要抓住时机、坚持到底,千万不可半途而废。与其干了一半再放弃,成了一个“半吊子”,还不如一开始就不要做。

这里我们为大家提供一些选择:

(1)欲进军国际市场,通过CMM评估,是软件产品质量达标的标志,也是通行证;

(2)大型软件企业,财力人力足够强,可借助主任评估师经验,进行评估,发现优点、弱点,制定措施,提高软件质量,培养人才;

(3)咨询服务公司可培养软件质量管理人才,开展软件质量管理(包括CMM评估)服务;

(4)我国是软件潜在大市场,未来软件生产大国,应组织开展软件质量研究;

(5)军用和国防工业用软件,要自己搞研制、质量管理、测试和运用维修。

在当前世界软件市场上,我国软件产品所占份额很少。如果我们的企业在此时采取合理得当的策略,这种情况必然会改变,一个新的软件大国将会出现。

*必须开展的质量研究

无论怎么样,我们都应大力开展软件质量研究。

在软件质量方面,我们需要投入人力和资金,需要在理论和实践上进行深入研究。软件质量研究需要软件工程知识、统计质量控制方法、软件测试和计量、软件质量管理知识、管理科学和管理工程等。特别地,需要研究全面质量管理思想和方法,并把它用于软件生产过程。全面质量管理是全面质量控制的逻辑性的发展:

质量:是连续满足顾客需求。

全面质量:是低成本情况下达到的质量。

全面质量管理:实现每个人的质量承诺,实现全面质量。

全面质量管理是泰勒科学的管理第一原理:“……保持全体员工和组织和谐……的应用。”。当然,在实施中用到了统计控制等工具。这种方法主要思路是把软件质量特征和软件过程定量化,用图表达,再进行分析,使得软件生产活动性能可预测、可控制,以求达到商业和技术目标,基本过程如图4所示。

软件测量 至关重要

“通过软件测量,改进软件过程”应该受到我国软件业的重视,而且是应重点发展的方向。这也是中国软件业面对CMM认证,面对国际化需求,面对现代市场的最重要的、最有效的对策。

在CMM中,第4级成熟级别――定量化软件过程管理和软件质量管理,其核心就是软件测量和计量。CMM2、3级主要内容是组织和管理方面的,在CMM3级中有软件生产工程和仔细审查评估才可以实施生产的要求。软件测量和计量是理解软件生产过程及针对过程存在问题采取措施的基础,从而保证软件产品能够按时、低耗费、高质量的完成。

软件测量和软件过程关系,具体过程如下:

(1) 确定过程

欲达到最终结果――得到合格的产品和令人满意的服务,并把人、材料、能量、设备和程序有机组织成的工作活动序列,我们称之为过程。

对软件过程进行测量,要深刻理解“过程”的运行,达到目标的方式方法,找到对“过程”有重要贡献的元素,给出数据流图和信息流图,为交流、测量做好准备。

(2)测量计划

基于对确定的软件过程的理解,来制定软件测量计划。产品、过程和资源相关问题及属性,得到确认。选取并确定产品和过程质量测量方法,提出收集和应用测量结果去评估和跟踪软件过程性能的程序,并与软件过程融为一体。

(3)软件过程执行

软件过程由软件组织执行。得到确认的产品、过程和资源属性,在软件过程中和结束时进行测量。

(4)应用测量

主要是收集、存储、分析软件过程和产品中测量的数据,用于控制和改进软件过程。

(5)控制过程

如果产品或性能属性测量表明过程不正常或并非所期望的,则必须采取行动,稳定软件过程,返回到正常水平。

(6)改进过程

改进过程主要是减少成本,提高质量。“波动”存在于每一个过程中,通过控制过程,消除特殊原因造成的波动,使过程处于控制状态;不断减少由共同原因造成的波动,以改进过程。

软件过程测量是以――性能、稳定性、承诺、能力、改进和投资为中心展开的。

我们以稳定性测量来说明。

稳定性是过程管理的中心。所谓稳定性,是指软件过程运行在预料之中。过程总在波动中,动因有二:一是共同因素引起的;二是特殊原因造成的。图6是一稳定过程图示。

测量值波动(Variation)和频率(Frequency)随时都是在中心线一定范围内,说明过程稳定。

测量值一般属于正态分布,中心线由样本均值确定;上、下控制线是样本均值加减一固定常数得到的。理论上,测量值(一个样本,n次测量均值)落入上、下控制线之外的概率是很小很小的。测量值落入上、下控制线之外,说明过程不稳定,测量值见表1。

第i个 样本平均值 xi =(j=1 xij )/n , 样本平均值 x =(i=1 xi)/m ,一般的,上/下控制线为:样本平均值s。

以上就是以测量值服务于过程管理和控制的基本思路。

CMM 慎重选择

我们就我国软件企业在软件产品质量控制问题上应采取的措施已经有过许多的讨论。实施CMM评估不可否认是控制软件产品质量的一个有效的措施。但是一个企业目前是需要为通过CMM级别评估而实施CMM,还是只需要采取CMM评估提供的科学方法管理自己的企业……这些问题都需要一个企业反复分析企业自身的特点,用科学、客观的方法先对自己的企业进行内部评估,再来选择企业发展的道路是比较合理的一种方法。

实施CMM评估绝不能人行我亦行,盲目地追逐。对于中国大部分中小软件企业来说,自身的前期积累对于日后企业的发展是很重要的。在自己的企业还没有通过CMM评估级别的能力的时候(这里的“能力”包括:人力、资金、企业管理现状等很多客观、主观的因素),就应该理智地对待CMM评估实施的问题。与其花很大的精力去为通过CMM级别努力,还不如按部就班地在企业内部贯彻科学的软件产品质量控制方法。当企业在软件产品质量控制方面有了一定的积累,再去为通过CMM级别而奋斗,这样一定会事半功倍。

就目前来看实施CMM评估一定会为软件企业带来好处,无论是自身素质的提高,还是对市场的掌控无疑都是有利的。但是,如果陷入一个为了CMM而CMM的漩涡中,对企业却只有百害而无一利也是肯定的。

面对选择的时候,“慎重”――决不是老生常谈,“以我为主”――才是发展的根本。



版权所有:UML软件工程组织