软件过程能力成熟度模型旨在通过提升组织的软件开发能力帮助顾客提升软件的业务价值。
本模型借鉴吸收了软件工程、项目管理、产品管理、组织治理、质量管理、卓越绩效管理、精益软件开发等领域的优秀实践,为组织提供改进和评估软件过程能力的一个成熟度模型。
总体框架

成熟度等级的总体特征
等级 | 等级名称 | 结果特征 | 行为特征 |
1级 | 初始级 | 软件过程和结果具有不确定性 | 1、能实现初步的软件交付和项目管理活动; 2、项目没有完整的管理规范,依赖于个人的主动性和能力。 |
2级 | 项目规范级 | 项目基本可按计划实现预期的结果 | 1、项目依据选择和定义管理规范,执行软件开发和管理的基础过程; 2、组织按照一定的规范,为项目活动提供了支持保障工作。 |
3级 | 组织改进级 | 在组织范围内能够稳定的实现预期的项目目标 | 1、在2级充分实施的基础上进行持续改进; 2、依据组织的业务目标、管理要求以及外部监管需求,建立并持续改进组织标准过程和过程资产; 3、项目根据自身特征,依据组织标准过程和过程资产,实现项目目标,并贡献过程资产。 |
4级 | 量化提升级 | 在组织范围内能够量化的管理和实现预期的组织和项目目标 | 1、在3级充分实施的基础上使用统计分析技术进行管理; 2、组织层面认识到能力改进的重要性,了解软件能力在业务目标实现、绩效提升等方面的重要作用,在制定业务战略时可获得项目数据的支持; 3、组织和项目使用统计分析技术建立了量化的质量与过程绩效目标,支持组织业务目标的实现; 4、建立了过程绩效基线与过程绩效模型; 5、采用有效的数据分析技术,分析关键软件过程的能力,预测结果,识别和解决目标实现的问题以达成目标; 6、应用先进实践,提升软件过程效率或质量。 |
5级 | 创新引领级 | 通过技术和管理的创新,实现组 织业务目标的持续提升,引领行 业发展 | 1、在4级充分实施的基础上进行优化革新; 2、通过软件过程的创新提升组织竞争力; 3、能够使用创新的手段实现软件过程能力的持续提升,支持组织业务目标的达成; 4、能将组织自身软件能力建设的经验作为行业最佳案例进行推广。 |
能力域
治理
要求说明 | 概述 | 二级能力要求 | 三级能力要求 | 四级能力要求 | 五级能力要求 |
战略与治理 | 组织基于愿景、使命、价值观等,建立组织战略,指导组织业务发展。高级管理层履行其领导作用和承诺,为实现组织战略,提供所需资源,监督业务发,并在必要时进行决策。 | 2.1确定软件开发过程能力建设的范围和边界 2.2基于愿景、使命、价值观等建立组织战略 2.3定期回顾组织战略 | 3.1定义、维护和沟通软件开发过程的组织方针 3.2确保资源的提供以支撑组织战略 3.3确保人员能力以支撑组织战略 3.4监督与评估组织战略 | 4.1基于对软件过程数据统计分析的结果,进行组织战略与治理决策 | 5.1采用创新的方法或手段,强化组织治理能力 |
目标管理 | 组织基于战略,建立组织业务目标,分解到具体的过程能力要求,跟踪和评估目标实现的情况,并为实现目标采取必要的措施。 | 2.1根据组织战略,建立并更新组织业务目标 2.2基于度量数据,跟踪业务目标达成 | 3.1根据组织业务目标,建立组织过程能力要求 3.2 监督与评估过程能力的达成情况 | 4.1 基于统计分析的结果,监督和评估业务目标和过程能力的达成情况 |
开发与交付
要求说明 | 概述 | 二级能力要求 | 三级能力要求 | 四级能力要求 | 五级能力要求 |
需求 | 需求开发和管理之间是同步实施、互为依赖的,两者共同作用使需求得到有效的管理、控制和优化。 需求开发的目的是引出、分析并建立顾客、服务、软件的需求;需求管理的目的是管理和跟踪需求,并确保需求与基于需求的计划、活动和工作产品之间的一致性。 | 2.1 收集、记录利益相关方的需要,形成用户需求 2.2 项目与利益相关方就需求的实现做出承诺 | 3.1 挖掘需求 3.2 分析需求形成软件需求 3.3 确认需求 3.4 管理需求变更 3.5 建立和维护双向可追溯,保持需求的一致性 | ||
设计 | 软件设计是从软件需求出发,根据需求分析确定的结构和模块,对实现软件的结构、系统的数据、系统组件之间的接口以及所用算法的描述。 | 2.1 制定满足需求的设计方案 | 3.1 确定设计方案 3.2 开展软件设计,形成相关设计文件 3.3 评审设计 | ||
开发 | 开发分为实现、集成两个过程,两个过程可以重叠或相互作用,并且可以重复或循环地进行。实现是根据软件设计阶段的要求,进行如下工作:软件编程、调试、开展静态分析、代码审查等,形成满足设计要求的软件组件,并验证软件组件与设计说明的一致性。集成是将就绪的软件组件集成至更复杂的软件子系统或完整的软件系统,从而满足顾客的业务需求。 | 2.1 编写代码,实现设计 2.2 执行单元测试 2.3 制定并执行集成方案 | 3.1 依据设计方案、编码规范和项目计划编写代码 3.2 执行代码评审 3.3 管理接口 3.4 制定集成方案 3.5 根据集成方案执行软件集成 3.6 测试已集成的软件,确保其符合需求和设计 3.7 开发支持文档 | ||
测试 | 测试是验证软件部件或软件系统的需求得到满足,并确认软件在预定环境下达到其预期用途。 | 2.1 建立测试方案 2.2 测试准备 2.3 执行测试,记录结果 2.4 评审测试相关文档 | 3.1 使用组织测试过程资产 3.2 分析测试数据 | ||
部署 | 组织应策划适当的软件发布和部署阶段,并在发布和部署之前,证实其满足预期要求。 发布配置项宜包括软件包、用户手册、帮助文档、安装手册、培训材料等,并在发布前放行验证、封装。 应按照策划的部署阶段制定部署计划,确保软件在目标环境中运行,满足运行要求 | 2.1 发布准备与移交 2.2 制定部署计划 2.3 部署实施 | 3.1 使用组织发布与部署的过程资产 3.2 跟踪监控发布和部署过程 | ||
服务 | 服务是指在软件部署完成后阶段性进行或持续进行的、为满足和维持稳定有效运行而展开的工作。 服务的目的是通过一系列的活动,持续发挥软件的业务应用价值。 | 2.1 制定服务支持计划 2.2 提交服务 2.3 记录执行过程及其结果 | 3.1 定义服务支持策略 3.2 按照服务支持过程提供服务 3.3 提交运行数据和服务绩效报告 3.4 反馈软件问题和变更的相关信息,改进开发过程 | 4.1 采用统计分析方法,建立软件服务支持绩效目标,持续预测服务支持绩效,管理服务支持绩效 | |
开源应用 | 组织在软件交付过程中如使用开源技术,应在开源技术的选择、效果评估、使用规范、知识产权等方面重点关注 | 2.1 在软件设计过程中,进行开源软件的选择、决策 2.2 确认开源软件知识产权 2.3 使用开源软件实现设计 | 3.1 根据组织的规范使用并维护开源软件 3.2 开源软件的个性化开发 3.3 开源软件的升级和替换 3.4 开源软件成果归档 3.5 开源软件使用效果评估 3.6 组织将开源软件成果回馈社区 | 4.1 持续推动开源软件优化提升 |
管理与支持
要求说明 | 概述 | 二级能力要求 | 三级能力要求 | 四级能力要求 | 五级能力要求 |
项目策划 | 项目正式开始之前,应开展项目准备与启动工作,明确项目目标,确定项目范围,确定项目利益相关方,设置里程碑,分配必需的项目资源,进行必要的决策。项目启动后,应对项目进行合理的策划,项目策划是开发和维护指导项目实施的各项计划,并获得各利益相关方对计划的承诺。 | 2.1依据价值分析,进行项目立项决策,确定项目目标,配置项目资源; 2.2 确定项目的范围,根据项目的范围估算软件规模; 2.3 启动项目,成立项目组; 2.4 估算项目工作量、成本和工期; 2.5 制定项目计划; 2.6 组织项目计划的评审,并获得利益相关方的承诺 | 3.1 使用组织历史数据进行项目估算; 3.2 根据组织标准形成项目过程; 3.3 使用组织过程资源和资产策划项目; 3.4 识别并计划项目利益相关方的活动; | 4.1 使用统计分析技术建立项目能力目标; 4.2 识别最有助于达成项目量化目标的过程组合; | |
项目监控 | 项目监控是通过各种方式客观地监视与控制项目各过程,包括但不限于:规模、工作量、进度、质量、成本、知识和技能、利益相关方和资源等,使利益相关方及时了解项目状况,支持项目决策,实现项目目标。 跟踪项目实际状态与计划之间的偏差,在影响目标实现的情况下,采取合适的纠正措施。 | 2.1跟踪项目总体计划及相关计划的执行情况; 2.2跟踪项目的估算及实际进展 2.3跟踪项目利益相关方的参与和承诺; 2.4采取措施,纠正项目的显著偏差 | 3.1按照项目加护和项目过程定义管理项目; 3.2管理项目的关键依赖; 3.3跟踪和管理项目中出现的问题; | 4.1使用统计和其他量化技术,监控和管理项目; 4.2量化评估项目能力目标达成情况; 4.3使用统计分析技术分析影响项目过程能力目标达成的根本原因并解决。 | |
项目结项 | 项目结项指项目按照预期的目标达成或项目受其他因素影响中断,而需进行的项目结项收尾工作。包括但不限于:确认项目目标已达成情况,处理后续相关事宜,项目资源释放、评估项目绩效,项目资产纳入组织管理、总结经验教训。 | 2.1策划并实施结项活动; 2.2处理结项后续事宜 | 3.1回顾项目的重要历程,总结经验教训 3.2评估项目绩效; 3.3贡献过程资产; | ||
风险管理 | 风险管理是指提前识别潜在风险,分析风险的影响,计划并实施缓解风险的措施,规避和降低风险发生的可能性,从而降低风险的危害,或推迟风险的发生以提高实现项目或组织目标的可能性。 | 2.1识别潜在风险; 2.2分析已识别的风险; 2.3应对风险 | 3.1根据已定义的风险分类,识别潜在风险; 3.2定义和管理风险等级; 3.3选择风险管理策略并制定风险管理计划; 3.4按计划实施风险管理活动; | ||
质量保证 | 质量保证可以根据适用的过程描述、标准和规程来检查过程和工作产品,并对发现的问题进行跟踪和解决,以提高实现业务目标的可能性和顾客满意度。 | 2.1制定项目质量保证计划; 2.2评估过程和工作成果; 2.3评估过程和工作成果。 | 3.1根据组织的智联高要求建立检查依据; 3.2依据项目的特征及历史数据,明确质量检查的优先级; 3.3执行检查并分析质量抱枕搞活动记录,优化组织级的过程; | ||
配置管理 | 配置管理是通过技术手段对软件产品及其开发过程和生存周期进行控制、规范的一系列措施,配置管理的目标是记录软件产品的演化过程,保证软件配置项的完整性、一致性和可追溯性。配置管理主要包括配置项标识、配置管理策划、配置管理系统准备、配置项和基线管理、配置审核、配置状态报告等活动。 | 2.1 策划项目配置管理活动,形成配置管理计划 2.2 识别和标识配置项 2.3 建立和发布基线 2.4 使用配置管理工具管理配置项 2.5 建立和维护配置项信息 2.6 管理配置项变更 2.7 执行配置审核 | 3.1 建立统一的配置管理库 | ||
供应商管理 | 当组织需要使用第三方的软件产品、组件或软件服务时,组织应确定并管理供应商,对供应商 进行评估、选择、开发、使用和控制。 | 2.1 建立供应商协议 2.2 监控供应商协议执行 2.3 验收供应商交付物 | 3.1 建立供应商使用准则和策略 3.2 根据供应商的选择准则和条件,选择供应商 3.3 跟踪和评估供应商协议的执行情况 3.4 供应商技术成果的移交 | 4.1 使用统计技术对供应商建立过程能力目标 4.2 基于供应商的过程能力及管理水平建立供应商能力评估体系 |
组织管理
要求说明 | 概述 | 二级能力要求 | 三级能力要求 | 四级能力要求 | 五级能力要求 |
过程管理 | 基于组织业务目标和发展规划,建立、实施、维护组织软件业务相关的标准过程,包括软件过程相关的工作流程、规程规范以及产出参考,并持续改进,以支持组织目标的达成。 | 2.1 识别过程改进的需要 2.2 制定、维护并实施过程改进计划 | 3.1 建立过程改进目标,明确改进的职责定义 3.2 定义组织标准过程 3.3 建立并维护标准过程的裁剪标准 3.4 实施过程改进活动 3.5 评估改进效果 | 4.1 使用统计技术管理改进工作 | |
人员能力管理 | 为保证人员能力能够满足组织的业务目标和软件业务的可持续发展,对人员能力方面的策划、 实施、评估、提升人员能力的标准过程。以持续改进人员能力,实现组织绩效目标和顾客需求。 | 2.1 识别人员能力需求,策划人员能力和配备要求; 2.2 提供并跟踪人员能力和配备要求; 2.3 建立人员能力评估机制 | 3.1 根据组织业务目标建立人员能力管理机制; 3.2 建立组织级人员能力管理目标和计划; 3.3 实施并监控人员能力提升行动; 3.4 建立员工胜任力标准并进行评估; 3.5 建立人员储备资源池管理机制; | 4.1 使用统计分析方法评估人员能力提升与组织业务目标的达成影响; | 5.1 根据组织业务目标建立了员工创新管理和评估机制; |
组织资源管理 | 组织基于业务目标,识别并提供组织软件过程所需的资源、资产,对相关资源及资产进行有效管理,实现资源优化配置,合理利用,以提高组织整体的绩效和能力。 | 2.1 识别软件过程所需的资源和资产; 2.2 提供并维护软件过程资源和资产; 2.3 识别软件过程相关工具并确认使用场景; 2.4 建设并维护软件过程相关工具 | 3.1 形成组织级的资源、资产库建立、管理、监控及评估、更新机制; 3.2 建立并维护组织过程资源和资产库; 3.3 建立组织资源库及资源的使用标准和要求,并推广使用; 3.4 建立并维护软件过程相关工具的使用和管理的过程 3.5 通过软件过程相关工具的使用,支持组织管理流程及组织过程资产的实施 3.6 建立软件过程相关工具使用的评估方法并评估工具使用效果 | ||
过程能力管理 | 基于组织数字化和过程量化管理,围绕过程绩效指标及管理流程,持续改进组织量化管理水平,以提高组织整体的过程绩效,保障业务目标实现。 | 2.1 明确过程能力指标的范围 组织应根据业务目标及项目管理; 2.2 定义过程度量指标的规范及操作说明; 2.3 收集度量数据并进行分析; | 3.1 根据战略规划和业务目标建立过程能力目标; 3.2 建立组织级的过程度量标准; 3.3 收集度量数据,分析组织过程绩效; 3.4 识别影响组织绩效目标达成的问题并解决; | 4.1 使用统计技术建立组织级的过程能力目标; 4.2 识别影响组织业务目标和过程能力目标达成的关键过程; 4.3 建立过程能力的量化基线; 4.4 建立过程能力预测模型 | 5.1 确保组织业务目标与过程能力目标的持续满足 |