什么是CMMI?
软件能力成熟度模型(Capability Maturity Model For Software ,简称SW-CMM/CMMI),是由美国卡内基梅隆大学软件工程研究所(CMU SEI)研究出的一种用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMM/CMMI是目前国际上最流行、最实用的一种软件生产过程标准,已经得到了国际软件产业界的认可,成为当今(企业)从事规模软件生产不可缺少的一项内容。
|
CMM
|
CMMI
|
CMM与CMMI区别
|
1.
|
需求管理RM
Requirements
Management
|
需求管理 RM
Requirements
Management
|
·
|
要与需求开发Requirement Development 并行工作
|
·
|
明确要求需求的可追溯性
|
|
2.
|
软件项目策划SPP
Software Project
Planning
|
项目策划PP
Project Planning
|
·
|
强调相关人员的参与
|
·
|
要有具体的任务分解表WBS
|
·
|
关注项目技巧的获得
|
·
|
项目数据的数据管理
|
|
3.
|
软件项目跟踪与监控
SPTO
SoftwareProject
Tracking and Oversight
|
项目监督与控制PMC
Project Monitoring
and Control
|
·
|
监控具体实践级别上的约定
|
·
|
强调对风险和相关人员参与的监督
|
|
4.
|
软件子合同管理
SSM
Software Subcontract
Management
|
供应商合同管理SAM
Supplier Agreement
Management
|
·
|
引入了原"子商管理"和"组间协调"的意图
|
·
|
强调合同的概念
|
|
5.
|
软件质量保证SQA
Software Quality
Assurance
|
过程和产品质量保证
PPQA
Process and Product
Quality Assurance
|
·
|
强调对过程及工作产品的客观评价
|
·
|
要正式建立评价标准
|
|
6.
|
软件配置管理SCM
Software Configuration Management
|
配置管理CM
Configuration Management
|
·
|
"Software Library软件库" 被"Configuration Management System配置管理系统"代替
|
·
|
配置管理系统包括存储介质,规程和登陆配置系统的工具
|
|
7.
|
|
度量与分析 MA
Measurement and Analysis
|
·
|
新的过程区域
|
·
|
比原来共同特性中的"度量与分析"部分要求要多
|
·
|
要求组织能够系统地开发并发展自己的度量
|
|
CMM/CMMI将软件过程的成熟度分为5个等级,以下是5个等级的基本特征:
(1)初始级(initial)。工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。
(2)可重复级(Repeatable)。管理制度化,建立了基本的管理制度和规程,管理工作有章可循。 初步实现标准化,开发工作比较好地按标准实施。 变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。
(3)已定义级(Defined)。开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。
(4)已管理级(Managed)。产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。
(5)优化级(Optimizing)。可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法