春秋战国志吧 关注:11,621贴子:336,161

软件能力成熟模型cmm

只看楼主收藏回复

译者的话
R·M·S 译文选10 《国外软件可靠性资料汇编》中第八篇“评估承包商软件工程能
力的一种方法”中给出的方法,经过多年试用和完善,于1991 年发展成为软件工程过程能
力成熟度模型,即CMM1.0,又经过实践、改进,于1993 年修改为CMM1.1。该模型的原
理和作用现已得到国际公认,它不仅可用来评估软件开发单位的能力,更重要的是可供软件
开发单位自我评估,并找出提高本单位软件开发能力的最有效途径。国际标准化组织正在以
该模型思想为基础,组织制定相应的一系列标准。
我国软件产业正处在亟待加速发展的时期,装备系统对软件可靠性提出了很高要求。在
这种情况下,如何尽快提高软件开发单位的软件工程能力便成了紧迫的课题。统计表明,随
着软件工程能力提高,软件开发的风险将显著降低.软件产品所含缺陷数将明显减少。因此,
提高软件工程能力也是保证软件质量与可靠性的根本措施。
基于上述认识,我们感到将CMM1.1 翻译出来,供广大软件开发单位参考,会有助于
提高各自的软件工程能力,从而增强其市场竞争能力,也有利于保证软件质量与可靠性。由
于水平所限,难免有缪误之处,恳请读者指正。
译者1996·06


1楼2009-10-11 16:11回复
    内容简介
    本集包括有关SEI 提出的CMM 的叁篇重要文献。第一篇是“软件能力成熟度模型1.1
    版”;第二篇是“能力成熟度模型的关键实践1.1 版”;第三篇是“软件过程成熟度提问单”。
    第一篇包含以下内容:定义为理解CMM 所需要的概念和简略介绍模型、描述五个成熟
    度等级及其基础原理、描述CMM的可操作定义和它的结构、简介有关组织如何运用CMM
    进行软件过程评估和软件能力评价,提出CMM 未来的发展方向。
    第二篇的开头是概述部分共四章:给出有关CMM 及这篇文章的概述;简介CMM 及其
    构成成分;介绍关键实践的版面安排;描述运用和解释关键实践的方法。概述之后按CMM
    的每个等级(除一级外),分别给出每个关键过程区域的简要描述、目标、及所包含的全部
    关键实践(按五个共同特点——执行约定、执行能力、执行的活动、测量和分析、验证实施
    ——加以组织).附录C 中给出了关键实践的简略版本,它包括关键过程区域的简要描述、
    关键过程区域的目标,关键过程区域在执行的活动这一共同特点下全部关键实践的上层实
    践,供读者快速查阅用。第二篇的附录中还包合它所用的术语汇编。
    第三篇是基于“能力成熟度模型1.1 版”的评估工具。
    译者1996·06·20


    2楼2009-10-11 16:11
    回复
      2025-08-23 03:53:39
      广告
      不感兴趣
      开通SVIP免广告
      软件过程评估量由一个经相识的软件专业人员小组所作的一项鉴定,旨在规定组织当前软件过程的状态、
      组织所面对的与软件过程有关的具有高优先级的问题,“及获用组织对软件过程改进的支持。
      ②软件能力评价是由一个经培训的软件专业人及小组所作的一项鉴定,旨在鉴别出合格的软件工作承包商,
      或者监控现有软件工作中所采用的软件过程的状态.
      ③ SEI FTP 机器地址是128.237. 2.179


      3楼2009-10-11 16:12
      回复
        1.1 不成熟和成熟软件组织的比较
        为了设置合理的过程改进目标,必须了解不成熟软件组织和成熟软件组织间的区别。在
        不成熟软件组织中,软件过程一般由实践者及其管理者在项目进程中临时拼凑而成。即使已
        规定了软件过程,也不能严格地遵守和贯彻它。不成熟的软件组织是反应式的,通常经理们
        集中精力于解决即时危机(称为消防)。由于制定进度和预算不是基于现实的估计,因而超
        出进度和预算已成惯例。当硬性规定时限时,为满足进度要求,常在产品功能和质量上作出
        让步。
        在不成熟组织中,不存在判断产品质量或者解决产品或过程问题的客观基础。因此,产
        品质量难以预测。当项目进度迟后时,常缩短或取消像评审和测试这些旨在提高质量的活动。
        可是,一个成熟软件组织具有全组织范围的管理软件开发和维护过程的能力。软件过程被正
        确无误地通知到现有职员和新雇员,工作活动均按照已规划的过程进行。强制式的过程适于
        使用[Humphrey 91b〕,而且和实际进行工作的方式相一致。需要时就对这些已定义的过程进
        行更新,并且通过可控的先导性试验和(或)费效分析使其得到改进。在已定义的过程中,
        遍及所有项目和在整个组织中,所有的岗位及其职责都是清楚的。
        成熟组织中,经理监控软件产品的质量和顾客的满意程度。在判断产品质量和分析产品
        及过程问题方面有客观的、定量的基础。进度和预算是基于以前的性能数据,因而是现实的;
        通常都能达到产品的成本、进度、功能和质量的预期结果。一般讲,成熟组织一致地遵循一
        个有纪律的过程,因为所有的参加者都了解这样做的价值,而且存在支持该过程的必要基础
        设施。
        要从这些有关不成熟和成熟软件组织的观察资料中获益,需要构造一个软件过程成熟度
        框架。该框架描述一条从无序的、混乱的过程到成熟的、有纪律的软件过程的进化途径。没
        有此框架改进大纲可能显得无效,因为尚未建立起支持连续改进的必不可少的基础。软件过
        程、软件过程能力、软件过程性能和软件过程成熟度等概念集为一体,形成了软件过程成熟
        度框架,在下面几节中将定义所有这些概念。


        4楼2009-10-11 16:13
        回复
          1.2 构成过程成熟度基础的基本概念
          根据韦氏字典,一个过程是“某物生产的操作体系⋯⋯能导致结束或得到结果的一系列
          的活动、变更、或操作。”IEEE定义过程为“为实现给定目标所执行的一序列的步骤”[IEEE
          -STD-610)。所以,一个软件过程可以定义为,人们用以开发和维护软件及其相关产品(例
          如,项目计划、设计文档、代码、测试用例、用户手册等等)的一组活动、方法、实践和变
          换。随着一个组织的成熟,其软件过程得到更好的定义,并在整个组织内得到更一致的实施。
          软件过程能力描述通过遵循软件过程能够实现预期结果的程度。一个组织的软件过程能
          力提供一种预测该组织承担下一个软件项目时最可能的预期结果的方法。
          软件过程性能表示遵循软件过程所得到的实际结果。所以,软件过程性能关注已得到的
          结果,而软件过程能力则关注预期结果。由于一个特定项目的属性和执行该项目的环境所限,
          该项目的实际性能可能并不充分反映组织的整个过程能力,即项目的能力受限于它的环境。
          例如,项目在应用领域或所采用的技术上的根本改变可能造成其职员正处于学习状态,这使
          得他们的项目能力和性能远达不到该组织的整个过程能力。
          软件过程成熟度是一个特定过程被明确地定义、管理、测量、控制、并且是有效的程度。
          成熟度意味着能力上的增长潜力,并且表明一个组织软件过程的丰富性和在遍及组织的项目
          中运用它时的一致性。在成熟组织中,通常通过文档和培训使全组织有关人员对软件过程都
          能很好的了解,并且使该过程得到其用户不断的监控和改进。一个成熟软件组织的能力是已
          知的。软件过程成熟度意味着,由于运用组织的软件过程使过程纪律性一致增强,从而其软
          件过程所导致的生产率和质量能随时间的推移得到改进。
          随着软件组织的软件过程成熟度的提高,组织通过方针、标准和组织机构将其软件过程
          规范化。规范化需要建立一种支持经营方法、实践和规程的基础设施及社团文化,使得在最
          初定义方法、实践和规程的人员离去后,它们仍能继续下去。


          5楼2009-10-11 16:13
          回复
            2 软件过程成熟度的五个等级
            过程的不断改进基于许多小的、进化的步骤,而不是革命性的创新(Imai 86)。CMM
            提供了一个框架,将这些进化步骤组织成五个成熟度等级,它为过程不断改进奠定了顺序渐
            近的基础。这五个成熟度等级定义了一个有序的尺度,用以测量组织软件过程成熟度和评价
            其软件过程能力。这些等级还能帮助组织对其改进工作排出优先次序。
            成熟度等级是妥善定义的在向成熟软件组织前进途中的平台。每一个成熟度等级为过程
            继续改进提供一个台基。每一等级包含一组过程目标,当目标满足时,能使软件过程的一个
            重要成分稳定。每达到成熟度框架的一个等级,就建立起软件过程的一个不同的成分,导致
            组织过程能力的增长。
            将CMM 组织成如图2.1 所示的五个等级,对旨在增加软件过程成熟度的改进行动
            (action)按优先级排序。图2.l 中带有标记的箭头,指示在成熟度框架的每一步骤上,组织
            应予以规范化的过程能力的类型。
            下列的五个成熟度等级的特性突出说明在每个等级上过程的主要变化。
            1)初始级软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经过
            定义的,成功依赖于个人的努力。
            2)可重复级已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪律
            已经就位,使具有类似应用的项目。能重复以前的成功。
            3)已定义级管理活动和工程活动两方面的软件过程均已文档化、标准化、并集成到组
            织的标准软件过程。全部项目均采用供开发和维护软件用的组织标准软件过程的一个经批准
            的剪裁版本。
            4)已管理级已采集详细的有关软件过程和产品质量的度量。无论软件过程还是产品均
            得到定量了解和控制。
            5)优化级利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续
            过程改进成为可能。


            6楼2009-10-11 16:14
            回复
              2.1 成熟度等级的行为特征
              等级2 到等级5 的成熟度能通过以下各项对其特征加以描述:组织为建立或改进软件过
              程所进行的活动、对每个项目所进行的活动和所产生的横跨各项目的过程能力。这里之所以
              列出等级1 的行为特性,是为了给较高成熟度等级提供比较过程改进的基础。


              7楼2009-10-11 16:15
              回复
                2.1.1 等级1——初始组
                在初始级上组织一般不提供开发和维护软件的稳定环境。当组织中缺乏健全的管理实践
                时,不适当的规划和反应驱动体系会降低由良好的软件工程实践所带来的效益。
                在危机时刻,项目一般抛弃预定的规程,回复到仅作编码和测试。成功完全依赖于有一
                个杰出的经理及一支有经验的、战斗力强的软件队伍。偶尔,有能力的、坚强的软件经理能
                经受住要他们在软件过程中走捷径的压力,但是当他们离开项目后,他们能使过程稳定的影
                响也随之消失。甚至一个强的工程过程也不能克服由于缺乏健全的管理实践所造成的不稳
                定。
                等级1 组织的过程能力是不可预测的,因为随着工作进展软件过程经常被改变或修定
                (即过程是无秩序的(ad hoc))。进度、预算、功能性和产品质量一般是不可预测的。性能
                依赖于个人的能力,且随个人固有的技能、知识和动机的不同而变化。等级1 组织几乎没有
                明显的稳定的软件过程,只能通过个人的能力而不是组织的能力去预测性能。


                8楼2009-10-11 16:15
                回复
                  2025-08-23 03:47:39
                  广告
                  不感兴趣
                  开通SVIP免广告
                  2.1.2 等级2——可重复级
                  在可重复级上,已建立管理软件项目的方针和实施这些方针的规程。基于在类似项目上
                  的经验对新项目进行规划和管理。达到等级2 的目的是使软件项目的有效管理过程制度化,
                  这使得组织能重复在以前项目上所开发的成功实践,尽管项目所实施的具体过程可能不同。
                  一个有效过程可特征化为实用的、已文档化的、已实施的、已培训的、已测量的和能改进的。
                  等级2 组织中的项目已设置基本的软件管理控制。实际可行的项目约定是基于对以前项
                  目的观察结果和当前项目的需求。项目的软件经理跟踪软件成本、进度和功能性;在满足约
                  定方面的问题,一旦出现就被识别。对软件需求和为实现需求所开发的工作产品建立基线,
                  并控制其完整性。软件项目标准均已确定,并且组织能保证准确地执行这些标准。如果有子
                  承包商的话,软件项目与他们一起努力建立一种强有力的顾客——供应商关系。
                  等级2 组织的过程能力可概括为有纪律的,因为软件项目的规划和跟踪是稳定的,能重
                  复以前的成功。由于遵循基于以前项目性能所制定的切实可行的计划,项目过程处在项目管
                  理系统的有效控制之下。


                  9楼2009-10-11 16:16
                  回复
                    2.1.3 等级3——已定义级
                    在已定义级上,全组织的开发和维护软件的标准过程已文档化,包括软件工程过程和软
                    件管理过程,而且这些过程被集成为一有机的整体。在CMM中的所有地方,均称此标准过
                    程为组织的标准软件过程。等级3 上所建立(适当时,经更改)的过程,被用来帮助软件经
                    理和技术人员工作得更有效。组织在使其软件过程标准化时,利用有效的软件工程实践。存
                    在一个负责组织的软件过程活动的组,例如软件工程过程组(SEP)[Fowler 90]。实施全组
                    织的培训计划以保证职员和经理具有履行其职责所必须的知识和技能。
                    项目通过剪裁组织的标准软件过程去建立他们自己定义的软件过程,它说明项目独有的
                    特征。在CMM中,这种剪裁后的过程称作项目定义软件过程。一个已定义软件过程包含一
                    组协调的、集成的、妥善定义的软件工程过程和管理过程。妥善定义的过程可特征化为具有
                    准备就绪判据、输入、标准、进行工作的规模、验证机制(例如同行评审)、输出、以及完
                    成判据。因为软件过程已妥善定义。管理者就能洞察所有项目的技术进展。
                    等级3 组织的软件过程能力可概括为标准的和一致的,因为无论软件工程活动还是管理
                    活动,过程都是稳定的和可重复的。在所建立的产品线内,成本、进度和功能性均受控制、
                    对软件质量也进行跟踪。这种过程能力建立在整个组织范围内对已定义过程中的活动、角色
                    和职责的共同理解之上。


                    10楼2009-10-11 16:18
                    回复
                      2.1.4 等级4——已管理级
                      已管理级上,组织对软件产品和过程都设置定量的质量目标。作为组织测量大纲的一部
                      分,对所有的项目都测量其重要的软件过程活动的生产率和质量。利用一个全组织的软件过
                      程数据库收集和分析从项目定义软件过程中得到的数据。等级4 上的软件过程均已配备有妥
                      善定义的和一致的度量。这些度量为定量地评价项目的软件过程和产品打下基础。
                      项目通过将其过程性能的变化限制在定量的可接受的范围之内,实现对其产品和过程的
                      控制。可以将过程性能方面有意义的变化与随机变化(噪声)区别开来,特别在所建立的产
                      品线内。开发新应用领域的软件所带来的风险是已知的,并得到精心的管理。
                      等级4 组织的软件过程能力可概括为可预测的,因为过程是已测量的并在可测的范围内
                      运行。该等级的过程能力使得组织能在定量限制的范围内预测过程和产品质量方面的趋势。
                      当超过限制范围时,采取措施予以纠正。软件产品具有可预测的高质量。


                      11楼2009-10-11 16:22
                      回复
                        2.1.5 等级5——优化组
                        在优化级,整个组织集中精力进行不断的过程改进。为了预防缺陷出现,组织有办法识
                        别出弱点并预先针对性地加强过程。在对新技术和所建议的组织软件过程的更改进行费效分
                        析时利用有关软件过程有效性的数据。识别出采用最好软件工程实践的技术创新并推广到整
                        个组织。
                        等级5 组织的软件项目群组分析缺陷以确定其发生的原因。为了防止已知类型的缺陷再
                        次出现他们认真评价软件过程,同时将经验教训告知其它项目。
                        等级5 组织的软件过程能力可特征化为不断改进,因为这些组织为扩大其过程能力的范
                        围进行着不懈的努力,因而不断改善其项目的过程性能。既通过在现有过程中增量式前进的
                        办法,也通过采用新技术、新方法的革新办法,使改进不断出现。


                        12楼2009-10-11 16:23
                        回复
                          2.2.2 理解可重复级和已定义组
                          随着项目规模和复杂性的增长,注意力逐渐从技术问题转向组织体系和管理问题——过
                          程成熟度的焦点问题[Siegel 90,DoD 87,GAO-92-48]。通过将最优秀职员所取得的经
                          验教训纳入已文档化的过程、通过培育有效地执行那些过程所必须的技能(通常以培训的方
                          式)、以及通过以向完成任务的人们学习的方式所得到的不断改进,过程能使人们工作得更
                          为有效。
                          为达到等级2,管理者必须集中注意力于他们自己的过程以便实现一个有纪律的软件过
                          程。等级2 是等级3 的基础,因为在处理等级3 上的技术和组织体系问题之前,关注焦点必
                          须放在管理者改进其过程的行为上。在实现等级2 的过程中,通过将项目管理过程编制成文
                          档并遵照执行,管理者建立起领导地位。
                          在等级2 组织中不同项目的过程可以不同;为了达到等级2,组织体系上的要求是存在
                          指导项目建立合适的管理过程的方针。巴文档化的规程为这些一致的过程打下基础,在培训
                          和软件质量保证工作的帮助下,能在全组织范围内使这些过程规范化。
                          通过对整个软件过程加以定义、集成和文档化,等级3 建立在项目管理的基础之上。在
                          此情况下,集成意味着一个作业的输出顺利地成为下一个作业的输入。当作业间存在不匹配
                          现象时,在软件过程的规划阶段它们就能得到识别和处理,而不是等到实施过程中遇到它们
                          时才加以解决。等级3 上的一个挑战是构造这样一些过程,这些过程允许软件人员开展工作
                          时仍有一定的自由度(Humphrey 91b)。


                          13楼2009-10-11 16:38
                          回复
                            2.2.3 理群已管理级和优化组
                            成熟度等级4 和等级5 对软件产业界来说还是一个相对未知的领域。仅存在不多几个等
                            级4 和等级5 的软件项目和组织〔Humphrey gla Kitson 92〕。由于现有的实例太少,以致不
                            能导出有关等级4 和等级5 组织特征的一般结论。通过与其它产业类比和利用软件产业界中
                            能显示这些等级过程能力的少数例子, 这些等级的特征已经得到定义。


                            14楼2009-10-11 16:40
                            回复
                              2025-08-23 03:41:39
                              广告
                              不感兴趣
                              开通SVIP免广告
                              图2.2 的例子说明统计过程的基本概念,等级4 和等级5 的许多特征建立在这些概念之
                              上。朱兰三部曲(Juran Trilogy)图〔Juran 88)显示过程管理的主要目标。
                              Juran 将质量管理分成三个基本的管理过程{Juran 88〕。质量策划的目的是向运作人员,
                              即软件生产者提供生产能满足顾客需求的产品的方法。操作人员生产出产品,但由于质量缺
                              陷不得不做某些退工。这种浪费是经常性的(因为过程被设计成那种样子);执行质量控制
                              是为了防止事情恶化。过程中的零星的尖锋,如图2.2 所示,代表消防活动。经常性的浪
                              费提供了改进的机会,抓住这个机会进行工作就叫做质量改进。
                              质量改进的第一个职责,也是等级4 的关注焦点是过程控制。对软件过程进行管理以致
                              它能稳定运行在质量控制带内。虽然必定还有一些经常性的浪费,测量结果中可能还有尖锋
                              信号需要控制,但是系统在整体上是稳定的。正是在这些地方,控制变化的特殊原因这个概
                              念开始起作用。因为过程既稳定又可测,所以当出现某些例外情况时,能够识别出并阐述变
                              化的“特殊原因”。
                              质量改进的第二个职责,也是等级5 的关注焦点,是过程的不断改进。为了提高质量,


                              15楼2009-10-11 16:40
                              回复