📜  软件工程 |能力成熟度模型(CMM)

📅  最后修改于: 2022-05-13 01:57:00.228000             🧑  作者: Mango

软件工程 |能力成熟度模型(CMM)

CMM 由卡内基梅隆大学的软件工程研究所 (SEI) 于 1987 年开发。

  • 它不是软件过程模型。它是一个框架,用于分析任何组织开发软件产品所遵循的方法和技术。
  • 它还提供了进一步提高用于开发这些软件产品的过程成熟度的指南。
  • 它基于全球最成功的组织所采用的深刻反馈和开发实践。
  • 该模型描述了软件过程改进的策略,应该遵循 5 个不同的级别。
  • 每个成熟度级别都显示了一个过程能力级别。关键过程域 (KPA) 进一步描述了除级别 1 之外的所有级别。

SEI/CMM的缺点:

  • 在某些情况下,它通过取代真正的使命来鼓励实现更高的成熟度水平,即改进过程和整体软件质量。
  • 只有在软件开发过程的早期实施它才有帮助。
  • 它没有正式的理论基础,实际上是基于知识渊博的人的经验。
  • 它没有很好的经验支持,同样的经验支持也可以用来支持其他模型。

关键过程领域(KPA):
这些 KPA 中的每一个都定义了软件过程应满足的基本要求,以便满足 KPA 并达到该成熟度级别。

从概念上讲,关键过程域构成了软件项目管理控制的基础,并建立了应用技术方法、生成模型、文档、数据、报告等工作产品、建立里程碑、确保质量和变化得到妥善管理。

CMM的5个级别如下:

级别 1:初始 -

  • 没有定义 KPA。
  • 遵循的流程是临时的和不成熟的,并且没有很好的定义。
  • 软件开发环境不稳定。
  • 没有预测产品质量、完成时间等的依据。

2 级:可重复 –

  • 侧重于制定基本的项目管理政策。
  • 早期项目的经验用于管理新的类似性质的项目。
  • 项目规划——它包括为项目定义所需的资源、目标、约束等。它提出了一个详细的计划,为成功完成高质量的软件而系统地遵循。
  • 配置管理——重点是在整个生命周期内维护软件产品的性能,包括其所有组件。
  • 需求管理——它包括对客户评论和反馈的管理,这会导致需求集发生一些变化。它还包括适应那些修改后的要求。
  • 分包管理——它专注于对合格软件承包商的有效管理,即管理由第三方开发的软件部分。
  • 软件质量保证——它通过在开发时遵循一定的规则和质量标准指南来保证高质量的软件产品。

3 级:已定义 –

  • 在这个级别,标准指南和程序的文档发生。
  • 它是一组定义明确的、集成的、特定于项目的软件工程和管理过程。
  • 同行评审——在这种方法中,缺陷是通过使用一些评审方法来消除的,比如走查、检查、伙伴检查等。
  • 集团间协调——它包括不同开发团队之间有计划的互动,以确保有效和适当地满足客户需求。
  • 组织流程定义——其重点是标准开发流程的开发和维护。
  • 组织过程焦点——它包括为提高组织的过程能力而应遵循的活动和实践。
  • 培训计划- 它侧重于提高包括开发人员在内的团队成员的知识和技能,并确保提高工作效率。

4 级:管理 –

  • 在这个阶段,为组织设定软件产品和软件过程的量化质量目标。
  • 所进行的测量有助于组织在定量定义的某些限制内预测产品和过程质量。
  • 软件质量管理——它包括制定计划和战略,以开展定量分析和对产品质量的理解。
  • 定量管理-它侧重于以定量方式控制项目绩效。

5 级:优化 –

  • 这是 CMM 中过程成熟度的最高级别,侧重于使用定量反馈在组织中进行持续过程改进。
  • 使用新工具、技术和评估软件过程是为了防止已知缺陷的再次发生。
  • 过程变更管理——它的重点是持续改进组织的软件过程,以提高软件产品的生产力、质量和周期时间。
  • 技术变更管理——包括识别和使用新技术以提高产品质量和减少产品开发时间。
  • 缺陷预防——它侧重于识别缺陷的原因,并通过改进项目定义的流程来防止它们在未来的项目中再次发生。