标准的技术要点/制定思路/标准的脉络
标准的技术要点/制定思路/标准的脉络
标准的技术要点
SJ/T 11234-2001 《软件过程能力评估模型》
SJ/T 11234-2001《软件过程能力评估模型》针对软件企业对自身软件过程能力进行内部改进的需要,与CMMI连续表示形式基本相同。该模型有22个过程,分为4大类,即:过程管理类、项目管理类、工程化类和支持类,具体见表1。
每个过程能力从0到5划分为6个评估等级,即: 0级——不完整级; 1级——已执行级; 2级——受管理级; 3级——已定义级; 4级——定量管理级; 5级——持续优化级。
每个等级包含了通用目标、通用惯例、特定目标和特定惯例,它们组成一套衡量准则。0级是反映那些没有得到完整执行过程的状态,可能实现了部分特定目标,也可能什么目标都没有实现;处于1级的过程实现了全部特定的目标;对于2级~5级,不仅实现了全部特定目标,而且依次实现了对应更高的通用目标。
按此准则对实际运行的过程进行评估,可以确定当前软件过程的能力状态。对每个过程评估后,可以得到企业软件过程能力的一条“谱线”。这是一个二维坐标曲线,横坐标是22个过程,纵坐标是6个等级。企业也可以根据自己的业务目标对各项软件过程改进工作的轻重缓急做出恰当安排,拟制出一条本企业希望达到的软件过程能力“谱线”,或者说是“目标轮廓”。企业还可以针对软件开发项目,根据项目的目标和要求,有针对性地“弄清楚”有关过程的能力状态,实施必要的过程改进,以支持项目的完成。
SJ/T 111235-2001 《软件能力成熟度模型》
SJ/T 111235-2001《软件能力成熟度模型》针对软件企业综合能力第二方或第三方评估的需求,与CMMI分阶段表示形式基本相同。该模型用成熟度1~5个等级来描述综合软件能力。除了成熟度等级1外,每个等级包含若干个过程方面,每个过程方面的实施情况由相应目标和惯例的实施情况体现(见图1)。采用这种衡量准则可以评估软件企业的综合能力——软件能力成熟程度。
模型中的5个等级——第1到第5级,数字越大,成熟度等级越高。高成熟度等级代表比较强的综合软件能力。按照这种概念,企业所达到的成熟度等级可以预示这个企业在软件产品(或服务)开发管理方面的水平。从过程改进的角度说,这种成熟度等级是过程改进的递进式平台。除了第1级之外,每个成熟度等级都表明,在达到这个等级的软件企业里有一批稳定的软件过程。在这批稳定的软件过程基础上,软件组织可以瞄准更高一个成熟度等级。通过过程改进活动,使更多的软件过程以制度化的形式达到稳定。于是,该企业的综合软件能力就上升到一个更高的成熟度平台上。这5个成熟度等级分别是: 第1级——初始级; 第2级——受管理级; 第3级——已定义级; 第4级——定量管理级; 第5级——持续优化级。
22个过程分别驻留在等级2~5中。
需要说明的是,标准实施中的一致性相当重要,否则对软件企业评估所得结果将失去可比性。因此,在标准制定中我们尽可能减少具体评估规定条款在解释上的不确定性,这就使得标准更具有可操作性。
图1 模型的组成部件
标准的制定思路
为加快我国软件能力模型标准的制定,信息产业部科技司于2000年9月28日主持成立了软件体系评估标准特别工作组,同时提出了 “依据我国软件政策,利用国际先进经验,结合我国国情,制定出有助于指导和促进我国软件企业发展的评估模型标准”的原则。
特别工作组由信息产业部电子标准化所(4所)为组长单位,由北京力友和公司、信息产业部电子5所、合力金桥公司、北大方正公司、大唐软件公司、联想神州数码公司、长城计算机软件与系统公司、创智公司、天津金卡工程公司、北京时林电脑公司、广州新太科技公司、北京索福威尔软件技术公司、浪潮齐鲁软件产业公司、北京中邮绿卡金融网络公司、广州锐新软件技术公司、北京航天智通电子公司、北京北佳信息系统公司等派员参加。
根据上述原则,工作组确定了标准制定的两个主要目标:一是支持软件企业和企业内的软件组织对自身的软件过程能力实施持续性的内部改进;二是支持对软件企业的综合软件能力进行第二方和第三方评估。
围绕这两个目标,工作组依据以下思路开展工作:
1. 制定两个标准,其中:《软件过程能力评估模型》针对单个过程,服务于软件企业内部改进;《软件能力成熟度模型》针对过程集合,服务于对软件企业综合能力的评估。
2. 研究国际通用惯例和标准,结合我国实际加以借鉴或参考,取其对我国有用的部分,在实践中不断改进和创新。
3. 吸收软件企业管理工作的成功经验,尽量减少标准中对各项规定的不确定性,充分发挥软件企业在标准制定中的作用。边制定边试点,以便对标准进行验证,确保其可操作性。
4. 标准的内容安排以大型软件企业为对象,对于小型软件企业或组织采用剪裁准则予以处理。
5. 适应经济全球化以及我国软件产业发展战略的需要,充分考虑与国际标准和国外先进标准的协调性,为国际合作做好准备。
6. 通过标准制定,初步形成一批按标准规定模型实施软件过程能力评估和综合软件能力评估的骨干队伍。
在过去几年研究工作的基础上,工作组进一步深入研究了CMM、CMMI、ISO/IEC TR 15504、ISO 9000-3以及其他有关的资料和文件,结合国情,确定了以CMMI作为主要参考文件来制定标准。在对标准草案进行会议审查和上网广泛征求意见的同时,组织了标准试点,最终形成了《软件过程能力评估模型》和《软件能力成熟度模型》行业正式标准。
标准的脉络从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涉及的是质量体系的最低可接受标准,其审核结果只有两个:达到(包括“整改”后达到)就“通过”,没有达到就“不通过”。