【IT168 分析评论】
对软件企业来说,cmm是一个自我评估和自我提高的途径,是提高软件开发的管理能力,加强国际竞争力的有效手段;对软件用户,cmm也提供了一个衡量软件开发商开发水平的评估方法,有助于软件开发项目的风险识别。到底什么是cmm;为什么要引入cmm;它在我国的应用情况怎样等;本期将从这几个方面探讨cmm。
为什么要引入cmm?
cmm是软件能力成熟度模型(capability maturity model for softwarede,缩写为sw-cmm )的英文简称。早在1987年,为支持美国国防部对软件承包商能力进行客观评价,美国卡内基——梅隆大学软件工程研究所(以下简称sei)提出了软件的《能力成熟度模型框架》。在此框架基础上sei提出了cmm1.0版本,并不断完善。cmm一直致力于软件开发过程的管理及工程能力的提高与评估。目前,它在美国和北美地区已得到广泛应用,同时正在被越来越多的欧洲和亚洲等国家的大型信息技术企业所采纳,实际上已成为软件开发过程改进与评估的事实上的工业标准。
据《软件战略》杂志发表的报告显示,美国软件业发达的一个很重要的原因就是,绝大多数企业都按照规范化的工作方法管理软件过程,把达到认证标准放在很重要的位置。近几年,印度一跃成为除美国以外最大软件出口国的原因也是从一开始他们就非常重视软件业的国际化管理。
而我国的软件企业大多数仍然处于一种“手工作坊式”运营阶段,质量和效率观念都不强,在技术和产品与国际市场接轨方面更是一片空白。我国软件要大幅度提高开发能力,走向世界,必须向国际上公认的软件评估标准靠拢。
因地制宜发展cmm
为加快我国软件能力模型标准的制定,2000年,国务院的国发[2000]18号文要求“标准化工作对软件产业发展提供必需的技术支撑与保障”。为了落实国务院18号文的精神,信息产业部联合多方力量,研究了国际上的软件评估标准,结合国内实际,终于完成了sj/t 11234-2001《软件过程能力评估模型》和sj/t 11235-2001(软件能力成熟度模型)两项软件标准的制订;并决定从2001年5月1日开始实施这两项标准,且以此为契机,带动相关软件工程标准的全面实施,以推动和提高我国广大企业软件开发管理水平。
1.sj/t11234-2001《软件过程能力评估模型》
sj/t 11234《软件过程能力评估模型》针对每个过程,服务于软件企业内部改进。该模型有22个过程,分为4大类,即:过程管理类、项目管理类、工程化类和支持类,见表1。
表1
过程管理类 项目管理类
·组织过程聚焦 ·项目策划
·组织过程定义 ·项目监督和控制
·组织培训 ·供方协议管理
·组织过程性能 ·集成项目管理
·组织革新和部署 ·风险管理
·定量项目管理
工程化类 支持类
·需求管理 ·配置管理
·需求开发 ·过程和产品质量保证
·技术解决 ·测量和分析
·产品集成 ·原因分析和决定
·验 证 ·决策分析和决定
·确 认
每个过程能力从0到5划分为六个评估等级,见图1。每个等级包含了通用目标、通用惯例、特定目标和特定惯例,它们组成一套衡量准则。0级是反映那些没有得到完整执行的过程的状态,可能实现了部分特定目标,也可能什么目标都没有实现;处于1级的过程是实现了全部特定目标的过程;对于2-5级,不仅实现了全部特定目标,而且依次实现了对应的更高的通用目标。按此准则,对实际运行的过程进行评估,可以确定当前软件过程的能力状态。对每个过程评估后,可以得到企业软件过程能力的一条“谱线”。这是一个二维坐标曲线,横坐标是22个过程,纵坐标是6个等级。企业也可以根据自己的业务目标和需要对各项软件过程改进的轻重缓急作出恰当安排,拟制出一条本企业希望达到的软件过程能力“谱线”,或者说是“目标轮廓”。还可以针对软件开发项目,根据项目的目标和需要有针对性地“弄清楚”有关过程的能力状态,实施必要的过程改进,以支持项目的完成。
2.sj/t 11235-2001《软件能力成熟度模型》
sj/t 111235-2001《软件能力成熟度模型》针对过程集合,服务于对软件企业综合能力的评估。该模型用成熟度1-5个等级来描述综合软件能力,除了成熟度等级1外,每个等级包含若干个过程方面,每个过程方面的实施情况由相应的目标和惯例的实施情况体现。采用这种衡量准则可以评估软件企业的综合能力——软件能力成熟程度。
模型中的5个等级——第1到第5级,数字越大,成熟度等级越高(见图2)。高成熟度等级代表比较强的综合软件能力,反之亦然。按照这种概念,企业所达到的成熟度等级可以预示这个企业在软件产品(或服务)开发管理方面的水平。从过程改进的角度说,这种成熟度等级是过程改进的递进式平台。除了第1级之外,每个成熟度等级都表明,在达到这个等级的软件企业里有一批稳定的软件过程。在这批稳定的软件过程的基础上,软件组织可以瞄准更高一个成熟度等级。通过过程改进活动,使更多的软件过程以制度化的形式达到稳定,于是,该企业的综合软件能力就升到一个更高的成熟度平台上。22个过程分别驻留在等级2-5中。
以上两个标准给出了总体要求和方法,具体实施需要软件工程标准作指导。我国目前已发布了20多项软件工程标准,但是,要满足软件产业需要还有一定差距。为此,下一步要制定的标准主要是软件生存周期标准、软件接口标准、软件度量标准、配置管理标准、质量保证标准、系统测试标准、软件项目管理标准、风险管理标准等。