软件工程第三章CMM
- 格式:ppt
- 大小:195.50 KB
- 文档页数:11
第3章CMM的体系结构CMM(成熟度模型)是由美国国防部的软件工程研究所(SEI)开发的一种评估和改进软件开发组织能力的方法。
CMM采用五个不同的成熟度级别来评估一个软件开发组织的能力水平,以帮助其提高软件开发过程的质量和效率。
CMM的体系结构主要包括五个级别、过程领域和过程目标。
CMM的五个成熟度级别从最低到最高分别是:初始级、重复级、定义级、管理级和优化级。
每个级别都描述了一个软件开发组织在软件开发和管理上的不同水平。
初始级是指组织没有明确的过程,重复级是指组织已经开始重复使用一些成功的过程,定义级是指组织已经定义了一个标准的软件开发过程,管理级是指组织已经能够根据指标进行管理和持续改进,而优化级是指组织不断优化其软件开发过程以适应变化的需求。
CMM的过程领域是指软件开发过程中的六个关键领域,包括需求管理、项目计划和追踪、软件子系统实现、软件测试、集成与确认以及软件交付和维护。
这些领域是软件开发过程中最常见的问题和挑战,CMM通过评估每个领域的能力来指导组织改进其软件开发过程。
每个过程领域都有一组过程目标,这些目标描述了组织在该领域内所应遵循的最佳实践。
例如,在需求管理领域,过程目标包括了确保需求得到理解和文档化、确保需求的变更得到适当的管理和追踪、确保需求的验证等。
组织可以根据这些过程目标评估其软件开发过程的能力,并制定相应的改进计划。
CMM的体系结构使得软件开发组织能够系统地评估和改进其软件开发过程的能力。
通过逐步提高成熟度级别、改进过程领域和实现过程目标,组织可以逐渐提高软件开发的质量、效率和可靠性,从而提高业务竞争力。
虽然CMM在软件行业的影响力逐渐减弱,被一些更现代的方法和框架所取代,但其体系结构仍然具有指导意义。
例如,CMM的五个成熟度级别为其他评估模型(如CMMI)的发展提供了基础,CMM的过程领域和过程目标也为其他方法(如敏捷开发)提供了参考。
综上所述,CMM的体系结构包括五个成熟度级别、过程领域和过程目标。
基本概念:软件过程(Software Process):过程即人们为实现某一既定目标所执行的一系列步骤(IEEE--STD--610)。
软件过程则可定义为企业设计,研制和维护软件产品及相关资料文档的全部生产活动和工程管理活动。
理解包括SEI在内的美国过程学派的一个核心概念就是--只要过程正确及构成过程的解决方法正确,产品就会正确。
软件过程能力(Software Process Capability):企业实施软件过程所能实现预期目标的程度。
它可用于预测企业的软件过程水平。
软件过程行为(Software Process Performance):企业在项目开发中遵循其软件过程所能得到的实际结果。
软件过程成熟度(Software Process Maturity):软件过程行为可被定义,预测和控制并被持续性提高的程度。
它主要用来表明不同项目所遵循的软件过程的一致性。
软件能力成熟度等级(Software Capability Maturity Ievels):企业的软件开发在由低到高成熟化演进过程中所普遍面临的具有一定成熟度标志特征的平台。
成熟与不成熟(Mature and Immature):不成熟的标志有--没有明确的软件过程体系可以依据;无法对生产进行预测;不严格执行生产过程;质量无法保证;无健全的过程控制及质量控制体系;项目开发没有准则可遵循;开发结果主要依据项目小组及个人的带有主观因素的能力发挥。
成熟的标志有--项目开发是依据企业早已明确的过程准则来实施;开发结果较少依赖个人能力和自然因素;项目由过程控制并可对整个生产作出预测;产品质量得到有效监控(借助客观定量化的数据);过去的开发项目中所获经验得以积累并可系统地用于现行和未来的项目之中。
配置管理(Configuration Management):包括以下管理行为:对某个配置项的功能和物理特性进行识别和编档;对这些特征的变动进行控制;对变动和事实进行记录、汇报;验证需求计划的实现。
自考02333软件工程复习集成化能力成熟度模型第一节背景和原理1.CMMI的含义全称是Capability Maturity Model Integration,即软件能力成熟度模型集成,是由美国国防部与卡内基-梅隆大学和美国国防工业协会共同开发和研制的,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。
其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。
CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。
因而能够从总体上改进组织的质量和效率。
2.CMMI主要关注点成本效益、明确重点、过程集中和灵活性四个方面。
CMMI核心理念:过程管理3. CMMI核心理念:过程管理CMMI是一套融合多学科的、可扩充的产品集合,其研制的初步动机是为了利用两个或多个单一学科的模型实现一个组织的集成化过程改进。
CMMI的本质是软件管理工程的一个部分。
软件过程改善是当前软件管理工程的核心问题,50多年来计算机的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。
基於模型的过程改进是指用采用能力模型来指导组织的过程改进,使之过程能力稳定的进行改善,该组织也能变得更加成熟。
CMM的成功促使其他学科也相继开发类似的过程改进模型,例如系统工程、需求工程、人力资源、集成产品开发、软件采购等等,从CMM衍生出了一些改善模型,比如:SW-CMM,SE-CMM、IPD-CMM等。
不过,在同一个组织中多个过程改进模型的存在可能会引起冲突和混淆。
CMMI就是为了解决怎麼保持这些模式之间的协调。
4.CMMI的构成(1)软件能力成熟模型(SW-CMM)(2)软件工程能力模型SECM(3)集成产品开发能力成熟度模型IPD-CMM第二节 CMMI的模型部件每一个CMMI模型都有的基本模块叫做“过程域”。
软件工程与能力成熟度模型cmm中国计算机用户20世纪70年代中期,软件工程管理引起广泛注意。
当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的失败项目是因为管理不善而引起的,而不是因为技术实力不够。
他们进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。
这个结论非常重要。
软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制等等。
在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。
由此可见,软件工程管理的意义至关重要。
软件项目的特殊性软件工程管理和其它工程管理相比有其特殊性。
首先,软件是知识产品,进度和质量都较难度量,生产效率也较难保证。
其次,软件系统复杂程度也是超乎想象的。
例如,宇宙飞船的软件系统源程序代码多达2000万行,如果按过去的生产效率一个人一年只能写1万行代码的话,将需要2000人年的工作量,这是非常惊人的。
正因为软件如此复杂和难以度量,软件工程管理的发展还很不成熟。
cmm,逐步的成熟美国carnegie mellon大学软件工程研究所(cmu/sei)主持研究与开发的cmm/psp/tsp技术,为软件工程管理开辟了一条新的途经。
cmm是英文“capability maturity model”的简称,意为能力成熟度模型。
cmm的本质是软件管理工程的一个部分。
根据软件生产的历史与现状,cmm框架可用5个不断进化的层次来表达:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。
任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。
CMM各级别代表的含义第一级:初始级在初始级,企业一般不具备稳定的软件开发与维护的环境。
常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。
第二级:可重复级在这一级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。
基于过往的项目的经验来计划与管理新的项目。
第三级:定义级在这一级,有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。
同时,这些过程是集成到一个协调的整体。
这就称为企业的标准软件过程。
第四级:定量管理级在这一级,企业对产品与过程建立起定量的质量目标,同时在过程中加入规定得很清楚的连续的度量。
作为企业的度量方案,要对所有项目的重要的过程活动进行生产率和质量的度量。
软件产品因此具有可预期的高质量。
第五级:(不断)优化级在这个等级,整个企业将会把重点放在对过程进行不断的优化。
企业会采取主动去找出过程的弱点与长处,以达到预防缺陷的目标。
同时,分析有关过程的有效性的资料,作出对新技术的成本与收益的分析,以及提出对过程进行修改的建议。
CMM第一级:初始级◆特征(1)软件过程的特点是杂乱无章,有时甚至混乱,几乎没有定义过程的规则或步骤。
(2)过分的承诺,常作出良好的承诺:如“按照软件工程方式,有序的工程来工作”;或达到高目标的许诺。
但实际上却出现一系列问题。
(3)遇到危机就放弃原计划过程,反复编码和测试。
(4)成功完全依赖个人努力和杰出的专业人才,取决于超常的管理人员和杰出有效的软件开发开发人员。
具体的表现和成果都源于或者说是决定于个人的能力和他们先前的经验、知识以及他们的进取心和积极程度。
(5)能力只是个人的特性,而不是开发组织的特性。
依靠着个人的品质或承受着巨大的压力;或找窍门取得成果。
但此类人一旦离去,对组织的稳定作用也消失。
(6)软件过程是不可确定的和不可预见的。
软件成熟性程度处于第一级软件组织的软件过程在实际的工作过程中被经常的改变(过程是随意的)。