当前课程知识点:软件工程与软件自动化 >  第八章 软件过程改进 >  8.3 能力成熟度模型 >  授课视频

返回《软件工程与软件自动化》慕课在线视频课程列表

授课视频在线视频

下一节:授课视频

返回《软件工程与软件自动化》慕课在线视频列表

授课视频课程教案、知识点、字幕

嗨,大家好

今天我们讨论软件能力成熟度模型CMM

我们首先来了解一下CMM产生的背景

我们知道,随着软件规模的提高

软件行业面临着各种各样的问题

特别是软件开发和维护的成本不断的提升

软件产品的质量不能令人满意

软件项目经常不能按时完成,延迟交付等等

美国国防部在向承包商发包军用软件开发项目的时候呢

他特别希望能够了解承包商的开发能力

以保证项目的成功和产品的质量

于是他们就委托卡内基梅隆大学的

软件工程研究所进行这方面的研究

于是呢,SEI基于

项目成功很大程度依赖于其开发过程

这样一个基础

提出了包含5级的软件能力成熟度模型

美国国防部要求他的软件承包商的成熟度能力

至少为3级

CMM模型发布之后,很快在全球引起广泛的应用

成为评价软件承包机构的质量保证能力

选择中标机构的依据之一

同时也成为软件机构改进软件产品质量

加强质量管理,提高软件产品质量的依据

CMM从1987年的一篇论文开始

经历了1.0和1.1版本

尽管CMM2.0版本曾有ABC三个草稿

但始终没有推广,并且在1997年开始并入了CMMI

自从CMM推出之后,SEI相继又推出了

自从CMM推出之后,SEI相继又推出了

系统工程、软件采购、人力资源管理

以及集成产品和过程开发等等多个方面的

能力成熟度模型

虽然这些模型在许多组织当中都得到了

广泛的良好的应用

但对于一些大型的软件企业来说

可能会出现同时采用多种模型

来改进自己多方面过程能力的情况

为了解决这些问题

SEI在1997年开始研究CMMI

它的任务是将已有的多个CMM相关模型

打包成一个模型

新的模型应该兼顾已经采用了CMM的软件组织

使其不致受到太大的影响

又能便于它的新用户使用

同时还应该与国际标准ISO/IEC 15504相兼容

CMMI目前分为三个模型

它们分别是DEV开发模型

ACQ获取模型和SVC服务模型

开发模型帮助生产服务开发组织

整合他们的软件开发和系统工程

来改进他们本身的性能和提高过程改进的效率

获取模型帮助企业或组织为他们的客户

进行外包、采购、交易或者其他采购产品服务

提供了一种管理架构

服务模型帮助服务性组织去建立质量服务过程架构

使它们能够更好的改进

服务表现和提高企业的服务收益

2010年11月,SEI推出了CMMI 的1.3版本

这个版本在原有的基础之上增加了许多的

可以提升组织和企业能力的元素组件

对我们软件开发人员来说

我们并不关心采购,交易与服务等等

我们关心的是软件开发过程的评估和改进

因此,这里我们并不需要对整个庞大的

CMMI模型展开讨论

我们只讨论来自于CMM的五级成熟度模型

CMM把软件开发过程的成熟度由低到高分为5级

分别是初始级、可重复级、已定义级

已管理级和优化级

随着等级的提高,逐步降低了软件的开发风险

缩短了软件开发时间,减少了软件开发的人力物力成本

降低了灾难性的错误发生率,提高了质量

CMM评估等级的提升会大幅度提高软件开发能力

有助于客户特别是大公司对其评估企业建立信心

CMM的每个等级是通过三个层次加以定义的

关键过程域,关键实践类和关键实践

成熟度等级表明了企业的过程能力

每个成熟度等级包含若干个对该成熟度等级

至关重要的过程域

它们的实施对达到这个成熟度等级的目标

起到了保证的作用

这些过程域就称为这个成熟度等级的关键过程域

每个关键过程域都有一些特定的目标

目标概括了一个关键过程域的关键实践

表明某个关键过程域的范围、边界和意图

为了实现这些目标

每个关键实践类规定了相应的部门或有关的责任者

他应该实施的一些关键实践

当关键过程域的这些关键实践都得到实施的时候

就能够实现这个关键过程域的目标

关键实践按类组织,描述了为有效实施并规范化

关键过程域

应该具备的基础设施和从事的活动

关键实践是对关键过程区域的实施起关键作用的

方针、规程、措施,活动以及相关基础设施的建

方针、规程、措施,活动以及相关基础设施的建

关键实践一般只描述“做什么”

而不强制规定“如何做”

下面我们来看初始级别

在这个级别当中,软件过程的特点是无秩序的

甚至是混乱的

几乎没有什么过程是经过定义的

成功依赖于个人的经验和能力

处于这种级别的软件企业

项目进行过程当中可能会经常放弃当初的计划

管理毫无章法,缺乏健全的管理制度

导致软件产品的质量不稳定

大家看到的这张图很直观地说明了

活动产生结果

也就是说呢,产品的成功只依赖于个人的能力

第二级是可重复级

在这个级别当中,企业建立了基本的管理制度和
规程

管理工作有章可循

初步实现了过程标准化

开发工作可以比较好地按照标准来实施

变更呢也是按照规则进行,做到了基线化

产品质量稳定可追踪

新项目的计划和管理也是基于过去的实践经验

具有重复以前成功项目的环境和条件

企业的开发过程是有效的

也就是对项目可建立实用的、已文档化的、已实
施的

己培训的、已测量的和能改进的过程

在这个级别中有6个关键过程域

分别是:需求管理,项目策划

项目跟踪与监督,软件子合同管理

软件质量保证和软件配置管理

从这张图当中我们可以看出,在一级的基础之上

增加了计划和评估部分

也就是说开发活动不再是随心所欲了

而是要根据制定好的计划和规范来进行

增加了对过程和产品的评估

而且评估的结果可以进一步的用于提高产品的质量

第三级是已定义级

在这个级别当中,管理活动和工程活动

两方面的软件过程均已文档化、标准化

并集成到组织一级的标准软件过程中

全部的项目都会采用供开发和维护软件所使用的

标准的软件过程的一个经过批准的剪裁版本

整个组织的过程能力是标准的和一致的

在软件组织中存在负责软件过程活动的机构

并具体实施全组织的过程制定、过程维护和过程改进

其中包括全组织的人员培训

使之具备必须的技能和知识

能高效地履行他们的职责

项目能够依据它的环境和需求

通过剪裁组织提供的的这种标准过程

使用组织的过程财富

自定义项目的软件过程

其中,当然允许有一定的自由度

但是呢,任务之间的不匹配的现象

应该在过程的策划阶段得到识别

然后进行项目组之间的协调和控制

大家注意在这张图当中

从standards发出的两个单向箭头

在这个级别中,标准过程是很权威的

是不容置疑的

也就是说

现在的企业只具有遵守标准的能力

而不具备修改标准的能力

第四级是已管理级

在这个级别当中,企业的一个主要活动

就是定量过程管理

可以采集详细的有关软件过程和软件产品的度量
数据

有了这些度量数据

就可以减小过程性能的变化性

进入可接受的量化边界

可以定量的来评估项目的软件过程和产品质量

从而达到对产品和过程的精确控制

在组织一级,为软件产品和过程

都设定了量化的质量目标

而且对软件过程有了明确的定义

和一致的测量方法和手段

因此它的产品质量和过程是受控的和稳定的

由于组织的软件过程能力是已知的

进而可以利用组织的软件过程数据库

来分析和定量地估计出开发新领域软件的风险

来分析和定量地估计出开发新领域软件的风险

过程是经过测量的并能够在可预测的范围内运行

一旦发现过程和产品偏离质量所限制的范围的时候

能够立即采取措施予以纠正

大家请注意在这一级当中

由于大量的度量数据的支持

从项目的计划阶段我们就可以预测项目的结果

同样呢,这一级也不具备修改过程规范的能力

最高一级是优化级。在这个级别当中

企业可以利用来自于过程和来自于新思想

新技术的先导性试验,它们给出的这种定量反馈信息

使持续的过程改进成为可能

在组织级别,重点关注的是持续的过程改进

而项目级别呢,则可以对软件的过程进行评估

以防止过失重复发生

把从中获得的经验和教训散布给其它的项目

过程不断的改进,也就是组织注重不断地进行过程的改进

它有办法识别出过程的弱点,并及时地予以克服

它能够利用关于软件过程有效性的数据

识别出那些最佳的软件工程实践的技术创新

并能够把它推广到整个软件组织

缺陷能得到有效的预防

也就是说呢,软件项目组能够分析并确定缺陷的发生原因

能够认真地评价软件过程

以防止同类的缺陷再次出现

并且能够将经验告知其他的项目组

组织的过程能力不断提高

也就是说呢,组织既能在现有过程的基础上以渐进的方式

又能以技术创新的手段,来不断地改善过程性能

CMMI评估方法简称为SCAMPI

全称是用于过程改进的CMMI标准评估方法

作为CMMI产品系列的一个重要组成部分

SCAMPI是CMMI的实践检查工具

用于内部的过程改进评估、供应商选取评估

及过程审计的评估等等

SCAMPI的评估方法,按照级别可分为ABC三个级别

其中A级是最为严格的,是能进行CMMI等级评定的

唯一的正式的评估方法

B级主要是用于预评估或者是阶段评估

总体要求和A很类似

通常适于过程改进进行一段时间之后的检查

而C级则主要用于第一次评估

特别是企业在没有进行CMM/CMMI过程改进经验的时候

SCAMPI评估必须由SEI授权的主任评估师进行现场评估

SCAMPI将整个评估分成三个阶段

第一个阶段是CMMI的评估过程计划和准备

完成CMMI评估过程的准备和设定

其中确定评估等级目标、建立责任人

工作范围以及CMMI的评估计划等活动

第二个阶段是执行评估

根据第一个阶段制定的计划进行数据采集、分析

确定发现的问题以及进行评级

主要是采集覆盖所有过程域、项目生命周期的整个阶段

同时又能够表征级织的过程能力的数据

在这个过程中,需要多次的重复的采集和分析活动

直至达到相应的目标,然后确定相应的发现

确认每一个关键过程域的评定

这是过程能力级别评定和组织成熟度评定的基础

第三个阶段就是报告阶段

评估组向被评估组织递交一个相对应的评估结论

根据组织要求,归档相应的评估资料

并按计划要求对部分信息进行保密处理

将CMMI的评估结论递交给CMMI标准化组织

好,过程能力成熟度模型就讨论到这里

谢谢大家

软件工程与软件自动化课程列表:

第一章 软件工程基础

-1.1 软件工程的前生今世

--开篇阅读

--授课视频

-第一章 软件工程基础--1.1 软件工程的前生今世

-1.2 万变不离其宗

--授课视频1/3

--授课视频2/3

--授课视频3/3

-第一章 软件工程基础--1.2 万变不离其宗

-1.3 唯一不变的是变化

--授课视频1/3

--授课视频2/3

--授课视频3/3

--外部链接

-第一章 软件工程基础--1.3 唯一不变的是变化

-1.4 亡羊补牢为时不晚

--授课视频1/2

--授课视频2/2

-第一章 软件工程基础--1.4 亡羊补牢为时不晚

-扩展阅读与话题讨论

--扩展阅读

--话题讨论

第二章 敏捷开发

-2.1 方法论来源于恐惧

--授课视频

-第二章 敏捷开发--2.1 方法论来源于恐惧

-2.2 敏捷是什么

--授课视频

-第二章 敏捷开发--2.2 敏捷是什么

-2.3 典型敏捷开发方法

--SCRUM敏捷开发方法

--XP敏捷开发方法

-第二章 敏捷开发--2.3 典型敏捷开发方法

-2.4 敏捷不是万能药

--授课视频

-第二章 敏捷开发--2.4 敏捷不是万能药

-专家谈敏捷

--专家谈敏捷开发方法

-扩展阅读与话题讨论

--外部链接

--话题讨论

第三章 OO与UML

-3.1 面向对象核心概念和基本特性

--核心概念与基本特性

-第三章 OO与UML--3.1 面向对象核心概念和基本特性

-3.2 面向对象设计基本原则

--面向对象设计基本原则

-第三章 OO与UML--3.2 面向对象设计基本原则

-3.3 通用职责分配模式(GRASP)

--通用职责分配模式

-3.3 通用职责分配模式(GRASP)--作业

-3.4 从重构到模式

--模式和设计模式

-第三章 OO与UML--3.4 从重构到模式

-3.5 使用UML设计面向对象系统

--UML综述

-第三章 OO与UML--3.5 使用UML设计面向对象系统

-3.6 主要UML模型图绘制技巧

--UML用例图

--UML类图

--UML序列图绘制技巧

-第三章 OO与UML--3.6 主要UML模型图绘制技巧

-扩展阅读与话题讨论

--设计模式有毒么?

--话题讨论

第四章 对象模型分析

-4.1 案例简介

--书籍参考

--案例说明

-4.2 对象模型之一

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.2 对象模型之一

-4.3 对象模型之二

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.3 对象模型之二

-4.4 对象模型之交互

--授课视频

-第四章 对象模型分析--4.4 对象模型之交互

-扩展阅读与话题讨论

--图书推荐

--话题讨论

第五章 软件自动化技术

-5.1 软件自动化概述

--软件自动化概述

-第五章 软件自动化技术--5.1 软件自动化概述

-5.2 典型自动化方法和工具

--典型自动化工具视频

-第五章 软件自动化技术--5.2 典型自动化方法和工具

-5.3 文档自动化

--文档自动化视频

-第五章 软件自动化技术--5.3 文档自动化

-5.4 测试自动化

--测试自动化视频

--白盒测试工具VU的示例演示片段(版权属原作者)

--功能和性能自动化测试工具及简单应用演示

-第五章 软件自动化技术--5.4 测试自动化

-专家访谈

--北京理工大学刘辉教授谈软件自动化新进展

-扩展阅读与话题讨论

--各个开发阶段最流行的Java工具汇总

--话题讨论

第六章 CI/CD与DevOps

-6.1 持续集成

--持续集成视频1/2

--持续集成视频2/2

-第六章 CI/CD与DevOps--6.1 持续集成

-6.2 持续交付和部署

--持续交付和持续部署

-第六章 CI/CD与DevOps--6.2 持续交付和部署

-6.3 DevOps

--DevOps授课视频

-第六章 CI/CD与DevOps--6.3 DevOps

-专家访谈

--卓睿科技总架构师带来的精彩访谈

-扩展阅读与话题讨论

--DevOps专题

--话题讨论

第七章 软件质量保证

-7.1 质量和质量保证

--授课视频

-第七章 软件质量保证--7.1 质量和质量保证

-7.2 软件质量模型

--授课视频

-第七章 软件质量保证--7.2 软件质量模型

-7.3 SQA组织与职责

--授课视频

-第七章 软件质量保证--7.3 SQA组织与职责

-7.4 全面软件质量管理

--授课视频

-第七章 软件质量保证--7.4 全面软件质量管理

-专家访谈

--专家访谈

-扩展阅读与话题讨论

--外部链接

--话题讨论

第八章 软件过程改进

-8.1 软件过程综述

--授课视频

-第八章 软件过程改进--8.1 软件过程综述

-8.2 软件过程改进

--授课视频

-第八章 软件过程改进--8.2 软件过程改进

-8.3 能力成熟度模型

--授课视频

-第八章 软件过程改进--8.3 能力成熟度模型

-8.4 过程改进标准框架

--授课视频

-第八章 软件过程改进--8.4 过程改进标准框架

-扩展阅读与话题讨论

--敏捷和CMM矛盾么?

--话题讨论

第九章 软件复用

-9.1软件复用综述

--授课视频

-第九章 软件复用--9.1软件复用综述

-9.2 软件构件技术

--授课视频

-第九章 软件复用--9.2 软件构件技术

-9.3 软件复用实施

--授课视频

-第九章 软件复用--9.3 软件复用实施

-9.4 微服务架构

--授课视频

-第九章 软件复用--9.4 微服务架构

-扩展阅读与话题讨论

--微服务扩展

--话题讨论

文档提交处

-文档提交处--文档提交

授课视频笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。