目录
一.提出
美国卡耐基梅隆大学软件工程研究所在1987提出软件过程,软件能力成熟度和成熟度级别的概念,形成了CMM。
二.CMM的发展
1986年11月,SWI在MITRE公司的协助下开发
1987年9月SEI发布了CMM的描述
1991年推出CMM1.0版本,向ISO靠近
1993年2月推出CMM1.1
三.CMM的特征
1.基于实际实践;
2.最好的反映了实践的情况;
3..反映了软件过程改进和软件过程评估执行人员的需求;
4.形成文档;
5.文档可以公开使用。
四.什么是CMM
软件开发机构用于定义、实施、测量、控制和改进其软件过程的一种阶段性描述,该模型使得现有过程能力的确定,以及对软件质量和过程改进的重要问题的识别变得方法,从而为选择过程改进策略提供指南。
提高软件开发能力的手段
1.是软件过程改进的指南,是适应软件生产过程的一个标准
2.以具体实践为基础(软件工程实践的纲要)
3.在原有软件工程基础上提出的,描述了软件过程中的关键因素
总之:CMM除了可以用作过程改进的指南以外,还提供了一个不断发展的基础,他是一个明确的框架,可以供软件工程师使用、讨论和扩展
CMM描述了有效的软件过程单位元的框架
CMM为软件机构描述了从混乱的、不成熟的软件过程向成熟的、有纪律的软件过程改进的一条路径
五.CMM的主要用途
1.用于软件过程的评价
由一组受过训练的专业人员做出的评价,目的在于确定机构现行如阿健过程的状态;
确定面向机构的高优先级的软件过程相关问题,以得到机构对软件过程改进的支持
2.CMM可以给有关过程改进的讨论提供一些启发性的议题,帮助揭示与通用软件工程实
践所采用的完全不同各种必备条件
3.用于软件能力的评价
由一组受过训练的专业人员做出的评价,目的在于实施软件工作的承制放的资格进行鉴别,或对现有软件工作中使用的软件过程状态进行监督
六.基于CMM的估价方法
1.选择估价小组(受过CMM训练)
2.被评估单位填卷,回答评价组的问题
3.评价组进行相应分析,明确那些问题对,在进一步调查
4.现场访问被评估单位
5.提出调查清单,明确机构软件过程中的强项和弱项(加入内险分析)
6.准备出软件关键过程域剖面图,显示机构在那些区域已满足,那些没满足目标,向有关部分给结论、意见
关键过程域:
一组相关关联的活动,实现一组对建立过程能力至关重要的目标。规定每一个关键过称域属于某个成熟度级别。每个关键过程域由SEI标识为一个基本结构单元域,以帮助确定结构的软件过积能力和了解要达到软件成熟度级别所需要的过积程改进。CMM的2级关键过称域包括需求管理、软件项目计划,软件项目跟踪和监督、软件分包合同管理、软件质量保证和软件配置管理。CMM的第3级关键过程域包括机构过程焦点,机构过程定义,培训大纲,综合软件管理、软件产品工程、组间协调和同行评审。第4级关键过称域包括定量过程管理和软件质量管理。第5级关键过程域包括缺陷预防、技术更新管理和过程更改管理
七.IDEAL方法(软件改进方法)
CMM制订了一套描述成熟软件的特征的可应用准则,供软件开发机构改进软件开发和维护的过程,或由政府或商业机构用于评估选择软件项目承制方面临的风险
Initiating(起始阶段)第一阶段,发起并确定软件过程改进基础设施
diagnosing phase(诊断阶段)第二阶段,实施评估,确定机构的软件过程成熟度基线,向机构提出改进建议
establishing phase(建立阶段)第三阶段,建立起软件过程改进基础设施,包括成立过程协同小组,定义软件过程,改进策略和目标
acting phase(行动阶段)第四阶段,实施过程改进
Leveraging phase (推进阶段)最后阶段,分析软件过程改进中的经验训练,进一步更新软件过程改进的过程。重新发起,建立起下一个改进周期的新目标
八.有关的基本概念
1.过程:针对确定的目的所实施的序列步骤
即:为实现系统的目标所执行一系列操作步骤
2.软件过程:有关开发和维护软件及其相关产品的活动、方法、实践和变换的集合
即:软件从开发到维护的一系列产品
3.软件过程管理:有效的管理、人、方法、工具的集成
4.软件过程能力:遵循某过程可能达到的预期结果的范围
5.软件过程性能:对实际结果的度量
6.软件过程成熟度:
一个特定的软件过程被清晰的定义、管理、测量、控制以及有效使用的程度。程首度意味着能力证长的一种潜力,预示机构的软件过程的丰富性和他的整个机构中应用于个项目的一致性。
即:一个确定的软件过程有明确的定义、评价、管理达到有效的程度
九.CMM的体系结构
(1)级别化
编辑
1.初始级—软件过程的特点是无秩序的,甚至是混乱的。几乎没有什么过程是经过妥善定义的,成功往往依赖于个人或小组的努力
2.可重复级—建立了基本的项目管理过程来跟踪成本、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功
3.已定义级—已将管理和工程活动两方面的软件过程文档化、标准化、并综合成该机构的标准软件过程。所有项目均使用经批准、剪裁得标准软件过程来开发和维护软件
4.以管理级—收集对软件过程和产品质量得详细度量值,对软件过程和产品都由定量得理解和控制5.优化级—过程得量化反馈和先进的新思想、新技术促使过程不断改进
(2)CMM的内部结构
编辑
(3)关键过程域
除了级别1,每个成熟度级别都包含几个关键过程域,一个机构应当重视这些关键过程域,以改进其软件过程。关键过程域确定了实现一个成熟级别所必须解决的问题。
每一个关键过称域都确定了一套相应的活动,完成了这些活动,就达到了被认为是对改进过程能力非常重要的一组目标
关键过程域体现了该成熟级别的要求
关键过程域的目标总结了它的关键实践,可以用来判断一个机构或项目是否有效的实现了关键过程域
编辑
关键过称域是静态的,它高层次地、抽象地描述了过程,但不说明如何执行过程
软件过程随成熟度级别而变化,关键过程域则稳在一个固定的成熟度级别上
编辑
(4)关键实践
每一个关键过称域都用关键实践的概念进行描述。关键实践描述要做”什么”,但他们没有强行规定应当”怎样”完成目标
没一个关键实践由一个单独的句子组成,后面常常有更详细的描述信息。
关键实践的目标在于,沟通那些在大多数项目和机构中使用的原理,沟通那些咋典型的软件应用系统中发挥作用并且能够长期发挥作用的原理
(5)共同特性
共同特性是一些属性,指明一个关键过程域的执行和制度化是否有效、可重复和可持续
1.执行约定:描述机构为确保过程的建立和持续而必须采取的一些措施
2.执行能力:描述项目或机构完整地实现软件过程所必须有的先决条件
3.执行活动:描述了执行一个关键过称域所必需的活动、任务和规程
4.测量和分析:描述了为确定与过程有关的状态所需的基本测量实践
5.验证时间:描述了为确保执行的活动与已建立的过程一致所采取的步骤
十.(机构结构和任务)
1.机构任务
负责人: 在其责任范因内对实施任务和活动的人员提供技术、管理知道与控制,其职能的人员提供技术、管理指导与控制,其职能包括职责范围内的计划、组织、指导和控制工作
上级负责人:上级负责人是机构中足够高层的负责人,主要关注该机构的长期活动,而不是短期计划和契约性质的事务与压力
项目负责人:对整个项目负完全责任,是指导、控制、管理和规范某个软件或软/硬件系统建设的人,是最终对客户负责的人。
项目软件负责人:对一个项目的所有软件活动完全责任,控制一个项目的所有软件资源,按照软件约定与项目负责人打交道
一线软件负责人:完成人事和技术活动的直接管理工作
软件任务主管:负责某项具体任务的技术小组的领导工作,主管技术工作,并负责向该任务的工作人员提供技术指导
工作人员、软件工程人员和成员
3.机构结构
机构指公司或其他实体中的一个单位,从整体上管理许多项目
项目:是机构承担的具体任务,该任务要求对特定产品进行开发和维护,这需要机构中的各部门合作共同完成
小组:由负责人一组任务或活动的部门、负责人、人员组成
软件工程组:负责一个项目的软件开发和维护活动的人员
软件相关组:代表一个软件工程科目的一组人员,他们支持但不直接负责软件开发和维护
软件工程过程组:协助对结构所使用的软件过程进行定义、维护和改进的一个专家小组
系统工程组:负责规格说明系统需求,分配系统需求到哦硬件、软件和其他部件,规格说明硬件、软件和其他部件之间的软件接口,并监督对这些部件的设计和开发
系统测试组:负责计划和实施对软件的单独系统测试
软件质量保证组:负责计划和实施项目的质量保证活动,确保软件开发活动遵循软件过程规程和标准
软键配置管理组:负责计划、协调和实施项目的正规配置管理活动
培训组:负责协调和安排机构的培训活动