软件能力成熟度模型CMM——Capability Maturity Model for Sof tware

简介: 美国卡耐基梅隆大学软件工程研究所在1987提出软件过程,软件能力成熟度和成熟度级别的概念,形成了CMM。

目录

一.提出

二.CMM的发展

三.CMM的特征

四.什么是CMM

五.CMM的主要用途

六.基于CMM的估价方法

七、IDEAL方法(软件改进方法)

八.有关的基本概念

九.CMM的体系结构
十.(机构结构和任务)


一.提出

       美国卡耐基梅隆大学软件工程研究所在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)级别化

image.gif编辑

1.初始级—软件过程的特点是无秩序的,甚至是混乱的。几乎没有什么过程是经过妥善定义的,成功往往依赖于个人或小组的努力

2.可重复级—建立了基本的项目管理过程来跟踪成本、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功

3.已定义级—已将管理和工程活动两方面的软件过程文档化、标准化、并综合成该机构的标准软件过程。所有项目均使用经批准、剪裁得标准软件过程来开发和维护软件

4.以管理级—收集对软件过程和产品质量得详细度量值,对软件过程和产品都由定量得理解和控制5.优化级—过程得量化反馈和先进的新思想、新技术促使过程不断改进

(2)CMM的内部结构

image.gif编辑

(3)关键过程域

        除了级别1,每个成熟度级别都包含几个关键过程域,一个机构应当重视这些关键过程域,以改进其软件过程。关键过程域确定了实现一个成熟级别所必须解决的问题。

        每一个关键过称域都确定了一套相应的活动,完成了这些活动,就达到了被认为是对改进过程能力非常重要的一组目标

     关键过程域体现了该成熟级别的要求

关键过程域的目标总结了它的关键实践,可以用来判断一个机构或项目是否有效的实现了关键过程域

image.gif编辑

关键过称域是静态的,它高层次地、抽象地描述了过程,但不说明如何执行过程

软件过程随成熟度级别而变化,关键过程域则稳在一个固定的成熟度级别上

image.gif编辑

(4)关键实践

   每一个关键过称域都用关键实践的概念进行描述。关键实践描述要做”什么”,但他们没有强行规定应当”怎样”完成目标

  没一个关键实践由一个单独的句子组成,后面常常有更详细的描述信息。

关键实践的目标在于,沟通那些在大多数项目和机构中使用的原理,沟通那些咋典型的软件应用系统中发挥作用并且能够长期发挥作用的原理

(5)共同特性

  共同特性是一些属性,指明一个关键过程域的执行和制度化是否有效、可重复和可持续

  1.执行约定:描述机构为确保过程的建立和持续而必须采取的一些措施

   2.执行能力:描述项目或机构完整地实现软件过程所必须有的先决条件

   3.执行活动:描述了执行一个关键过称域所必需的活动、任务和规程

   4.测量和分析:描述了为确定与过程有关的状态所需的基本测量实践

   5.验证时间:描述了为确保执行的活动与已建立的过程一致所采取的步骤

十.(机构结构和任务)

1.机构任务

负责人: 在其责任范因内对实施任务和活动的人员提供技术、管理知道与控制,其职能的人员提供技术、管理指导与控制,其职能包括职责范围内的计划、组织、指导和控制工作

上级负责人:上级负责人是机构中足够高层的负责人,主要关注该机构的长期活动,而不是短期计划和契约性质的事务与压力

项目负责人:对整个项目负完全责任,是指导、控制、管理和规范某个软件或软/硬件系统建设的人,是最终对客户负责的人。

项目软件负责人:对一个项目的所有软件活动完全责任,控制一个项目的所有软件资源,按照软件约定与项目负责人打交道

一线软件负责人:完成人事和技术活动的直接管理工作

软件任务主管:负责某项具体任务的技术小组的领导工作,主管技术工作,并负责向该任务的工作人员提供技术指导

工作人员、软件工程人员和成员

3.机构结构

机构指公司或其他实体中的一个单位,从整体上管理许多项目

项目:是机构承担的具体任务,该任务要求对特定产品进行开发和维护,这需要机构中的各部门合作共同完成

小组:由负责人一组任务或活动的部门、负责人、人员组成

软件工程组:负责一个项目的软件开发和维护活动的人员

软件相关组:代表一个软件工程科目的一组人员,他们支持但不直接负责软件开发和维护

软件工程过程组:协助对结构所使用的软件过程进行定义、维护和改进的一个专家小组

系统工程组:负责规格说明系统需求,分配系统需求到哦硬件、软件和其他部件,规格说明硬件、软件和其他部件之间的软件接口,并监督对这些部件的设计和开发

系统测试组:负责计划和实施对软件的单独系统测试

软件质量保证组:负责计划和实施项目的质量保证活动,确保软件开发活动遵循软件过程规程和标准

软键配置管理组:负责计划、协调和实施项目的正规配置管理活动

培训组:负责协调和安排机构的培训活动

目录
相关文章
|
3天前
|
机器学习/深度学习 人工智能 并行计算
【AI系统】Kernel 层架构
推理引擎的Kernel层负责执行底层数学运算,如矩阵乘法、卷积等,直接影响推理速度与效率。它与Runtime层紧密配合,通过算法优化、内存布局调整、汇编优化及调度优化等手段,实现高性能计算。Kernel层针对不同硬件(如CPU、GPU)进行特定优化,支持NEON、AVX、CUDA等技术,确保在多种平台上高效运行。
52 32
|
3月前
|
存储 人工智能 并行计算
Pai-Megatron-Patch:围绕Megatron-Core打造大模型训练加速生态
Pai-Megatron-Patch(https://github.com/alibaba/Pai-Megatron-Patch)是阿里云人工智能平台PAI研发的围绕Nvidia MegatronLM的大模型开发配套工具,旨在帮助开发者快速上手大模型,完成大模型(LLM)相关的高效分布式训练,有监督指令微调,下游任务评估等大模型开发链路。最近一年来,我们持续打磨Pai-Megatron-Patch的性能和扩展功能,围绕Megatron-Core(以下简称MCore)进一步打造大模型训练加速技术生态,推出更多的的训练加速、显存优化特性。
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
ONNX 模型互操作性的最佳实践
【8月更文第27天】随着深度学习技术的发展,越来越多的框架被开发出来以满足不同的需求。然而,不同的框架之间缺乏互操作性可能会限制模型的部署和迁移能力。Open Neural Network Exchange (ONNX) 格式旨在解决这个问题,它提供了一种标准化的方法来表示机器学习模型,从而实现了不同框架之间的模型转换和共享。本文将探讨如何在不同的深度学习框架之间高效地转换和部署模型,并提供一些实际的代码示例。
193 1
|
7月前
|
人工智能 Prometheus 监控
【LLMOps】Paka:大模型管理应用平台部署实践
【4月更文挑战第11天】Paka大模型管理及应用平台介绍
221 0
|
计算机视觉
超简单高效方法 | 谷歌提出MOAT Backbone,base+tiny版本实现全方位超越(二)
超简单高效方法 | 谷歌提出MOAT Backbone,base+tiny版本实现全方位超越(二)
147 0
|
机器学习/深度学习 编解码 自然语言处理
超简单高效方法 | 谷歌提出MOAT Backbone,base+tiny版本实现全方位超越(一)
超简单高效方法 | 谷歌提出MOAT Backbone,base+tiny版本实现全方位超越(一)
101 0
|
数据可视化 算法 流计算
ICLR 2023 Oral | Batch Norm层等暴露TTA短板,开放环境下解决方案来了(2)
ICLR 2023 Oral | Batch Norm层等暴露TTA短板,开放环境下解决方案来了
168 0
|
机器学习/深度学习 传感器 人工智能
ICLR 2023 Oral | Batch Norm层等暴露TTA短板,开放环境下解决方案来了(1)
ICLR 2023 Oral | Batch Norm层等暴露TTA短板,开放环境下解决方案来了
141 0
|
传感器 自动驾驶 测试技术
Study | 激光雷达性能如何统一量化?标准化测试最新研究发布
Study | 激光雷达性能如何统一量化?标准化测试最新研究发布
154 0
|
机器学习/深度学习 算法 计算机视觉
CVPR 2021 | CA:用于高效移动网络设计的同位注意力 | 代码开源
Coordinate Attention (CA) 可以插入到移动网络中,如助力MobileNetV2、EfficientNet等网络涨点,性能优于SE、CBAM等注意力模块,还可提高检测、分割性能,代码已开源!
CVPR 2021 | CA:用于高效移动网络设计的同位注意力 | 代码开源