|
回复 #3 wangze1123 的帖子
摘要:本文对CMM/CMMI的发展情况、管理思想背景、在软件过程改进中的作用、基本内容和评估方法作了简要介绍;同时也简单介绍和分析了我国软件能力评估标准的制定和实施情况。
关键词:CMM/CMMI 过程改进 SCAMPI
The essay introduces the development history of CMM/CMMI, management principle background, effect in software process improvement, basic content and appraisal methods. It also introduces and analyzes the preparation and implementation of China national software capability appraisal standard.
CMM/CMMI Process improvement SCAMPI
1.CMM/CMMI 的发展
为了保证软件产品的质量,80年代中期,美国联邦政府提出对软件承包商的软件开发能力进行评估的要求。因此,美国卡内基-梅隆大学软件工程研究所 (CMU/SEI) 于1987年研究发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评价两种评估方法和软件成熟度提问单。4年之后,SEI将软件过程成熟度框架进化为软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM),并发布了最早的SW-CMM 1.0版。经过两年的试用,1993年SEI正式发布了SW-CMM1.1版,这是目前使用最为广泛的版本。
自1991年SW-CMM首次发布后,SEI又开发了其他成熟度模型,包括:系统工程、采购、人力资源管理和集成产品开发等。虽然各个模型针对的专业领域不同,但彼此之间也有一定的重叠,毕竟它们同出一辙;另外,这些模型在表现形式上又有不统一之处:系统工程模型是连续式的,而其他模型采用了分级式。当SEI开始开发新一代成熟度模型的时候,其发起人提出了新的要求:整合不同模型中的最佳实践,建立统一模型,覆盖不同领域,供企业进行整个组织的全面过程改进。所以,SEI于2001年12月正式发布了能力成熟度集成模型(CMMI)1.1版本,这次发布标志着CMMI的正式使用。SEI也正式宣布,将不再维护SW-CMM的CBA-IPI评估方法:在CMMI1.1发布后的两年内,SEI还提供有关SW-CMM和CBA-IPI主任评估员的培训,并接收评估数据,但这一切已于2003年12月底正式停止。
这里需要注意的是,SEI并没有废除CMM模型,而是以CMMI的SCAMPI评估方法取代CMM的CBA-IPI评估方法。当然很多业内人士认为,随着软件行业的发展,CMMI模型将最终取代CMM模型。
CMMI起源于三个模型(源模型),分别是:
(1) 软件能力成熟度模型( SW-CMM)2.0版,C稿
(2) 电子行业协会临时标准(EIA/IS731)
(3) 集成产品开发能力成熟度模型(IPD-CMM)v0.98
模型中同时集成了供应管理的内容。另外,在CMMI中除了沿用成熟度等级的方式(即CMMI的分阶段表示形式)外,还吸取TR 15504的特点,增加了与15504类似的CMMI的连续表示形式,以满足ISO15504国际标准对过程改进评估的要求。CMMI模型的组成和适用范围如表1所示。
表1 CMMI模型的组成和适用范围
CMMI模型组件 适用范围
SE/SW 软件工程、系统工程
SE/SW /IPPD 软件工程、系统工程、集成产品和过程开发
SE/SW /IPPD/SS 软件工程、系统工程、集成产品和过程开发、供应采购
培训课程 评估师、过程改进人员等培训
SCMPI 评估方法
在CMMI 模型组件中,SE/SW是核心,SE/SW /IPPD、SE/SW /IPPD/SS是在此基础上扩展而来的。
CMM模型基于众多软件专家的实践经验,是组织进行软件过程改善和软件过程评估的一个有效的指导框架。CMMI项目更为工业界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复,降低基于模型改善的成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力。CMM或CMMI不仅是一个模型,一个工具,它更代表了一种管理哲学在软件工业中的应用。
CMM/CMMI的思想来源于已有多年历史的产品质量管理和全面质量管理。Watts Humphrey和Ron Radice在IBM公司将全面质量管理的思想应用于软件工程过程,收到了很大的成效。SEI的软件能力成熟度框架就是在以Humphrey为主的软件专家实践经验的基础上发展而来的。软件能力成熟度模型中融合了全面质量管理的思想,以不断进化的层次反映了软件过程定量控制中项目管理和项目工程的基本原则。CMM/CMMI所依据的想法是只要不断地对企业的软件工程过程的基础结构和实践进行管理和改进,就可以克服软件生产中的困难,增强开发制造能力,从而能按时地、不超预算地制造出高质量的软件。
2.CMM/CMMI的作用
最近的SEI评估报告显示,从1996年到2003年,全球有2千多个组织进行了CMM/CMMI评估,其中大部分为商业组织,有将近一半的组织规模是在100人以下。这些数据表明,CMM/CMMI评估已经引起软件及IT企业的高度关注,并且这种评估同样适合中小企业。
CMM/CMMI主要应用在两大方面:能力评估和过程改进。
1)能力评估
CMM/CMMI是基于政府评估软件承包商的软件能力发展而来的,有两种通用的评估方法用以评估组织软件过程的成熟度:软件过程评估和软件能力评价。
软件过程评估:用于确定一个组织当前的软件工程过程状态及组织所面临的软件过程的优先改善问题,为组织领导层提供报告以获得组织对软件过程改善的支持。软件过程评估集中关注组织自身的软件过程,在一种合作的、开放的环境中进行。评估的成功取决于管理者和专业人员对组织软件过程改善的支持。
软件能力评价:用于识别合格的软件承包商或者监控软件承包商开发软件的过程状态。软件能力评价集中关注识别在预算和进度要求范围内完成制造出高质量的软件产品的软件合同及相关风险。评价在一种审核的环境中进行,重点在于揭示组织实际执行软件过程的文档化的审核记录。
2)过程改进
软件过程改进是一个持续的、全员参与的过程。CMM/CMMI建立了一组有效地描述成熟软件组织特征的准则。该准则清晰地描述了软件过程的关键元素,并包括软件工程和管理方面的优秀实践。企业可以有选择地引用这些关键实践指导软件过程的开发和维护,以不断地改善组织软件过程,实现成本、进度、功能和产品质量等目标。
3.CMM/CMMI的主要内容
CMMI中成熟度等级的概念与SW-CMM模型相同,只是某些等级的名称有些变化。1级、3级和5级的名称没有变化,名称还是初始级、已定义和优化中,但是2级和4级分别变为已管理级和定量管理级,这个变化更突出了2级定性管理和4级定量管理的特点。
另外,CMMI能力等级的确定,建立了CMMI和ISO15504之间的有机联系,CMMI连续式模型的3、4级名称虽然与ISO15504有区别,但其含义是基本一样的。
表2列出了CMMI、CMM、ISO15504模型的等级名称的对应关系。
表2 各模型的等级对应
Level CMM CMMI(分级式) CMMI(连续式) ISO15504
5 优化中 优化中 优化中 优化中
4 已管理 定量管理 定量管理 可预测
3 已定义 已定义 已定义 已建立
2 可重复 已管理 已管理 已管理
1 初始级 初始级 已执行 已执行
0 未完成 未完成
CMM/CMMI把软件开发组织的能力成熟度分为5~6个可能的等级。除了第1级外,其他每一级由几个过程方面组成。每一个过程方面都由公共特性予以表征。CMM/CMMI给每个过程规定了一些具体目标。按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就能达到,这就表明该关键过程实现了。这种分级的思路在于把一个组织执行软件过程的成熟程度分成循序渐进的几个阶段,这与软件组织提高自身能力的实际推进过程相吻合。这种成熟度分级的优点在于级别明确而清楚地反映了过程改进活动的轻重缓急和先后顺序。这一点很重要,因为大多数软件组织只能在某一段时间里集中开展少数几项过程改进活动。
CMMI共有分属于4个类别的25个过程域,覆盖了4个不同的领域(相对应,SW-CMM共有18个过程域)。虽然CMMI中的很多过程域与SW-CMM中的基本相同,但有几个过程域的范围和内容发生了重要的变化,另外也有几个新增加的过程域。两个模型的过程域关系比较见表3。
表3 CMMI和CMM过程域关系比较
等级 CMM CMMI 类别
过程域 缩写 过程域 缩写
5 技术更新管理 TCM 组织革新与部署 OID 过程管理
过程更改管理 PCM CAR
缺陷预防 DP 原因分析与决策 支持
4 软件质量管理 SQM 组织过程性能 OPP 过程管理
定量过程管理 QPM 定量项目管理 QPM 项目管理
3 软件产品工程
同行评审 SPE
PR 需求制定 RD 工程
技术方案 TS 工程
产品集成 PI 工程
验证 VER 工程
确认 VAL 工程
组织过程聚焦 OPF 组织过程聚焦 OPF 过程管理
组织过程定义 OPD 组织过程定义 OPD 过程管理
培训大纲 TP 组织培训 OT 过程管理
集成软件管理 ISM 集成项目管理 IPM 项目管理
组间协调
风险管理 RSKM 项目管理
决策分析与决定 DAR 支持
集成供应商管理 ISM 项目管理
组织集成环境 OEI 支持
IC 集成组队 IT 项目管理
2 需求管理 RM 需求管理 RM
软件项目策划 SPP 项目策划 PP 项目管理
软件项目监督与控制 SPTO 项目监督与控制 PMC 项目管理
软件分包管理 SAM 供应协议管理 SAM 项目管理
软件质量保证 SQA 过程与产品质量保证 PPQA 支持
软件配置管理 SCM 配置管理 CM 支持
度量与分析 MA 支持
1
4.CMM/CMMI的评估
原来的CMM评估须遵循SEI的CAF (CMM Assessment Frame-work) 规范,由CMU/SEI授权的主任评估师(Lead Assessor)领导一个评审小组进行,评估方法采用IPI-CBA,评估过程包括员工培训(企业的高层领导也要参加)、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等,评估结束时由主任评估师签字生效。
随着CMM过渡到CMMI,其CAF评估框架变成评估需求(ARC:Appraisal Requirements for CMMI);IPI-CBA评估方法被SCAMPI(Standard CNNI Appraisal Method for Process Improvement)方法代替。根据CMMI评估需求(ARC)规定三种评估类型,表4列出了SCAMPI评估方法的适用情况。
表4 可用的评估类型 评估类型 ISO15504兼容 SCAMPI 使用 主任评估师需求 评估组规模
Class A × 可能 × 5-17
Class B - 部分 - 2-7
Class C - 部分 - 2-3
SCAMPI评估组由几方人员共同组成,由主任评估师领导。其中评估小组是由经验丰富的软件专业人员组成,还要经过CMMI和SCAMPI评估方法的培训,使他们了解组织的同时,也懂得如何将CMM/CMMI模型及关键实践与组织的要求建立关联。参与评估的人员包括:公司的管理人员、项目经理,开发人员,培训人员,采购人员等。
评估过程主要分成三个阶段:准备阶段、评估阶段和报告阶段。准备阶段包括小组人员培训、计划以及其它必要的评估准备工作。在评估的最初几十天,小组成员的主要任务是采集数据,回答SEI的CMM/CMMI提问单,文档审阅以及进行交谈,对整个组织中的应用有一个全面的了解。
然后进行数据分析。评估员要对记录进行整理,并检验所观察到的一切信息,然后把这些数据与CMM/CMMI模型进行比较,最后给出一个评估报告。在每个评估报告中,必须针对CMM/CMMI 的每个过程方面,指出这个软件过程在什么地方已经有效地执行了,什么地方还没有有效地执行。只有所有评估人员一致通过的情况下,这个评估报告才有效。
在评估报告的基础上,评估小组产生一个评估结果。评估和评级的结果应与有关的关键过程方面和目标相对应。评估报告和结果将送交所有有关的人员并上报CMU/SEI。
5.我国软件能力评估标准的制定与实施
|
|