软件能力成熟度模型
- 格式:doc
- 大小:31.00 KB
- 文档页数:6
“软件能力成熟度模型”(1)背景介绍:CMM是“软件能力成熟度模型”的英文简写,该模型由美国卡内基-梅隆大学的软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定,初始的主要目的是为了评价美国国防部的软件合同承包组织的能力,后因为在软件企业应用CMM模型实施过程改进取得较大的成功,所以在全世界范围内被广泛使用。
CMMI是SEI于2000年发布的CMM的新版本,目前CMMI已经发展到1.2版本,并且只接受1.2版本的评估结果。
CMMI目前包含了三个模型,分别是CMMI-DEV、CMMI-SVC以及CMMI-ACQ模型。
CMMI-DEV:最新版本是SEI于2006年8月份发布的CMMI for Development v1.2版本。
该版本集成了软件工程、硬件工程和系统工程三大学科领域。
图表1 CMMI-DEV模型集成CMMI-DEV模型按照阶段式表达方式将成熟度分为五个等级,每个等级包含相应的过程域,如下图所示:图表2 CMMI-DEV各成熟度等级包含的过程域CMMI-SVC:该模型SEI于2009年2月份发布,最新版本是CMMI for Services v1.2版本。
该模型可以应用于IT、医疗卫生、教育等各类服务领域。
该模型采用了CMMI的基础架构,在此基础上增加了服务相关的特有过程域。
对于已经实施CMMI- DEV 的企业,提供了快速、便捷的理解和导入机制。
图表3 CMMI-SVC和CMMI其他模型的关系CMMI-SVC模型按照阶段式表达方式也分成五个等级,每个等级包含相应的过程域,如下图所示:图表4 CMMI-SVC各成熟度等级的过程域CMMI-ACQ:该模型SEI于2007年11月份发布,最新版本是CMMI for Acquisition v1.2版本。
该模型基于CMMI模型体系架构,整合了CMMI采购模型、软件采购模型以及政府及产业采购的最佳实践等,用于指导采购方进行采购管理。
软件能力成熟度模型体系软件能力成熟度模型体系(Software Capability Maturity Model,简称SCMM)是一个评估和改进软件开发组织能力的框架。
该模型由美国国防部软件工程研究所(Software Engineering Institute,简称SEI)在1986年提出。
它是一个五层的阶梯模型,用于评估和指导软件开发组织的软件工程能力。
本文将详细介绍软件能力成熟度模型体系的各个层次和其对软件开发过程的重要性。
第一层:初始级初始级是指软件开发组织没有一个确定的过程,所有工作都是临时性的,没有一致性的开发标准。
在这一级别,项目成功与否主要依赖于个人技能和意愿。
没有任何的文档化标准和过程规范,项目无法可靠地按时、按质完成。
在初始级,很难复制和标准化成功的开发方法。
第二层:重复级重复级是指开始建立一些通用的软件开发过程。
组织开始制定一些工作指导方针和标准操作流程。
重复级的主要特点是组织具有了一定能力来复制和重复之前的成功。
虽然还没有完全标准化的过程,但团队已经开始建立对软件开发流程的控制。
第三层:定义级定义级是指软件开发组织开始将过程进行文档化,并建立起一套软件工程的标准和指导文件。
软件开发组织在这个级别上建立了一套可重复的工程方法,并对项目开展了全面的计划和控制。
具体的软件开发过程标准化并进行了持续的改进,起到了确保项目按时交付、满足质量要求的作用。
第四层:管理级管理级是指软件开发组织建立了系统化的软件过程管理,通过度量和监控来控制软件开发过程。
在管理级,组织可以进行定量的评估和分析,以便更好地调整和改进软件过程。
该级别的目标是通过有效的量化和改进,持续提升软件开发过程的质量和效率。
第五层:优化级优化级是指软件开发组织通过确定和推动改进机会,实现持续和可持续的过程改进。
在优化级,组织通过收集和分析数据,识别问题并找到解决方案。
持续的过程改进能够保持组织的竞争优势,并使软件开发组织更加灵活和适应变化。
软件能力成熟度模型(CMM)是一个用于评估和改进软件开发能力的框架,它通过定义五个不同的成熟度等级来帮助组织了解他们软件开发过程的状态,并提供指导他们改进的路径。
这五个等级分别是初始级、重复级、定义级、管理级和优化级。
在本文中,我将从这五个等级出发,深入探讨软件能力成熟度模型等级和过程,以期帮助读者更全面地理解这一主题。
### 1. 初始级在软件能力成熟度模型中,初始级是指组织在软件开发过程中缺乏一致性和可预测性。
在这个阶段,软件开发过程通常是不受控制的,因为缺乏标准化的过程和程序。
这意味着在初始级的组织中,软件开发过程是混乱的,不可靠的,并且难以管理和预测。
### 2. 重复级在重复级,组织开始意识到需要对软件开发过程进行一定程度的标准化和文档化,以确保在软件开发过程中能够重复使用成功的实践。
在这个阶段,组织可能会创建一些基本的流程,并且对这些流程进行持续改进,以确保在软件开发过程中的可预测性和一致性。
### 3. 定义级在定义级,组织已经实现了对软件开发过程的标准化,并且能够对这些过程进行量化和测量。
这意味着组织可以更好地控制和管理软件开发过程,并且能够更好地预测成果和生产力。
在这个阶段,组织通常会将标准化的软件开发过程进行文档化,并且建立一些度量指标来监控和改进这些过程。
### 4. 管理级在管理级,组织不仅能够量化和测量软件开发过程,还能够根据这些度量指标来进行持续改进和优化。
这意味着组织已经具有较高的管理水平,能够监控和控制软件开发过程,并且能够在持续改进中实现更高的成果和生产力。
在这个阶段,组织通常会建立一个持续改进的文化,并且不断提高对软件开发过程的认识和理解。
### 5. 优化级在优化级,组织已经实现了对软件开发过程的最高理解和控制。
这意味着组织能够根据对软件开发过程的深刻理解来实现最佳的成果和生产力,并且能够持续改进和优化软件开发过程。
在这个阶段,组织不断寻求创新和改进,以保持其在软件开发领域的领先地位。
软件能力成熟度模型体系软件能力成熟度模型(Capability Maturity Model,简称CMM)是一种用于评估组织软件工程能力成熟度的模型。
它由美国卡内基梅隆大学的软件工程研究所(SEI)研发,主要用于评估软件开发和维护过程的管理能力和工程能力。
CMM模型将软件开发过程分为初始、重复、定义、管理和优化五个级别,每个级别都有不同的标准和要求。
初始级别是最低的级别,表示软件开发过程处于无序状态,没有明确的流程和规范;重复级别是第二个级别,表示软件开发过程开始有了一些基本的流程和规范,但仍然存在很多重复性的工作;定义级别是第三个级别,表示软件开发过程已经有了明确的流程和规范,并开始注重项目管理和质量保证;管理级别是第四个级别,表示软件开发过程已经有了完善的流程和规范,并开始注重团队协作和项目管理;优化级别是最高级别,表示软件开发过程已经非常成熟,并开始注重创新和改进。
CMM模型的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
它是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。
CMMI是CMM的升级版,也是由SEI开发的一种软件开发和维护过程成熟度评估模型。
CMMI 把软件开发过程分为初始、已管理、已定义、定量管理、优化五个阶段,每个阶段都有不同的标准和要求。
与CMM相比,CMMI更加注重定量管理和优化,强调通过数据分析和改进来提高软件开发和维护过程的效率和质量。
总之,软件能力成熟度模型体系是一种用于评估组织软件工程能力成熟度的模型,它包括CMM和CMMI两种模型,旨在帮助企业评估自己的软件开发和维护能力,识别改进的方向和方法,提高软件开发和维护过程的效率和质量。
CMM是Capability Maturity Model for Software的简称,中文叫“软件能力成熟度模型”,是对组织软件过程能力的描述。
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商业目标。
它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此 CMM被用作评价软件承包商能力并帮助组织改善软件过程质量,是目前国际上最流行、最实用的一种软件生产过程标准,成为当今企业从事规模软件生产不可缺少的一项内容。
CMM是由美国卡内基-梅隆大学软件工程研究所(CMU SEI)研究制定,并在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。
CMM把软件开发过程的成熟度由低到高分为五级,等级越高,表明该企业软件开发失败风险越低,整体开发时间越短,并能减少开发成本,降低错误发生率,提高产品质量。
按照《使用软件工程》的标准,CMM将软件分为5个等级:(如图一所示)图一1.初始级(initial)工作无序,项目进行过程中常放弃当初的规划管理无章,缺乏健全的管理制度开发项目的成效不稳定,产品的性能和质量依赖于个人能力和行为。
2.可重复级(Repeatable)管理制度化,建立了基本的管理制度和规程,管理工作有章可循初步实现标准化,开发工作较好的实施标准稳定课跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件3.已定义级(Defined)开发的过程,包括技术工作和管理工作,均已实现标准化,文档化。
建立了完善的培训制度和专家评审制度全部技术活动和管理活动均可稳定实施项目的质量,进度和费用均可控制。
对项目进行中的过程,岗位和指责均有共同的理解。
4.已管理级(Managed)产品和过程已建立了定量的质量目标。
过程中活动的生产率和质量是可度量的。
已建立过程数据库。
已实现项目产品和过程的控制可预测过程和产品质量趋势。
CMMI能力成熟度模型
一、CMMI是什么?
CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型),是美国国防部的一个设想,年由美国国防部与卡内基-梅隆大学下的软件工程研究中心以及美国国防工业协会共同开发和研制的。
换句话说,就是给你公司一个软件开发管理可执行的框架,这个框架具有自动性和可扩展性。
实行CMMI体系的过程就是改进的过程。
最终的目的,就是在保证工期和预算的前提下,输出高质量的软件。
只要按照这个框架执行,我们开发工作每一个环节都有规程和文档为依据,我们的需求、设计、测试各个环节都有评审,变更将得到有效管理,项目成果和经验能得到积累和应用……
大家熟知的信息系统项目管理师和PMP,是两个对个人层面的认证,而CMMI是对企业层面的认证。
二、CMMI体系结构是怎样的?
5个等级。
CMMI模型把企业的软件能力成熟度划分为5个等级——第1到第5级。
数字越大,成熟度越高。
5个等级分别是:初始级、已管理级、已定义级、已定量管理级、优化级。
一般企业评估是第3级或第5级。
22个过程域。
每一个成熟度等级对应一定数量的过程域。
所谓过程域(PA),就是做好软件管理的某一个方面,如项目计划(PP)、风险管理(RSKM)、需求开发(RD)等等。
CMMI一共包括22个过程域,涵盖了过程管理、项目管理、工程管理、支持管理四个方面。
第一讲:软件能力成熟度模型
沈阳东软软件股份有限公司软件工程过程组
编者按:CMM(Capability Maturity Model,能力成熟度模型)是由美国卡内基-梅隆大学软件工程研究所推出的评估软件能力与成熟度的一套标准。
该标准基于众多软件专家的实践经验,侧重于软件开发过程的管理及工程能力的提高与评估,是国际上流行的软件生产过程标准和软件企业成熟度等级认证标准。
目前,CMM认证已经成为世界公认的软件产品进入国际市场的通行证。
国务院发布的鼓励软件产业发展的18号文件中也特别指出了对企业进行CMM认证的支持。
今年3月,联想通过了CMM 2认证,6月,东软股份通过了CMM 3级评估,这些标志着CMM认证在我国已经取得初步进展。
为推动我国软件产业的发展,促进软件企业向正规化和国际化迈进,进一步引入和推广CMM认证,本报与沈阳东软软件股份有限公司合作,共同开办“CMM认证”系列讲座。
从本期开始,本报将大约分7期在“技术讲座”栏目中针对我国软件企业的特点,结合CMM认证在东软股份的应用实战,阐述CMM认证的实施方法和策略。
早在20世纪60年代中期,人们就发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。
后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上
解决了软件生产过程中遇到的问题。
但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。
为了保证软件产品的质量,80年代中期,美国联邦政府提出对软件承包商的软件开发能力进行评估的要求。
在Mitre公司的帮助下,1987年9月,美国卡内基-梅隆大学软件工程研究所(CMU/SEI)发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评价两种评估方法和软件成熟度提问单。
4年之后,SEI将软件过程成熟度框架进化为软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM)。
1991年8月,SEI发布了最早的SW-CMM v1.0。
经过两年的试用,1993年SEI正式发布了SW-CMM v1.1,这是目前使用最为广泛的版本。
软件能力成熟度模型基于众多软件专家的实践经验,是组织进行软件过程改善和软件过程评估的一个有效的指导框架。
CMM的管理思想背景
SW-CMM不仅是一个模型,一个工具,它更代表了一种管理哲学在软件工业中的应用。
SW-CMM的管理思想来源于已有60多年历史的产品质量管理。
1930年,Walter Sheward 率先提出了一整套基于统计学原理的质量控制方法,这些方法后来经过W. Ewards Deming 和Joseph Juran的发展和实践得到了广泛的应用。
Philip Crosby在《质量是免费的》一书中率先提出将质量管理形成成熟度框架的概念,“质量管理成熟度坐标图表” 描述了进行质管实践的5个阶段,表达了质
量管理的全部运作。
Deming、Juran以及Crosby等人的做法后来被称为全面质量管理(TQM)理论。
在IBM公司,Watts Humphrey和Ron Radice将这种全面质量管理的思想应用于软件工程过程,收到了很大的成效。
SEI 的软件能力成熟度框架就是在以Humphrey为主的软件专家实践经验的基础上发展而来的。
软件能力成熟度框架中融合了全面质量管理的思想,以5个不断进化的层次反映了软件过程定量控制中项目管理和项目工程的基本原则。
SW-CMM所依据的想法是只要不断地对软件企业的软件工程过程的基础结构和实践进行管理和改进,就可以克服软件生产中的困难,增强开发制造能力,从而能按时地、不超预算地制造出高质量的软件。
CMM现状与发展趋势
最近的SEI评估报告显示,从1996年到2000年,全球有1012个组织进行了CMM评估,其中64.8%为商业组织,26.7%为美国官方和军方合同商,主要业务为软件开发和维护的组织有922个,有将近一半的组织规模是在100人以下。
这些数据表明,CMM认证已经引起软件企业的高度关注,并且这种认证同样适合中小企业。
目前,CMM已经发展到CMMI(Capability Maturity Model Integration,能力成熟度模型集成)阶段。
自20世纪80年代末以来,SEI开发了一系列涉及多个学科的CMM标准,包括系统工程、软件工程、软件获取、生产力实践及集成产品和过程开发,希望通过帮助组织提高人员、技术和过程的成熟度来改善组织整体软件生产能力。
然而,多个模型的同时使用限制和阻碍了组织过程改善的能力。
于是,SEI中止了对CMMI源模型的更新,开始集中开发CMMI项目。
CMMI 项目融合了SW-CMM v2.0 draft C、EIA/IS731、SECM以及IPD-CMM v0.98的内容,形成了组织范围内过程改善的单一集成模型。
预计到2001年末,CMMI -SE/SW/IPPD/A ver1.1将正式发行。
CMMI项目为工业界和政府部门提供了一个集成的产品集,主要目的是消除不同模型之间的不一致和重复,降低基于模型改善的成本。
未来的CMMI 将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力。
SW-CMM的应用
为适应国际化发展,东软股份把SW-CMM作为软件过程改善的指导框架,并把SW-CMM主要应用在两大方面:能力评估和过程改善。
1. 能力评估
SW-CMM是基于政府评估软件承包商的软件能力发展而来的,有两种通用的评估方法用以评估组织软件过程的成熟度:软件过程评估和软件能力评价。
● 软件过程评估: 用于确定一个组织当前的软件工程过程状态及组织所面临的软件过程的优先改善问题,为组织领导层提供报告以获得组织对软件过程改善的支持。
软件过程评估集中关注组织自身的软件过程,在一种合作的、开放的环境中进行。
评估的成功取决于管理者和专业人员对组织软件过程改善的支持。
CBA-IPI是一种软件过
程评估方法,东软股份聘请SEI主任评估师根据CBA-IPI方法先后两次对组织的软件过程进行了正式评估,并通过了CMM 3评估。
● 软件能力评价: 用于识别合格的软件承包商或者监控软件承包商开发软件的过程状态。
软件能力评价集中关注识别在预算和进度要求范围内完成制造出高质量的软件产品的软件合同及相关风险。
评价在一种审核的环境中进行,重点在于揭示组织实际执行软件过程的文档化的审核记录。
SCE是SEI开发的一种基于CMM面向软件能力评价的方法。
2. 过程改善
软件过程改善是一个持续的、全员参与的过程。
SW-CMM建立了一组有效地描述成熟软件组织特征的准则。
该准则清晰地描述了软件过程的关键元素,并包括软件工程和管理方面的优秀实践。
东软股份目前有选择地引用这些关键实践指导软件过程的开发和维护,以不断地改善组织软件过程,实现成本、进度、功能和产品质量等目标。
SW-CMM分为5个成熟度等级:初始级、可重复级、已定义级、可管理级和优化级。
其中每个成熟度等级都是由一些关键过程域和关键实践组成(关于SW-CMM体系结构的详细内容,将在后续的文章中加以介绍)。
小结
一般情况下,基于一种一般意义的模型进行软件过程改善要承担一定的风险,而且面向软件的单一学科也会限制软件过程的改善工作。
SW-CMM并未谈及特定应用领域内的专门知识和具体的技术,
也没有关于人才的策略,而这些都是项目实施成功的关键因素。
因此,东软股份在实施SW-CMM时,并没有单一采纳SW-CMM进行软件过程改善,而是与实施多年ISO 9000的经验相结合,互相补充共同改善软件过程。
另外,从SW-CMM的发展历史来看,SW-CMM是以承接政府和军方软件承包商项目的标准实践为基础的,因此,东软股份在采纳这一标准去改善自身的软件过程时,结合公司实际情况,运用自己的专业知识和判断力对SW-CMM标准进行了裁剪和解释,以适应自身的发展需要。
在后面的章节中,我们将以东软股份为例,详细介绍实施SW-CMM的具体方法和策略。