CMM

CMM

  • CMM的基本概念
    • CMM(Capability Maturity Model for Software) 它是对于软件组织在定义,实施,度量,控制和改善其软件过程的实践中各个发展阶段的描述。其核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化,标准化,使企业能够更好地实现商业目标
    • 软件危机:缺乏软件过程的能力,主要体现在:1、不能按时完成。2、成本超出。3、新的工具和技术的好处难以体现
    • 软件过程(Software process):人们在开发和维护软件及其相关产品时所涉及的各种活动、方法、实践和改革等。其中软件相关产品包括软件项目计划,设计文档,程序代码,测试用例和用户手册等
    • 软件过程能力(Software process capability):当遵循某个软件过程时所能达到的期望效果,它可以有效预测企业接收新的软件项目时可能得到的结果
    • 软件过程效能(Software process performance):当遵循某个软件过程时可能得到的结果。
    • 软件过程成熟度(software process maturity):指一个特定的软件过程被明确定义,管理,度量,控制以及有效的程度。
    • 软件工程过程组(Software Engineering Process Group,SEPG)是一个由专家组成的小组,他们推进组织所采用的软件过程的定义,维护和改进工作。在关键实践中,这个组织通常指"负责组织的软件过程活动的小组"
  • CMM的主要用途
    • 用于软件过程评估(SPA,Software Process Assessment):在评估中,一组经过培训的软件专业人员确定出一个企业软件过程的状况,找出该企业所面对的与软件过程有关的,最急需解决的所有问题,以便取得企业领导层对软件过程改进的支持
    • 用于软件过程改进(SPI,Software Process Improvement)帮助软件企业对其软件过程向更好的方向的改变,进行计划,制定以及实施
    • 用于软件能力评价(SCE,Software Capability Evaluation)在能力评价中,一组经过培训的专业人员鉴别出软件承包者的能力资格;检查和监察正用于软件开发的软件过程的状况
    • CMM可以指导软件机构如何控制软件产品的开发和维护过程,以及如何向成熟度的软件工程体系演化,并形成一套良性循环的管理文化
  • CMM的五个级别
    • 初始级
      • 行为刻画

      成功源于个人英雄主义而非机构行为,因此它不可重复

      更换人员后成功便难以维持

      初始级组织一般不提供开发和维护软件的稳定环境

      • 主要特征

      软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖极个别人的努力和机遇。

    • 可重复级(Repeatable)
      • 行为刻画

      过程已经建立,项目计划和跟踪是确定且有效的,项目的软件过程是可控的,以及已有的成功经验是可重复的。

      • 建立过程--机构已建立管理软件项目的策略和实现这些策略的过程
      • 经验利用--新项目的计划和管理基于类似项目的经验
      • 具体项目--通过建立基本的过程管理纪律来提高过程能力
      • 项目执行--经过定义的,文档化的,曾经实施过的,人员经培训的、可测量的,强制的以及可改进的有效过程
      • 项目跟踪--项目的软件负责人随时跟踪软件成本,进度和项目实现
      • 问题确定--在实现约定的过程中,一旦出现问题就能很快确定
      • 基线完整--对软件需求和实现需求而开发的工作产品建立了基线,并近控制其完整性
      • 遵循标准--项目的软件标准均已确定,并且机构保证能准确地遵循这些标准
      • 分承制方--如果软件有分承制方,软件项目与分承制方要建立一种有效的客户--供应商关系

      在可重复级上,已建立管理软件项目的方针和实施这些方针的规程。基于在类似项目上的经验对新项目进行规划和管理

      达到等级2的目的使软件项目的有效管理过程制度化,这使得组织能重复再以前项目上所开发的成功实践,尽管项目所实施的具体过程可能不同

      • 主要特征

      已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似应用的项目,有章可循并能重复以往所取得的成功。

      • 主要的KPA

      需求管理RM:requirement management

      • 目的:在客户和遵循客户需求的软件项目之间建立一种共同的理解

      软件项目计划SPP:software project planning

      • 是为实施软件工程和管理软件项目制定合理的计划,包括对要完成的工作进行估计,确定必要约定和制定工作计划

      软件项目跟踪和监控SPTO:software project tracking oversight

      • 使能够随时掌握软件项目的实际开发过程,使得当软件项目的执行与软件计划相背离时,管理部门能够采取有效的措施

      软件子合同管理SSM:software subcontact management

      • 为了选择软件开发的合格的分承制方,并进行有效的管理

      软件质量保证SQA:software quality assurance

      • 为管理者提供有关软件项目过程和产品的适当的可见性

      软件配置管理SCM:software configuration management

      • 保证软件项目生成的产品在软件生命周期中的完整性
    • 已定义级(Defined)
      • 行为刻画

      机构标准软件过程--有一个机构范围内标准的软件过程,软件工程活动和管理活动被集成为一个有机的整体。标准化的目的是使高层管理者和软件技术人员能够有效合作

      SEPG组--有一个小组例如软件工程组(SEPG)专门负责订立机构的标准软件过程,并且在机构中制定培训计划来确保相关人员和管理者有足够的知识和技能完成标准过程所赋予的角色

      项目标准软件过程--标准的软件过程结合具体项目的特点经过裁剪即形成项目定义软件过程,它是一组集成的完善定义的软件工程和管理过程

      过程内容--一个完善定义的软件过程应该包括就绪准则,输入,工作过程,验证机制,输出和完成准则。

      跟踪和控制--对于已建立的产品生产线,其成本,时间表和实现功能均可跟踪和控制,软件产品的质量可以得到保证

      共同理解--软件过程能力的实现主要基于在机构范围内对一个定义软件过程的活动,角色和责任的共同理解

      主要特征--在于软件过程已被提升成标准化过程,从而更加稳定性,重复性和可控性

      • 主要特征

      用于管理和工程的软件过程均已文档化、标准化,并形成了整个组织的标准软件过程。全部项目均采用与实际情况相吻合的,适当修改后的标准软件过程来进行操作

      • 主要的KPA

      组织过程焦点OPF:organization process focus

      • 为以能改进组织整体软件过程能力的软件过程活动建立组织的职责

      组织过程定义OPD:organization process definition

      • 开发和维护一个可用的软件过程资源集,以提高各项目的软件过程效能,它以积累的方式使组织长期受益

      培训大纲TP:training program

      • 提高个人的知识和技能,使其有效地履行职责

      集成软件管理ISM:integrated software management

      • 将软件工程和管理活动结合成为密切相关的,定义完整的软件过程。该软件过程从机构标准软件过程和相关过程资源中剪裁而来。

      软件产品工程SPE:software product engineering

      • 是为了一致地执行一个经过完整定义的工程过程,该过程综合了所有软件工程活动,以便高效生产出正确而一致的软件产品。

      组间协调IC:intergroup coordination

      • 是为了建立一种工作方式,使软件工程组与其他小组能积极协作,从而使项目能更好,更有效满足客户要求。

      同行评审PR:peer revire

      • 是为了尽早而有效地排除软件工作产品中的缺陷,一个重要的必然结果是对软件工作产品和可预防的缺陷又更好的理解。
    • 已管理级(Managed)
      • 行为刻画

      主要特征是定量化,可预测,异常控制和高质量

      软件过程和产品有定量的质量指标

      软件项目的产品和生产过程的控制具有可预测性

      已采集详细的有关软件过程和产品质量的度量

      无论软件过程还是产品均得到定量了解和控制

      该等级的过程能力使得组织在定量限制的范围内预测过程和产品质量方面的趋势。当超过限制范围时,采取措施给予纠正。软件产品具有可预测的高质量

      • 主要特征

      软件过程和产品质量均有详细的度量标准。软件过程和产品质量得到了定量的认识和控制

      • 主要的KPA

      定量管理过程(QPM):quantitative process management

      • 为了定量的控制软件项目的过程运行效能,软件过程运行效能用来表示遵循软件过程所达到的实际效果

      软件质量管理(SQM):software quality management

      • 为了定量了解项目的软件产品的质量,并实现具体的质量目标
    • 优化级(Optimizing)
      • 行为刻画

      主要特征是新技术的采用和软件过程的改进作为日常的业务活动来加以计划和管理

      机构集中于持续的过程改进

      改进的途径

      • 对已有过程的渐进式改进
      • 有选择地使用新技术和新方法所带来的革新

      在优化级,整个组织集中精力进行不断的过程改进。为了预防缺陷出现,组织有办法识别出弱点并预先针对性地加强过程

      利用来自过程和来自新思想、新技术的先导性实试验的定量反馈信息,使持续过程改进成为可能

      • 主要特征

      通过对来自过程,新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地对过程进行该井

      • 主要的KPA

      缺陷预防(DP):defect prevention

      • 分析项目开发中遇到的缺陷的来源并设法防止其发生。这些缺陷包括当前项目中被发现的缺陷和其他项目中的缺陷

      技术改革管理(TCM):technology change management

      • 识别新技术(如工具,方法和过程),并有序地将这些技术引入到机构中

      过程更改管理(PCM):process change management

      • 不断改进机构中所使用的软件过程,从而提高软件质量和生产率,缩短产品开发周期

posted on 2018-12-01 16:34  kexinxin  阅读(1114)  评论(0编辑  收藏  举报

导航