软件成熟度国军标GJB5000A.doc
《软件成熟度国军标GJB5000A.doc》由会员分享,可在线阅读,更多相关《软件成熟度国军标GJB5000A.doc(66页珍藏版)》请在三一文库上搜索。
1、wordG5000A-2008 军用软件研制能力成熟度模型概述谢新华中科院计算所培训中心2010 年 8 月64 / 66目录第一节G-5000A 能力成熟度根本概念31.1 软件过程的根本概念31.2 能力成熟度模型的根本概念5 军用软件研制能力成熟度模型框架71.4 理解成熟度等级101.5 共用目标和共用实践111.6 善于书写良好的文档13第二节过程域的根本框架162.1 过程域部件162.2 过程管理类过程域之间的关系182.3 项目管理类过程域之间的关系192.4 工程类过程域之间的关系212.5 支持类过程域之间的关系25第三节已管理级成熟度的过程域27 项目策划PP过程域273
2、2 项目监控PMC过程域33 测量与分析MA过程域39 配置管理CM过程域43 过程和产品质量保证PPQA过程域47 需求管理ReqM过程域52 供方协议管理SAM过程域55第四节 过程改良计划62结语63第一节G-5000A能力成熟度根本概念1.1 软件过程的根本概念一个大型软件项目要成功,很大程度上依赖于正确而且适宜的软件过程,首先的问题是什么 是软件过程呢?1,软件过程的定义与概念1过程的定义 系统从一个状态始态变成另一个状态终态,我们就说:发生了一个过程Process。过程是一种手段,通过该手段可以把人、方法与规程、技术与工具进展集成,以产生一种所期望 的结果。换句话说,过程就是人们
3、使用相应的方法、规程、技术、工具等将原始材料输入转化成 用户需要的产品输出。过程与产品存在因果关系。即好的过程才能得到好的产品,而差的过 程只会得到差的产品。2过程的特征 任何过程都应该具备8 个特征:任何一个过程都有输入和输出;输入是实施过程的根底、前提和条件;输出是完成过程的结果;输出可能是有形产品,也可能是无形产品,如软件或服务;过程本身是增值转换,不增值的过程没有意思;完成过程必须投入适当的资源和活动,是换取过程增值或结果有效的代价过程存在可测量点;所有的工作和活动都是通过过程来完成的。 假设干目的上相互关联的过程系统,我们称之为过程域,广义的软件过程包括管理过程和生产过程。主要的软件
4、过程域如下:工程类的主要过程域:需求开发、系统设计、软件实现、软件测试、软件维护等等;管理类的主要过程域:项目规划、项目监控、需求管理、质量管理、配置管理等等。 上述过程域中的任何活动都会影响产品的质量、生产率和本钱。3软件过程能力 软件过程能力描述通过遵循软件过程能够实现预期结果的程度。一个组织的软件过程能力提供一种预测该组织承当下一个软件项目时最可能的预期结果的方法。软件过程性能表示遵循软件 过程所得到的实际结果。所以,软件过程性能关注已得到的结果,而软件过程能力如此关注预期结 果。由于一个特定项目的属性和执行该项目的环境所限,该项目的实际性能可能并不充分反映组 织的整个过程能力,即项目的
5、能力受限于它的环境。2,为什么要加强管理与过程能力呢? 一个组织的成熟首先是从要强管理开始的。很多人尽管在口头上不得不承认,但内心里还是认为只要我有了好的技术,照样能把产品做出来,但这不一样。 过去一谈创新往往想到的就是技术创新,但仅仅有技术创新是不够的,我们还必须关注管理创新和应用创新,没有这个层面的创新思想,就没有方法把技术手段转化为真正有用的东西,更 没有方法创造影响人类社会进程的伟大产品。如果我们仅仅是做一个纸飞机,那我们就没有必要写下详细计划花 20 分钟写计划再花 20 秒把飞机折出来,无疑是个愚蠢行为,你可以快速的修改,即使返工也是经济和高效的。但是, 如果你是制造一家大型客机,
6、那么用纸飞机的方法来实现同样也是愚蠢的,如果没有详细的前期 设计,没有严密的管理,那整个飞机制造过程就是一个漫长、混乱和昂贵的过程。它将产生大量 应该防止的返工,甚至永远不可能完成,如如下图所示。为了加强管理与过程能力,现代软件工程学提供了一系列方法,包括: 1基于工程规X的大型软件系统开发 由于大型项目的组件未必是同一个机构生产的,所以需要建立一些系统工程原如此,来协调需要准确协同工作的组件的开发。2引入标准和过程规X 为了解决这个问题,美国国防部开发了一系列的指导文档,为软件开发提供符合系统工程的标准方法,这些规X和标准有如下特征:重视定义良好的工作产品、验证和确认:软件系统工程认为,从需
7、求到代码的过程中, 计划驱动的方法非常准确的依赖于明确的步骤,其中每个步骤中文档的完备性非常重 要,这种完备性可以保证每个步骤可验证,文档是可跟踪性的重要保证。产品规X与过程定义和改良具有同等的联系:软件作为一种产品,其可塑性使过程需 要经过屡次改良,正因为如此,过程需要进展定义、标准化并需要逐步改良以提供对项 目的有效控制。过程提供可预见性、可重复性和根底设施的支持来缓解人员流动问题:标准化所带来 的可比拟和可重复性,使组织中的人都知道在哪里找信息,以与如何评估日常工作。这 种过程的一致性可以使管理人员在项目之间调动人员而不必要重新培训,也意味着关键 人员的的流失不再是项目的厄运。3项目越复
8、杂,规X的意义就越重要 项目越复杂,规X的意义就愈重要。在一些非常大的项目中,很多人试图避开这个过程,结果大多数都失败了。大量实践明确,规X方法尽管在管理上的本钱提高了,但远远比不遵从这些 方法游击队似的疯狂开发更经济有效,因为它减少了意外和返工的工作量。更重要的是,它 可以保证每个人都知道自己该干什么事情,确保组织运转成为可能。严格的基线和工作产品的静 态测试,帮助人们提高了整体质量,并有助于人们尽早发现更多的缺陷。如果没有计划和规X,那一定是混乱和不一致的。尽管某些局部可能成功,但整体上可能永 远也不会完成,所带来的管理本钱可能更高。管理层所做的事情可能就是周而复始的协调、协调、 再协调,
9、这无疑是管理上的一场噩梦。正确的规X化并不会抑止人们的创造力,相反它使得团队可以大规模地复用前人积累的智慧 和财富。这种方法非常适合于现代的工业化生产。 业界实践已经证明,走规X化之路是“本钱 最低、见效最快、能持续开展的软件过程改良方法,1.2 能力成熟度模型的根本概念1,能力成熟度CMM的历史诱因软件工程管理引起广泛注意源于20世纪70年代中期,当时人们就发现软件项目的成功率很 低,一直到 20 世纪 90 年代中期,美国有$2,500 亿用于 IT 的 175,000 个软件项目,其中:31% 在完成前被取消,其费用为$810 亿53% 的费用是原估计费用的190%只有 10%的软件项目
10、能够在预定的费用和进度下交付。 美国国防部DoD发现,在失败的项目中,70%是因为管理不善而引起。这就是 DoD 建立 CMU/SEI卡内基梅隆大学软件工程研究所的诱因。CMM 模型在理论上基于 20 世纪 30 年代施瓦特Walter Shewart的统计质量控制原理, 已有60 多年历史。德明Edwards Deming和朱兰Joseph Juran在40 和50 年代开展了这些 原理并在实践中得到了证明,特别是在日本,获得了极大的成功。20 世纪 70 年代末期,菲利普.克罗斯比Philip Crosby把这些原理用于构造成熟度框架, 首次提出五个进化层次。20 世纪 80 年代中期,I
11、BM 在汉弗莱Watts S. Humphrey的指导下, 莱德斯Ron Radice等人把这个成熟度框架首次用于软件过程。1986 年,汉弗莱Humphrey 把这些成果带到 CMU/SEI,并由他主持研究软件过程成熟 度模型,对这些原理进展了进一步的完善,并于1987 年6 月公布了过程成熟度框架的第一份研 究报告。到1993 年颁布了第一个成熟的版本。CMM 模型正在向纵深开展,目前CMM 家族包括:软件能力成熟度模型(SW-CMM)软件获取能力成熟度模型(SA-CMM)人员能力成熟度模型(People-CMM)系统工程能力成熟度模型(SE-CM)集成产品开发能力成熟度模型(IPD-CM
12、M)个体软件过程(PSP)群组软件过程(TSP)等。最近正在试行和推广集成的能力成熟度模型(CMMI)。2,过程改良的收益1过程改良的好处从上个世纪80 年代到今天,软件工程界广泛推行CMM,获得了如下好处:减少软件开发费用。提高软件开发生产率。缩短软件开发周期。改良软件开发质量。能较好地控制费用和质量,有较好的可预测性。举例:根据波音公司 120 个项目的统计,当成熟度由第一级上升到第三级以后,各方面的指标都有 大幅度改善。SW- CMM 不同等级的可信度一般来说,根据大局部的统计数据,实施CMM 的结果:生产力约有10%到20%的提升。产品错误率降低一个数量级。对项目的预估与控制能力提升4
13、0%到50%。3,军用软件能力成熟度模型 正是由于军用软件的敏感性与严肃性,我军总装备部参考了国内外先进经验,根据我国军用软件研制的实际情况,在2003年发布了G5000-2003军用软件能力成熟度模型,取得 了显著的成果。根据几年来应用的经验,到 2008 年又发布了改良版G 5000A-2008,用以取代 G5000-2003。可以预想,新版“军用软件能力成熟度模型的推广实施,将对我军信息化建设发挥不可估 量的作用。在应用标准的时候,我们需要注意以下几个问题:1循序渐进的改良模式G 5000A-2008 是一个循序渐进的改良模式,一个组织的软件开发由最初的无纪律状态, 逐渐学习到成熟而有制
14、度的境界,是需要经过长期的努力的。国内有些机构以过级为目的,注重 短期效应,只在文档格式上下功夫,这是不可取的,这也是为什么很多企业级别虽然很高,但实 际表现却并没有那么好的根本原因。G 5000A-2008 要求所有软件开发组织的评估一律从二级开始,打好根底逐步提升,这是 非常有道理的。2规X的实施 企业制定软件过程规X是为了帮助人们把工作做得更好,而不是存心与人们过不去。企业一方面要用行政命令和奖罚措施来强制实施软件过程规X,另一方面又要设法使员工们乐于执行规 X从而防止流于形式。SEPG 不要只是埋头写规X,写完了上缴了事。最好在内部网上开辟一个专栏,专门解释规 X。要对全员进展培训与考
15、试,使机构中的每个人都熟悉与自己工作相关的规X。只有这样才能 防止有人拖后退,使团队发挥最大的力量。质量保证人员监视实施。人都有惰性,如果没有人来监视员工们按照规X办事,那么自觉性 不强的员工就会回到“无序的老路上。质量保证人员的职责就是周期性地检查项目成员的“工 作过程以与工作成果是否符合既定的规X,来监控和改良“过程质量以与产品质量。SEPG 要与时收集员工们反映的问题和建议,不断地完善规X,但是不能频繁地变更规X的 版本,应当有计划地控制规X的版本。1.3 军用软件研制能力成熟度模型框架1,能力成熟度的表示方法在 G 5000A-2008 中,把成熟度定义为五个等级,包含了 22 个过程
16、域。等级用来描述组 织的进化路径。标准允许组织通过增量处理相继的过程域集合,来改良一组相关的过程。这种改 进路径用“成熟度等级表示。它的特点如下。1军用软件研制能力成熟度模型结构根据实践证明正确的过程组合和排序,提供一个预定义的路线图:将过程域组织成2、3、4和5四个成熟度等级每个成熟度等级包括假设干必须的过程域。每个过程域包括假设干个专用目标,每个专用目标包含假设干个推荐的专用实践活动, 以达到所期望的目的。对于任何一个过程域,所有相关的共用目标和共用实践,是实现该过程域的不可分割的 整体。注意,G 5000A-2008 中,有两个共同目标,以与相应的共同实践,这些实践保证了过程 域制度化所
17、需要的根本建设与活动。成熟等级、过程域、目标以与实践的相互关系如如下图所示。2成熟度的阶梯式表示法 成熟度等级是一个己定义的、组织过程改良的进化台阶。每个成熟度等级表示组织过程的一个重要局部己经成熟,并为它进入下一个成熟度等级做好准备。根据是否达到与每组己预先定义 过程域相关的专用目标和共用目标来判定是否满足相应的成熟度等级。每个等级构成了过程改良 根底的一个层次,是实现下一个成熟度等级的根底。不同等级所包含的过程域如如下图所示,这就是成熟度的阶梯式表示法。2成熟度的连续式表示法: 软件开发一般包括过程管理、项目管理、工程和支持四个职能局部,可以把这些过程分布到这四个局部中去,这就是成熟度的连
18、续式表示方法,如如下图所示。在一个局部中,某些实践可能处于较低的能力等级,某些实践可能处于较高的能力等级,这 就为组织选择那些需要强调实现的过程提供最大的柔性。G 5000A-2008 标准提供了一个从成熟度等级 l 到成熟度等级 5 的预先定义的改良路径, 例如,在成熟度等级 2 ,有一组过程域,组织在能够达到这些过程域的所有目标之前,可以应用这些过程域来指导其过程改良。一旦组织通过这种方法达到了成熟度等级 2 ,该组织应将其工作重点放在成熟度等级 3 的过程域上,以此类推。 在评估过程中,等级还可以用来判定活动的结果。评估既可适用于整个通常是小组织,也可适用于组织内较小的组例如,项目组或组
19、织中的某个部门。 等级也描述了改良的特征,这种改良从一个不良定义的状态改良到另一个状态,等级使用定量信息来确定和管理所需的改良,以满足组织的业务目标。 要达到某个特定的等级,组织必须满足预定改良的过程域或者过程域的所有目标。这个标准还提供了为满足业务目标而实施过程改良的方法。注意,G 5000A-2008 标准关注的是组织的整体成熟度,某个单一过程是已经实施了还是不完备,这一点并不是主要的关注点。标准把“初始级作为成熟度模型的起点。成熟度等级可 用于基准比照、供方选择、合同项目监视、评估和评价活动。1.4 理解成熟度等级1,初始级, 过程通常都是随意、无序的。组织通常不提供支持过程的稳定环境。
20、在这些组织中,成功依赖于其中人员的能力和勤奋,而不依赖于使用已经证实的过程。尽管是这种随意、无序的环境, 组织常常仍能生产可用的产品,提供可承受的服务;不过,他们经常超出其项目的预算和进度。成熟度等级 1 的组织的主要特征是过分承诺,在遇到困难时会放弃过程,并且不能重复他 们以往的成功。2,已管理级 组织的项目已确保其过程按照方针进展策划并得到执行。这些项目聘用有专业技能的人员,这些人员拥有足够的资源,以便产生受到控制的工作产品;这些项目吸纳利益相关方;这些项目 都受到监视、控制和评审;这些项目都受到评价,以保证符合其过程说明。成熟度等级 2 反映的过程纪律有助于确保在有压力的情况下保持现有的
21、实践。在这些实践 都到位的情况下,项目都能按照其文档化的计划进展实施和管理。在成熟度等级 2 ,工作产品的状态和服务的交付在己定义的时间点例如,在主要里程碑 和主要任务完成时对管理者是可见的。在利益相关方之间建立承诺并在需要时进展修订。工作 产品受到适当的控制。工作产品和服务满足其已定义过程的说明、标准和规程。3,已定义级 过程己经得到了很好的定义和理解,并用标准、规程、工具和方法进展了描述。作为成熟度等级 3 的根底,组织的标准过程集己经建立,并随着时间的推移而不断改良。这些标准过程用 于建立整个组织的一致性。项目按照剪裁指南剪裁组织的标准过程集,以建立项目的己定义过程。成熟度等级 2 和成
22、熟度等级 3 的关键区别是标准、过程说明和规程的适用X围。在成熟度 等级 2 , 这些标准、过程说明和规程在过程的各个特定实例例如,某个具体项目之间可以有 很大差异。在成熟度等级 3 ,一个项目的标准、过程说明和规程都是为了适合具体项目或组织的情况 而从组织的标准过程集甲剪裁出来的,因此,除了剪裁指南所允许的差异之外,这些标准、过程 说明和规程都是一致的。另一个关键区别是:在成熟度等级 3 ,过程一般描述得比成熟度等级 2 更加严格。一个己 定义过程明确地阐述了其目的、输入、入口准如此、活动、角色、测量、验证步骤、输出和出口准 如此。在成熟度等级 3 ,通过对过程活动的相互关系、过程的详细测量
23、值、过程的工作产品和服 务的理解,使过程都得到更加积极主动的管理。在成熟度等级 3 ,组织应使其成熟度等级 2 的过程域得到进一步的成熟。为了达到成熟度等级 3 ,应使用在成熟度等级 2 中没有阐述的、与共用目标 3 有关的共用实践。4,已定量管理级 组织和项目为质量和过程绩效建立了定量目标,并将其用作管理过程的准如此。这些定量目标是根据顾客、最终用户、组织和过程实现者的需要建立的。 质量和过程绩效都按统计术语进展理解并在该过程生存周期间受到管理,对于所选择的子过程,收集并统计分析该过程绩效的详细测量值。将质量和过程绩效测量值纳入组织的测量库以支 持基于事实的决策。标识过程变异的特殊原因,并在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 成熟度 国军 GJB5000A
