0%

软件过程

软件过程

能力成熟度模型(CMM)

CMM 是针对软件过程改进的经典模型,核心是通过分级评估推动软件组织的过程从无序到有序、从经验型到量化管理的演进。

  1. 初始级
    • 特点:过程无规范,依赖个人经验,项目成功与否高度取决于团队成员的能力,缺乏可重复性。
    • 典型问题:进度、成本难以控制,质量不稳定,类似 “救火式” 开发。
  2. 可重复级
    • 核心:建立基础的项目管理流程,如计划制定、进度跟踪、成本控制、配置管理等,使成功的项目经验可重复。
    • 关键实践:制定基线(如需求基线、设计基线),进行项目评审,记录并复用过往项目的经验。
  3. 已定义级
    • 核心:将管理和工程过程标准化、文档化,形成组织级的标准过程(如标准开发流程、模板、指南),所有项目均基于此执行。
    • 关键实践:建立组织过程资产库(如过程手册、案例库),对过程进行裁剪以适应不同项目需求。
  4. 已管理级
    • 核心:引入定量管理,对过程和产品质量设定量化指标(如缺陷率、生产率),通过数据监控过程性能。
    • 关键实践:收集过程数据(如开发周期、工作量),使用统计方法分析偏差,确保过程稳定在可接受的量化范围内。
  5. 优化级
    • 核心:通过定量反馈创新改进持续优化过程,主动识别过程中的薄弱环节,引入新技术、新方法提升效率和质量。
    • 关键实践:建立过程改进小组,基于数据分析推动增量式改进,鼓励全员参与创新。

能力成熟度模型集成(CMMI)

CMMI 是在 CMM 基础上发展而来的综合性模型,不仅适用于软件,还覆盖硬件、系统工程等领域,通过 “阶段式” 或 “连续式” 评估框架,更灵活地支持组织的过程改进。

  1. CL0(未完成的)
    • 过程未执行或未达到预期目标,如未定义输入输出、关键活动缺失。
  2. CL1(已执行的)
    • 过程能产生可识别的输出(如代码、文档),但仅满足基本的 “做了”,缺乏系统性管理。
  3. CL2(已管理的)
    • 过程被计划和监控,明确输入、输出和资源,通过管理确保过程按计划执行(如跟踪进度、控制质量)。
    • 与 CMM “可重复级” 类似,但更强调对过程本身的管理而非仅项目管理。
  4. CL3(已定义的)
    • 过程基于组织级的标准和规程,被文档化并制度化,且与组织的业务目标对齐。
    • 相比 CMM 的 “已定义级”,CMMI 更强调过程与组织战略的关联,以及跨领域(如软件、硬件)的协同。
  5. CL4(定量管理的)
    • 对过程和产品的关键指标进行量化控制(如用统计过程控制 SPC 监控缺陷率),确保过程性能在量化目标范围内波动。
    • 核心:通过数据预测过程趋势,提前预防问题。
  6. CL5(优化的)
    • 利用量化数据和创新方法持续改进过程,主动识别并消除过程瓶颈,同时快速响应内外部变化(如技术革新、市场需求变化)。
    • 关键:建立组织级的改进文化,鼓励通过实验和学习优化过程。

CMM 与 CMMI 的核心区别

维度 CMM CMMI
适用范围 仅针对软件过程 覆盖软件、硬件、系统工程等多领域
评估框架 阶段式(固定级别递进) 支持阶段式和连续式(可按需选择过程域改进)
过程域划分 聚焦软件生命周期的核心过程 更细化,包含工程、管理、支持等多类过程域
灵活性 较固定,需按级别逐步改进 更灵活,允许组织根据优先级选择改进领域

两者的本质目标一致:通过规范化过程提升产品质量、降低成本、提高效率,只是 CMMI 在 CMM 的基础上更具通用性和灵活性,是当前行业更广泛采用的过程改进模型。

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10