UML软件工程组织

标准的脉络
作者:林宁

编者:软件已经作为一个新兴高技术产业在我国崛起。经过十几年特别是近几年的发展,我国已培育出相当的开发能力,形成了初步的产业规模和巨大的潜在市场。但与发达国家相比,无论在开发能力还是管理水平上都还存在一定差距,尤其是落后的软件工程管理制约了开发能力的发挥。某些国家的软件开发能力并不比我国强,但在国际软件市场上的份额却远大于我国,其主要原因之一是我们在软件开发管理方面明显落后。

国务院以国发[2000]18号文颁布了《鼓励软件产业和集成电路产业发展的若干政策》,其中要求通过标准化工作对软件产业发展提供必要的支撑与保障。为了落实国务院18号文的精神,信息产业部加快了相关标准的研究开发步伐,将软件工程管理标准的制定作为重点工作列入了2000年信息产业行业标准科研计划。经过以信息产业部电子标准化所为组长单位的特别工作组以及其他有关方面的多方努力,SJ/T 11234-2001《软件过程能力评估模型》和SJ/T 11235-2001《软件能力成熟度模型》两项软件工程管理标准终于完成。据悉,信息产业部有计划于近期开始实施这两项标准,意在以此为契机带动相关软件工程标准的全面实施,推动和支持我国企业软件开发管理水平的迅速、持续、稳步提高。

为此,我们特别邀请信息产业部电子标准化所林宁副所长介绍有关情况,同时搜集了一些国外资料,以“主题报道”的形式向读者介绍软件工程标准化管理的国内外现状,希望为国内软件企业开展此项工作提供有益的参考。

从CMM到CMMI

软件能力成熟度模型的英文全名是Capability Maturity Model for Software,缩写为SW-CMM。我国在很多场合下所说的CMM就是SW-CMM。

CMM的起源是这样的。为支持美国国防部对软件承包商的能力进行客观评价,卡内基—梅隆大学软件工程研究所(SEI)1987年提出了关于软件的《能力成熟度模型框架》,并于1991~1993年发表了《软件能力成熟度模型》(SW-CMM)1.0版和SW-CMM 1.1版,1999~2000年发表了《系统工程和软件工程综合能力成熟度模型》(CMMI-SE/SW)0.2版和CMMI-SE/SW 1.0版以及《系统工程、软件工程和集成产品与过程开发的综合能力成熟度模型》(CMMI-SE/SW/IPPD)1.1版。就软件而言,CMMI是SW-CMM的修订本。事实上,按照SEI最初的计划,应该在1998年发表SW-CMM的2.0版。由于软件过程评估(SPA)国际标准项目的进展,美国国防部下令暂时停止推进到SW-CMM 的2.0版,以便吸收SPA的长处,于是便产生了CMMI。它兼收了SW-CMM 2.0版C稿草案和SPA中更合理、更科学和更周密的优点。在发表CMMI-SE/SW V1.0时,SEI宣布大约用两年的时间完成从CMM到CMMI的过渡。

1987年开始,SEI在美国国防项目承包商范围内开始试行CMM等级评估。SW-CMM V1.0发表之后,美国国防部合同审查委员会提出,发包单位可以在招投标程序中规定“投标方要接受基于CMM的评估”的条款,发包单位将把评估结果作为选择承包方的重要因素之一。从另一个角度说,接受并进行了CMM评估只是有了参加美国军方项目投标的资格,CMM评估决非进入美国市场的通行证。

由于CMM评估对软件过程改进有明显的促进作用,这使SEI看到了CMM评估的巨大商业前景,因此从1990年以后,SEI把基于CMM的评估作为商业行为推向市场。这些年来,接受CMM评估的软件组织和企业已从美国国防项目承包领域扩散到普通经济领域和其他国家与地区。

CMMI与TR 15504

在SW-CMM思路的启发下,ISO/IEC JTC1于1991年启动了关于软件过程评估(SPA)的国际标准化项目,并于1995年发布了ISO/IEC TR 15504《软件过程评估》。其目的是向世界软件界推荐一些良好的软件工程实践方法,并且希望在世界范围内确保软件过程评估结果有一定的可比性,使评估师对软件过程的评估有统一的判断基础。ISO/IEC TR 15504与CMMI的连续表示形式相似。之所以如此,是由于SEI在制定CMMI时,美国国防部要求CMMI要与ISO/IEC 15504取得一致,制定CMMI的人员同时又作为该国际标准项目工作组的专家参与了TR 15504的制定工作。1995年ISO/IEC发布TR 15504后, SEI在开发CMMI中除了沿用成熟度等级的方式(即CMMI的分阶段表示形式)外,还吸取TR 15504的特点,增加了与15504类似的CMMI的连续表示形式。

ISO/IEC TR 15504是第2类技术报告,目前正在转换为正式国际标准,预计到2003年将发布ISO/IEC 15504。

ISO 9001与CMM

CMM和ISO 9001都以全面质量管理为理论基础,都针对过程进行描述,但二者的设计思路不同,属于两个不同的体系。ISO 9001是适用于所有专业领域的一种质量保证模式。但对于软件组织来说,尽管加上了ISO 9000-3作为实施指南,留给审核员做解释的回旋余地仍然相当大。就软件能力评定而言,通过了ISO 9001认证的组织机构之间的软件能力可能会有很大差别。

CMM也是一种模型,因此也是对共性特征的描述。但是,区别于适用于所有制造和服务业的ISO 9001,CMM则是专门针对软件行业设计的描述软件过程能力的模型,是非常“专”的模型。事实上,考虑到按ISO 9001对软件组织进行认证审核时存在较大的不确定性,在设计CMM时则尽量缩小审核员解释的回旋余地,因此不仅对每个关键过程给出了明确的目标和体现这些目标的各个关键惯例,而且对各个关键惯例都给出了明确的定义和详细的说明,以便按CMM进行评估时具有较好的一致性和可靠性。CMM专门针对软件行业,而ISO 9001适用范围很广(例如硬件、软件和服务),即一个是“专用”模型,一个是“泛用”模型。

ISO 9001与CMM在内容上彼此没有完全覆盖。ISO 9001第4章大约有5页,ISO 9000-3大约43页,而CMM长达500多页。这两份文件间的最大差别在于,CMM强调的是持续的过程改进——通过评估,可以给出一幅描述企业实际综合软件过程能力的“成就轮廓”;而ISO 9001涉及的是质量体系的最低可接受标准,其审核结果只有两个:达到(包括“整改”后达到)就“通过”,没有达到就“不通过”。

 

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