CSMM软件过程能力成熟度模型

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

总体框架

成熟度等级的总体特征

等级等级名称结果特征行为特征
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 确保组织业务目标与过程能力目标的持续满足
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 稀疏矩阵是指矩阵中大部分元素都是零的矩阵。相对于稠密矩阵(大部分元素都不为零)而言,稀疏矩阵在存储上可以大大节省空间。在进行矩阵运算时,对于稀疏矩阵的运算,可以利用稀疏矩阵的特殊结构来提高运算效率。 以稀疏矩阵乘法为例,设两个矩阵A、B的大小分别为m×n和n×p,其中A中非零元素个数为a,B中非零元素个数为b,那么稀疏矩阵乘法的时间复杂度可以分为以下几个部分: 1. 构造稀疏矩阵的行索引和列索引,时间复杂度为O(a+b)。 2. 对于A的每一行i和B的每一列j,计算A的第i行和B的第j列的乘积之和,时间复杂度为O(mnp)。但是由于A和B是稀疏矩阵,很多元素都是0,因此实际的计算量要远远小于mnp,可以根据A和B中的非零元素个数来计算。具体来说,设A中第i行有k个非零元素,B中第j列有l个非零元素,那么计算A的第i行和B的第j列的乘积之和的时间复杂度为O(kl)。 3. 将得到的乘积结果存储到一个新的稀疏矩阵中,时间复杂度为O(mn)。 因此,稀疏矩阵乘法的总时间复杂度为O(a+b+mnp),其中a和b分别是A和B中非零元素的个数,m、n、p分别是矩阵A、B、C的行数和列数。需要注意的是,由于稀疏矩阵的特殊结构,实际的计算量远远小于mnp,因此稀疏矩阵乘法的时间复杂度要比稠密矩阵乘法的时间复杂度低很多。 ### 回答2: 稀疏矩阵运算器的时间复杂度计算主要涉及到两个方面:稀疏矩阵的存储和稀疏矩阵运算操作的时间复杂度。 首先是稀疏矩阵的存储。对于一个稀疏矩阵,通常采用的存储方式是压缩存储。其中,最常见的一种压缩存储方式是使用数组,存储非零元素的值及其对应的位置信息。稀疏矩阵存储的时间复杂度主要体现在构建稀疏矩阵的过程中,需要遍历矩阵中的每个元素进行存储。假设矩阵的大小为m行n列,非零元素的个数为k个,则构建稀疏矩阵的时间复杂度为O(mn + k)。 其次是稀疏矩阵运算操作的时间复杂度。稀疏矩阵运算包括稀疏矩阵的加法、乘法、转置等操作。以稀疏矩阵加法为例,假设两个稀疏矩阵A和B的大小均为m行n列,非零元素个数分别为k1和k2。稀疏矩阵加法的时间复杂度为O(k1 + k2),这是因为在相加过程中,只需要将相同位置上的非零元素进行相加即可,省去了对所有元素进行操作的时间开销。 综上所述,稀疏矩阵运算器的时间复杂度计算包括稀疏矩阵的存储和稀疏矩阵运算操作的时间复杂度。稀疏矩阵的存储时间复杂度为O(mn + k),稀疏矩阵运算操作的时间复杂度取决于具体的运算类型,一般为O(k1 + k2),其中k1和k2分别为参与运算的稀疏矩阵的非零元素个数。 ### 回答3: 稀疏矩阵运算器的时间复杂度计算主要涉及矩阵存储和计算两个方面。 对于稀疏矩阵的存储,一般采用压缩的方式,只存储非零元素及其位置信息,而忽略了零元素。因此,存储一个稀疏矩阵的空间复杂度为O(N),其中N为非零元素的个数。 对于稀疏矩阵的计算,常见的运算包括加法、减法和乘法。对于加法和减法,由于只需要对相同位置的元素进行相加或相减,时间复杂度与非零元素的个数成正比,即O(N)。 对于稀疏矩阵的乘法,其时间复杂度的计算稍微复杂一些。一种常见的乘法算法是稀疏矩阵的压缩矩阵乘法(Compressed Sparse Matrix Multiplication,CSMM)算法,时间复杂度为O(n+m+k)。其中n和m分别为两个矩阵的行数和列数,而k则为两个矩阵的非零元素个数的最大值。而对于一般的稀疏矩阵乘法,其时间复杂度可以近似为O(N),其中N为输出矩阵的非零元素个数。 综上所述,稀疏矩阵运算器的时间复杂度计算主要取决于矩阵存储和计算两个方面。对于稀疏矩阵的存储,时间复杂度为O(N),对于加法和减法,时间复杂度为O(N),对于乘法,时间复杂度为O(N)或者O(n+m+k)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红狐九尾

你的鼓励是我持续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值