一、CMM是什么?
1、CMM(软件能力成熟度模型)介绍
卡耐基梅隆大学的软件工程研究所(SEI)推出了软件能力成熟度模型,也被称为软件能力成熟度模型(简称SW-CMM、CMM或SCMM),它认为所有从事软件开发的组织都会按顺序经过各种成熟度阶段。SW-CMM描述了软件过程成熟度的基本原则和实践。它的目的是帮助软件组织提高其软件过程的成熟度和质量。
它的目的是帮助软件组织提高他们的软件过程的成熟度和质量,实施一条从临时的、混乱的过程到成熟的、有纪律的软件过程的进化之路。SW-CMM的理念是,软件的质量取决于其开发过程的质量。
SW-CMM没有明确涉及安全性,但网络安全专业人员和软件开发人员有责任确保安全性要求被整合到软件开发工作中。
SW-CMM的阶段如下:
第1阶段 初始级 这个阶段,你经常会发现勤奋的人以一种无序的方式忙碌着。通常很少或没有确定的软件开发过程。
第2阶段 可重复级 在这个阶段,基本的生命周期管理过程被引入。以有组织的方式重复使用代码开始进入画面,并期待类似项目的可重复结果。SEI将这一层次的关键过程领域定义为需求管理、软件项目规划、软件项目跟踪和监督、软件分包管理、软件质量保证、软件配置管理。
第3阶段 定义级 在这个阶段,软件开发人员根据一套正式的、文档化的软件开发过程进行操作。所有的开发项目都是在新的标准化管理模式的约束下进行的。SEI将这一层次的关键过程领域定义为组织过程重点、组织过程定义、培训计划、综合软件管理、软件产品工程、团队间协调和同行评审。
第4阶段 管理级 在这个阶段,软件过程的管理进入下一个层次。量化措施被用来获得对开发过程的详细了解。SEI将这一层次的关键过程领域定义为定量过程管理和软件质量管理。
第5阶段 优化级 在优化级的组织中,出现了一个持续改进的过程。复杂的软件开发过程已经到位,确保从一个阶段的反馈到前一个阶段,以改善未来的结果。SEI将这一层次的关键过程领域定义为缺陷预防、技术变更管理和过程变更管理。
二、CMMI是什么?
2、CMMI (软件能力成熟度集成模型)介绍
CMMI 是在美国国防部资助下,由卡内基梅隆大学软件工程所建立,用于评价软件开发组织过程能力成熟度的模型,后来该模型被用于软件开发组织内部的软件过程改进。CMMI 里面的所有要求都来自于成功企业的最佳实践,涉及产品的开发和维护活动、覆盖产品从概念提出到交付和维护的整个生存周期。
CMMI 的5 个级别如下:
( 1 ) CMMI Level 1 ,初始级。软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于努力。管理是反应式的。
(2) CMMI Leve12 ,可管理级。建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
( 3 ) CMMI Level 3 ,已定义级。已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
(4) CMMI Leve14 ,量化管理级。分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个做出结论的客观依据,管理能够在定量的范围内预测性能。
( 5 ) CMMI Level 5 ,优化管理级。过程的量化反馈和先进的新思想、新技术促使过程持续不断地改进。
CMMI 的每个等级都由几个过程域组成,这几个过程域共同形成一种软件过程能力。每个过程域都有一些特殊目标和通用目标,通过相应的特殊实践和通用实践来实现这些目标。当一个过程域的所有特殊实践和通用实践都按要求得到实施,就能实现该过程域的目标。
CMMI 为企业带来的价值主要体现在以下几个方面:
( 1 )能保证软件开发的质量与进度,能对"杂乱无章、无序管理"的项目开发过程进行规范。
(2 )有利于成本控制。因为质量有所保证,浪费在修改、解决客户的抱怨方面的成本会降低很多。绝大多数情况是缺少规范制度,只是求快。项目完成后,要浪费很多时间修修补补,费用很难控制。
( 3 )有助于提高软件开发者的职业素养。每一个具体参与其中的员工,无论是项目经理,还是工程师,甚至一些高层管理人员的做事方法逐渐变得标准化、规范化。
(4 )能够解决人员流动所带来的问题。公司通过过程改进,建立知识库以共享经验,而不是单纯依靠某些人员。
( 5 )有利于提升公司和员工绩效管理水平,以持续改进效益。通过度量和分析开发过程和产品,建立公司的效率指标。
CMMI 的中心思想是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI 为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加了透明度和理解,建立了一个自动的、可扩展的框架。
了解过这两项认证后,其实CMM和CMMI的主要区别在于:
CMM在很大程度上已经被一个新的模型所取代,这个模型叫做能力成熟度模型集成(CMMI)。CMMI使用与CMM相同的五个阶段,但把第四级称为量化级,而不是管理级。CMM和CMMI之间的主要区别是CMM关注的是孤立的过程,而CMMI关注的是这些过程之间的整合。