接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(6)
上一回在讲习题的时候引出来软件能力成熟度,由于内容较多,因此并未讲完,本回把剩余知识讲完。
软件能力成熟度模型
软件能力成熟度模型(Capability Maturity Model,CMM)是一个概念模型。模型框架和表示是刚性的,不能随意改变,但模型的解释和实现有一定弹性。CMM提供了一个软件能力成熟度的框架,它将软件过程改进的步骤组织成5个成熟度等级,为软件过程的 不断改进奠定了一个循序渐进的基础。
1. CMM的等级
CMM的目的是帮助组织对软件过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。CMM的5个成熟度等级分为初始级、可重复级(已管理级)、已定义级、已管理级(量化管理级)、优化级。
2. 关键过程域
除初始级以外,CMM的每个级别的实现都定义成可操作的,每一级包含了实现这级目标的若干关键过程域(Key Process Area,KPA),如下表所示:
成熟度等级 | 过程分类 | 管理方面 | 组织方面 | 工程方面 |
---|---|---|---|---|
可重复级 | 需求管理 软件项目计划 软件项目跟踪与监控 软件子合同管理 软件质量保证 软件配置管理 | |||
已定义级 | 集成软件管理 组间合作 | 组织过程焦点 组织过程定义 培训计划 | 软件产品工程 同行评审 | |
可管理级 | 量化过程管理 | 软件质量管理 | ||
优化级 | 技术变更管理 过程变更管理 | 缺陷预防 |
每个KPA都是由关键实施活动(Key Practices,KP)所组成,它们的执行表明该KPA在一个组织内部得到实现。
3. 能力成熟度模型集成
能力成熟度模型集成(Capability Maturity Model Integration,CMMI)融合了多种模型,形成了组织范围内过程改进的单一集成模型,其主要目的是消除不同模型之间的不一致和重复,降低基于模型进行改进的成本。CMMI继承了CMM的阶段表示法和EIA/IS731的连续表示法。这两种表示方法各有优缺点,均采用统一的24个过程域,它们在逻辑上是等价的,对同一个组织采用两种模型分别进行CMMI评估,得到的结论应该是相同的。
(1)阶段式模型
阶段式模型基本沿袭CMM模型框架,仍保持5个成熟等级,但关键过程域做了一些调整和扩充。
当组织通过了某一等级过程域中的全部过程,即意味着该组织的成熟度达到了这一等级。利用阶段式模型对组织进行成熟度度量,概念清晰、易于理解、便于操作。
(2)连续式模型
与阶段式模型相比,连续式模型没有与组织成熟度相关的几个阶段。连续式模型将24个过程域按照功能划分为过程管理、项目管理、工程和支持4个过程组。
连续式模型的过程域强调实践,每个过程域代表组织某一方面的能力。每个过程域的能力均分为5级,所有过程域共同的能力等级决定组织的能力等级。连续式模型允许组织对过程域进行裁剪,也允许对不同的过程域采用不同的能力等级。采用这种模式的评估结果用能力特征图表示。连续式模型允许一个过程域出现在多个特征图中,这些特征图分别代表某种能力的过程域的子集。
CMM和CMMI是提高软件组织的成熟度和软件过程能力的有效模型和工具,组织无论采用CMM模型还是采用CMMI模型、无论是使用阶段式模型还是使用连续式模型,都能提高软件过程的成熟度、都能提高项目的软件过程能力,用两种模型或两种方法评价的结论应该是基本一致的。