




已阅读5页,还剩73页未读, 继续免费阅读
(计算机软件与理论专业论文)基于cmm的过程定义方法及支撑环境的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于c m m 的过程定义方法及支撑环境的研究 摘要 目前软件开发已经进入到以过程为中心的时代,作为软件过程技术研究的 一个重要方面,软件过程定义有着其特定的意义。因此,本文提出以c m m 模 型为基本框架,以s p u m l 定义方法来进行软件过程的定义。 首先,本文综合考察了软件过程理论中的各种概念、研究状况、以及发展 近况,介绍软件过程的思想,以及c m m 的作用。指出目前的过程定义方法面 临的问题。 其次,面向c m m ,以u m l 为基础,并对u m l 进行了扩展,使之能够更 好的适应软件过程定义的需要,提出了s p u m l 作为软件过程定义的新方法。在 给出了s p u m l 的语义模型以及相应的表示法后。通过实例说明如何使用 s p u m l 定义符合c m m 规范的软件过程。 最后,给出了支持以上理论模型的原型系统p r o c e s sa s s i s t a n t 。整个系统包 括c m ms c h e m e 库、过程定义、过程发布、过程监控这四大部分,有效的结台 本文提出的s p u m l 过程定义方法,解决了软件开发组织中的过程定义和过程 跟踪中遇到的问题。 关键词:软件过程c m m 过程定义s p u m l 原型系统 r e s e a r c ho nc m mb a s e dp r o c e s sd e f i n i t i o na n d i t ss u p p o r t i n g e n v i r o n m e n t a b s t r a e t a tp r e s e n t ,s o f t w a r ep r o c e s sh a sb e c o m et h ef o c u so fs o f t w a r ed e v e l o p m e n t a sa n i m p o r t a n ta s p e c t o ft h er e s e a r c ho ns o f t w a r e p r o c e s st e c h n o l o g y ,t h e d e f i n i t i o no fs o f t w a r ep r o c e s sh a si t sp a r t i c u l a rs i g n i f i c a n c e t h e r e f o r e ,t od e f i n e t h es o f t w a r ep r o c e s s ,t h i st h e s i sp u t sf o r w a r das p u m ld e f i n i t i o nw h i c h u s e sc m m a si t sb a s i cf r a m e f i r s t l y ,t h et h e s i sr e v i e w ss e v e r a la s p e c t si n t h es o f t w a r ep r o c e s st h e o r ys u c h : a si t sv a r i o u sc o n c e p t s ,r e s e a r c hs i t u a t i o n s ,r e c e n td e v e l o p m e n t ,i d e a so fs o f t w a r e p r o c e s sa n d t h ef u n c t i o no fc m ma n ds oo n s e c o n d l y t h et h e s i sp u t sf o r w a r dan e wm e t h o dn a m e ds p u m l t od e f i n e s o f t w a r ep r o c e s sw h i c hi sb a s e do nc m m u m la n dp r o p e r l ye x p a n d su m lt o m e e tt h en e e d so ft h ed e f i n i t i o no fs o f t w a r ep r o c e s s m o r e o v e r ,a f t e rg i v i n gt h e s e m a n t i cm o d e la n d c o r r e s p o n d i n gr e p r e s e n t a t i o n o fs p u m l ,t h ep a p e rg i v e s s p e c i f i ce x a m p l e st od e m o n s t r a t e h o wt od e f i n i t es o f t w a r ep r o c e s si na c c o r d a n c et o c m m u s i n gs p u m l a tl a s t ,t h et h e s i sp r e s e n t st h ep r o t o t y p es y s t e m ”p r o c e s sa s s i s t a n t ”s u p p o r t i n g t h et h e o r ym o d e lf o r m e r l ym e n t i o n e d t h ew h o l es y s t e mc o n s i s t so ff o u rp a r t s : c m m s c h e m a ,p r o c e s sd e f i n i t i o n ,p r o c e s sa n n o u n c e m e n t ,p r o c e s sm o n i t o r i n g w h a t s m o r e ,b yi n t e g r a t i n gs p u m l ,t h es y s t e me f f i c i e n t l ys o l v e sp r o b l e m si n p r o c e s sd e f i n i t i o na n dp r o c e s st r a c i n g k e y w o r d s : s o f t w a r e p r o c e s s :c m m ,p r o c e s sd e f i n i t i o n ,s p u m l ,p r o t o t y p e s y s t e m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得佥壁王些盔堂 或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究 所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:签字日期:年月 日 学位论文版权使用授权书 本学位论文作者完全了解盒壁王些太堂有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅 和借阅。本人授权金墅王些盘堂可以将学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:王珏 签字日期;7 - 0 0 3 年1 月f 牛日 学位论文作者毕业后去向: 工作单位: 通讯地址: + 导师繇孝滓哆 , 签字日期。罗矽月伊 电话: 邮编: 致谢 衷心感谢我的导师袁兆山教授在整个论文阶段给我的悉心的指导和帮助, 本论文工作从选题、研究到写作,自始至终得到了袁老师的指导、关心、信任 和支持,没有导师的指导和培养,本论文是不可能完成的。在整个硕士研究生 的学习生活中,袁老师渊博的知识、广阔的视野、敏锐的思维、研究的治学态 度,每时每刻都感染和激励着我们许许多多的学生,使我终生难忘。 在我的论文工作中,我还得到了李心科博士的悉心指导,以及合肥工业大 学计算机学院众多师生的帮助。在此感谢他们对我的帮助和支持。 另外还必须感谢我的父母和兄长,感谢他们多年来对我的理解、支持、关 心和深深的爱。没有他们的支持,我就不能顺利地完成我的研究。 作者:王珏 2 0 0 3 年7 月 1 1 软件行业新的变革 第1 章绪论 为了满足在软件需求和软件复杂性方面日益增加的要求,二十世纪七十年 代逐渐发展起来了结构化开发方法。这是软件行业的第一次变革。为了满足那 些利用共享系统去建立复杂的交互式商业应用以及对这些系统进行维护,结构 化开发方法得到了不断的发展。结构化方法所关注的是方法本身,即需求定义 的正规化以及设计、创建那些可以在最终系统中加以追踪的需求的方法。已有 的自动化工具可以在某种程度上有助于进行部分此类转换。尽管这是将软件开 发从“手工作坊”向大规模生产进行转换的开始,但还很不够。而那些导致软 件开发成功或者失败的真正原因( 例如项目管理以及需求管理) 还未成为关注 的焦点。当前提出的软件过程改进则是软件行业的又一次变革。软件过程改进 是对不断提高的软件项目失败率的一种反应。对过程的关注开始于美国国防部 最初对软件工程研究所( s e i ) 的赞助,s e i 为美国国防部提出了评估软件承包 商能力的方法。从那时开始,s e i 所产生的关于过程的信息就越来越多地影响 到了全球软件业。 人们很容易地将软件过程联系到开始于2 0 世纪3 0 年代,盛行于2 0 世纪 7 0 、8 0 以及9 0 年代的质量控制运动。质量控制概念的领袖e d w a r d sd e m i n g 和 p h i l i pc m s b y 在全世界的制造业享有很高的声望。w a t t sh u m p h r e y 在软件开发 中引入了同样的质量控制概念。软件成熟度运动为软件产业的“行业化”铺平 了道路。软件行业化使软件开发变得如同装配与制造过程一样。软件行业化的 技术因素包括面向对象技术以及重用组件库,这使得利用标准重用组件来装配 软件成为可能。软件行业化启动的关键因素是规范化的软件工程过程,在这个 过程中。质量进度都是可以预测的 z a h r 9 8 1 。 1 2 软件开发过程 一般来讲,过程是指为了实现某一目标而采取的一系列步骤。也可以这么 理解过程:过程就是谁( w h o ) ,在什么时间( w h e n ) ,要做什么( w h a t ) 并且 如何达到目标。 一个软件过程是指人们开发和维护软件及其相关产品所采取的系列活 动其中软件相关产品包括项目计划、设计文档、源代码、测试用例和用户手 册等。软件产品的质量主要取决于产品开发和维护的软件过程的质量。一个有 效的、可视的软件过程能够将入力资源、物理设备和实旌方法结合成一个有机 的整体,并为软件工程师和高级管理者提供实际项目的状态和性能,从而可以 监督和控制软件过程的进行。 一个广泛适用的软件过程必须能够随着时间的推移不断的进化。在进化过 程中,它能够及时的调整自己以适应技术、工具、人员以及组织模式的变化。 技术:过程必须建立在当时可以使用的并且实用的技术基础上( 如编 程语言、操作系统、计算机系统、网络能力、开发环境等) 。 工具:过程和工具必须同时发展。工具是过程的一部分。换个角度来 讲,一个广泛应用的技术能够对其过程的发展起到促进作用。 人员:过程建造者必须将运作过程所需的技能做一定的限制,使得这 些技能是现有开发人员已经具备的或者是通过培训能迅速掌握的。 组织模式:过程的建立者要让过程适合当前的实际状况一一例如:是 否是虚拟的组织形态;是否通过i n t e m e t 远距离工作;公司中业主、员 工和转包商的关系:软件开发人员是否短缺。 过程开发工程师在设计过程时需要权衡这四种因素,不但在开始时权衡这 些因素,而且设计过程中要一直进行权衡。过程开发人员必须能够设计复用的 过程,就像软件开发人员设计开发的软件不仅仅要求在目前可用,而且还能今 后的项目中还能够复用它。一个过程要经历数年的时间才能达到稳定和成熟的 水平,能够经得起商业产品开发得严格考验,并将其使用风险保持在合理得水 平。在没有充分权衡技术、工具、人员和组织得情况下使用某种过程是有相当 大风险的 i v a r 9 9 1 。 过程事实上有三个方面的特性,缺一不可。 首先,过程应当被定义。因此过程的第一个方面就是过程的定义,通常是 将过程包含的活动进行文档化。 第二,过程应当被学习。通过培训每一个过程的执行者,让过程的知识深 入到他们的头脑中,并以此驱动他们的行为和活动。 一1 最后,过程应当被遵守。通过执行过程中的活动才能够获得最终的、预期 的过程结果c z a h r 9 8 。 过程的这三个方面都十分重要。若过程仅仅是定义在纸上,而不为人所了 解,那么这个过程只能是“孤芳自赏”。如果大家都接受了过程知识的培训, 但却没有在实践中遵循,那么培训只能是浪费时间。 本文的研究重点就是提供一种过程定义方法,使得过程易于定义,易于培 训,易于贯彻执行。 z 1 3 软件过程定义的意义 过程定义是达到c m m 3 级和i s 0 9 0 0 0 认证的一个关键步骤。软件过程定 义是实现高能力成熟度等级的基础。c m m 中软件过程定义的基础概念是机构 的标准软件过程。机构的标准软件过程是操作性定义,它定义了机构中不同软 件项目之间建立共同软件过程的基本过程。它描述每个软件项目的基础性软件 过程元素,这些元素要求在软件过程中定义。它还描述了这些软件过程元素之 间的关系( 如顺序和接口) ,建立机构中进行软件工作的一致方式,对长期稳定 性和过程持续改进至关重要 p a u | 9 5 1 。 在机构层,机构的标准软件过程要以正式的方式描述、管理、控制和改进。 在项目层,重点是定义可用的项目软件过程及其过程对项目的价值。针对项目 的软件过程定义是特征明确和广为人知的软件过程,用软件标准、过程、工具 和方法描述。它定制机构的标准软件过程,满足项目的特定特征。 s e i 关于过程定义的基本概念是按照产品开发和维护相似的方式进行过程 开发和维护。要求包括,定义要描述的过程、结构和设计、项目或机构中过程 设计的实现、通过测量指标验证过程描述和把过程部署到相应项目或机构中的 各种操作 r a y n 9 9 1 。 1 4 本论文课题来源 本论文受到省自然科学基金( 编号0 1 0 4 2 2 0 7 ) 和国家软件新技术重点实验 室基金( 编号a 2 0 0 1 0 4 ) 资助。 1 5 本文的研究内容 随着对于c m m 的研究的不断深入,越发显得过程定义方法具有它独特的 重要性。 因为目前的软件过程定义方法有很多地方不能让适应当前形式的需要: 1 没有一种过程定义方法获得广泛的接受和使用。这不仅仅是过程定义 方法本身的问题,因为过程定义方法的使用依赖于组织、方法学和技 术支持。 2 以前的过程定义方法很明显的缺点。它们通常是基于已经存在的语言 范型- 因此不能很好的适应软件过程领域的描述。 3 软件过程定义方法中什么能做、什么应该做受到软件过程中其他领域 的研究的不断影响。 过程定义方法的重点在于:语义的丰富,易用性,恰当的抽象,过程合并, 可视化,和对于多种范型的支持。丰富的语义和易用性之间的平衡是过程语言 研究的重点 j a z a 9 7 1 。 软件过程定义是一个多角度的领域,为了支持它的定义,必须提供许多相 关的语义。迫于这种压力,第一代过程定义语言大量的扩展了传统的编程语言, 包括函数语言,基于规则的语言,命令( i m p e r a t i v e ) 语言,基于p e t r i 网。但 这些过程语言忽略了j 些重要的语义( 如:资源模型) 。过程语言语义不但要求 内涵丰富而且要求定义严格。要求提供足够的语义覆盖过程,能够把合理的过 程用合适的模型表示出来。 又因为负责定义软件过程的人和组织通常没有丰富的编程经验。语义的丰 富意味着用户需要大量的软件工程开发经验。如此就妨碍了过程语言的推广。 过程语言研究的一个重要问题就是平衡技术上的严格定义和易用性的矛盾。 对软件过程清晰和精确的表述需要适当种类和层次的抽象。如果过程语言 是基于通用的编程语言,用户在低级别的抽象过程中的开发和维护一个过程程 序是相当复杂的过程。而可视化的过程表达能够很好的对过程进行理解和沟通。 简单的视觉表示能够极大的帮助设计过程和证明。 针对上述的问题,本论文选择了扩展u m l 作为过程定义的基础,形成 s p u m l ( s o t t w a r ep r o c e s su m l ) ,作为过程定义的一种新的方法。 在设计s p u m l 是下列条件是必须考虑的: 理解性:专业人员明确要求“结构良好”的过程模型是“易于理解并易于 应用的”,s p u m l 必须满足这个条件。 灵活性:很多开发人员觉得他们的创造性被过于严格的开发过程所限制了, 实际上,有些人会说,这正是目的。不管怎样,实施一个过程是非常困难的管 理任务,并且存在着传统( 大型) 过程不适用的情况,这样就出现了近来很多 人感兴趣的轻量级过程,例如“极限编程( e x t r e m ep r o g r a m m i n g ) ”【b e c k 0 2 。 s p u m l 必须具有相当的灵活性,使之能够定义各种软件过程 精确性:用s p u m l 开发的过程必须足够的形式化j 以允许自动执行和形 式化分析,至少能选择一部分如此。理想一点来说,这将可以和灵活性相结合, 使过程达到一种受控的、分级形式化程度。 1 6 论文组织 本文共分为六章。 第一章,介绍本文的研究背景和研究内容。 第二章,从软件过程的技术背景知识出发,介绍软件过程技术的基本概念, 详细论述软件过程定义是软件过程技术的思想。 第三章,本章对c m m 的关键过程域进行了详细的分解和分类,为s p u m l 4 软件过程的方法的实旖奠定了基础。 第四章,为了有效的扩展u m l 语言的语义以及表示法,对统一建模语言 u m l 进行了研究。 第五章,提出s p u m l 定义软件过程的方法,并给出实例,说明如何使 用s p u m l 分解c m m 关键过程域,并给出相关过程定义。 第六章,给出一个软件过程定义支持系统原型:p r o c e s s a s s i s t a n t 过程定义 支持系统。 第七章,结束语。 第2 章软件工程过程技术 由于软件组织在软件的开发过程中不断遇到一些难以克服的但有具有一定 相似性的问题。因此也促使了软件过程的研究不断深入。在此,本文从软件工 程过程的一系列概念开始展开讨论。 2 1 以过程为中心的软件开发 目前许多组织具有以产品为中心的文化氛围。在此文化下,人们很自然地 倾向于产生出更多的具体结果。希望每一个活动都能产生出一些“实实在在” 的东西,并且错误的将文档化的工作程序理解为过程。在这样的组织里,人们 认为每一个活动都应该产生短期效果。管理者认为一些与过程相关的工作是低 优先级的活动,它们常常等到有空闲的时候才来处理这些无关紧要的工作。 与此相反,在以过程为中心的组织里。过程被看作整个商业环境中的一个 重要问题或事件,它们会对最终的结果、组织、生产者以及三者之间的关系造 成重要影响。对于这些组织而言,那些“实实在在”的东西只是全局中的一部 分,过程文档只是帮助执行过程的一个工具,而不是最终的目标。事实上,最 终的目标是接受并遵循过程,过程本身被看作商业运作的规范。 为了认识到以过程为中心的好处,我们先看一个例子:现在有一组人正在 为了一个共同的目标而努力工作,如果他们不遵守同一个过程的话,那么大家 就会各自为政,以自己的工作方式去完成任务。假设这个团队正在从事一个软 件开发项目,那么就可能导致不同的入采用不同的开发语言,使用不同的命名 规则,当一个人对系统进行改动时也不考虑其他入的情况因而最终只能得到 一个混乱的结果这就是没有过程的组织中经常发生的情况 h u m p 8 9 】。但如果一 个团队中的每一个人都能够遵循共同的过程。情况就会大不相同。如果组织中 的每一个成员都能遵循以过程为中心的思想去从事各自的工作,那么会得到下 列好处; 协调组织的活动,为达到共同的目标而努力。 通过衡量每个人对整个过程所做的工作,为每个人的贡献提供可度量 的基准。 增强过程结果的一致性和可重复性,增强组织活动的一致性和可重复 性。 一个有效的过程可以通过下列方式提高整个企业的运作效率: 采用以过程为中心的方式可以帮助我们找到能够获得最大投资回报率 的部分。 6 采用以过程为中心的方式可以提高整个企业的运作效率,并且可以保 证项目经理在预算的费用内按时完成合格的项目。 采用以过程为中心的方式有助予内部沟通,有助于提高劳动生产率。 在组织内部如果采用一个通用的过程,就意味着所有的人使用相同的 方法和术语。 从管理的角度来看,采用以过程为中心的方式可以增强对过程的执行 以及提高执行结果的可视性。 在采用以过程为中心的开发过程时,项目经理可以通过管理过程以及监控 过程的执行来管理整个软件项目和开发团队。如果在项目管理中采用以过程为 中心的方法,则可以获得更好的管理效果,因为以过程为中心会让我们更易于 取得项目的最终成功,并可以提高团队的工作效率。否则,则会出现“救火综 合症”。“救火”这一种活动可以被高层管理者看到,并且可以被量化,所以 一个人因此而得到提升。但如果一开始就把事情做得很好( 虽然这可以满足各 种要求,也是正确的做法) 却不会引起管理者的注意。而把事情先搞乱,然后 再去收拾,反而能使你成为英雄【d e m i 8 2 】。 通过对一个没有过程规划的开发环境的仔细观察,不难发现其中不乏薄弱 环节和混乱局面。而一个混乱的开发过程,就是一个不成熟的组织所具有的文 化氛圉。在很多企业中,“救火”文化都大行其道。很多时候。中层管理者的日 常工作就是“救火”。如果没有危机,那么他们将无事可做。这有点像先无意识 的“放火”为了能够日后有机会从事“救火”这一重要活动。下表给出了采用 以过程为中心的管理和不采用以过程为中心的管理的不同。 比较的方面没有以过程为中心以过程为中心 过程规范过程是根据成员以及具体的过程已经被制订好并为所有 管理情况临时决定的。成员所遵从,此外在管理中 也遵循已制定的过程。过程 已经成为标准。 组织没有根据过程的规则分配功为了配合过程,已定义了有 能和角色。关的功能和角色。 管理成员的工作以工作时间长度根据过程的执行情况以及最 加以度量( 不考虑成员的工终的结果来衡量成员的工 作效率) 。作。 管理者通常将精力集中于突衡量手段经过定义并取得一 然出现的危机( “救火”) 。致意见。 管理者将精力集中于过程以 及产品的质量。 技能与培训培训处于混乱状态,并且培培训是有计划的,并且它的 训计划的制订受个人喜好制订是为了更好的支持过 的影响。程。 工具与技术对工具与技术的需求是混乱选择相应的工具与技术是为 的,没有一个清晰的整体规了更好的支持整个过程的实 划。施,而且可以提高过程的自 动化程度。 表2 - 1 以过程为中心的管理和不采用以过程为中心的管理的区别 2 2 软件过程能力与性能 软件过程能力是软件过程本身具有的按预定计划生产产品的固有能力。一 个组织的软件过程能力为组织提供了预测软件项目开发的数据基础。软件过程 性能是软件过程执行的实际结果。一个项目的软件过程性能决定于内部予过程 的执行状态,只有每个子过程的性能得到改善,相应的成本、进度、功能和质 量等性能目标才能得到控制。由于特定项目的属性和环境限制,项目的实际性 能并不能充分反映组织的软件过程能力,但成熟的软件过程可弱化和预见不可 控制的过程因素( 如客户需求变化或技术变革等) 。 2 3 软件过程成熟度 软件过程成熟度是指一个软件过程被定义、管理、度量和控制的有效程度。 成熟意味着软件过程是否具有持续改善的能力,成熟度代表软件过程改善的潜 力。过程的改善不能跳跃式进行。成熟度等级用来描述某一成熟度等级上的组 织特征,每一等级都为下一等级奠定基础,过程的潜力只有在一定的基础之上 才能够被充分发挥。例如:一般看来,规划一个工程过程要比规划管理过程更 加重要,但实际上如果没有管理的规定,工程过程很容易成为进度和成本的牺 牲品。另外,成熟级别的改善需要强有力的管理支持。成熟级别的改善包括管 理者和软件从业者基本工作方式的改变,组织成员依据建立的软件过程标准执 行并监控软件过程,一旦来自组织和管理上的障碍被清除后,有关技术和过程 的改善进程能迅速推进。 2 4 软件能力成熟度模型 c m m ( c a p a b i l i t ym a t u r i t ym o d e l ,能力成熟度模型) 是由美国卡内基一梅 隆大学软件工程研究所推出的评估软件能力与成熟度的一套标准。该标准基于 众多软件专家的实践经验,侧重于软件开发过程的管理及工程能力的提高与评 估,是国际上漉行的软件生产过程标准和软件企业成熟度等级认证标准。 目前,c m m 认 正- 已经成为世界公认的软件产品进入国际市场的通行证。 国务院发布的鼓励软件产业发展的1 8 号文件中也特别指出了对企业进行c m m 认证的支持。为推动我国软件产业的发展,促进软件企业向正规化和国际化迈 进,进一步引入和推广c m m 认证。阐述c m m 认证的实旌方法和策略。 早在2 0 世纪6 0 年代中期,人们就发现软件的生产出现了“问题”,主要表 现在生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程 的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇 到的问题。但是直至8 0 年代还是没有提出一套管理软件开发的通用原则,软件 管理不善的问题依旧在大范围内存在。 为了保证软件产品的质量,8 0 年代中期,美国联邦政府提出对软件承包商 的软件开发能力进行评估的要求。在m i t r e 公司的帮助下,1 9 8 7 年9 月,美国 卡内基梅隆大学软件工程研究所( c m u s e i ) 发布了软件过程成熟度框架,并 提供了软件过程评估和软件能力评价两种评估方法和软件成熟度提问单。4 年 之后,s e i 将软件过程成熟度框架进化为软件能力成熟度模型( c a p a b i l i t y m a t u r i t ym o d e l f o rs o t t w a r e ,简称s w - c m m ) 。1 9 9 1 年8 月,s e i 发布了最早 的s w - c m mv 1 0 。经过两年的试用,1 9 9 3 年s e i 正式发布了s w - c m mv 1 1 , 这是目前使用最为广泛的版本。软件能力成熟度模型基于众多软件专家的实践 经验,是组织进行软件过程改善和软件过程评估的一个有效的指导框架。 s w - c m m 不仅是一个模型,一个工具,它更代表了一种管理哲学在软件工 业中的应用。s w - c m m 的管理思想来源于已有6 0 多年历史的产品质量管理。 19 3 0 年w a l t e rs h e w a r d 率先提出了一整套基于统计学原理的质量控制方法, 这些方法后来经过w e w a r d s d e m i n g 和j o s e p hj u r a n 的发展和实践得到了广泛 的应用。p h i l i pc r o s b y 在质量是免费的一书中率先提出将质量管理形成成 熟度框架的概念,“质量管理成熟度坐标图表”描述了进行质管实践的5 个阶 段,表达了质量管理的全部运作。 d e m i n g 、j u r a n 以及c r o s b y 等人的做法后来被称为全面质量管理( t q m ) 理论。在i b m 公司,w a t t sh u m p h r e y 和r o nr a d i e e 将这种全面质量管理的思 想应用于软件工程过程,收到了很大的成效。s e i 的软件能力成熟度框架就是 在以h u m p h r e y 为主的软件专家实践经验的基础上发展而来的。软件能力成熟 9 度框架中融合了全面质量管理的思想,以5 个不断进化的层次反映了软件过程 定量控制中项目管理和项目工程的基本原则。s w - c m m 所依据的想法是只要不 断地对软件企业的软件工程过程的基础结构和实践进行管理和改进,就可以克 服软件生产中的困难,增强开发制造能力,从而能按时地、不超预算地制造出 高质量的软件。 2 5c m m 现状与发展趋势 最近的s e i 评估报告显示,从1 9 9 6 年到2 0 0 0 年,全球有1 0 1 2 个组织进行 了c m m 评估,其中6 4 8 为商业组织,2 6 7 为美国官方和军方合同商,主要 业务为软件开发和维护的组织有9 2 2 个,有将近一半的组织规模是在1 0 0 人以 下。这些数据表明,c m m 认证已经引起软件企业的高度关注,并且这种认证 同样适合中小企业。 目前,c m m 已经发展到c m m i ( c a p a b i l i t ym a t u r i t ym o d e li n t e g r a t i o n ,能 力成熟度模型集成) 阶段。自2 0 世纪8 0 年代末以来,s e i 开发了一系列涉及 多个学科的c m m 标准,包括系统工程、软件工程、软件获取、生产力实践及 集成产品和过程开发,希望通过帮助组织提高人员、技术和过程的成熟度来改 善组织整体软件生产能力。然而,多个模型的同时使用限制和阻碍了组织过程 改善的能力。于是,s e i 中止了对c m m i 源模型的更新,开始集中开发c m m i 项目。c m m i 项目融合了s w c m mv 2 0d r a rc 、e t a i s 7 3 1 、s e c m 以及 i p d c m mv 0 9 8 的内容,形成了组织范围内过程改善的单一集成模型。2 0 0 1 年末,c m m i s e s w i p p d av e r l 1 正式发行。c m m i 项目为工业界和政府部 门提供了一个集成的产品集,主要目的是消除不同模型之间的不一致和重复, 降低基于模型改善的成本。未来的c m m i 将以更加系统和一致的框架来指导组 织改善软件过程,提高产品和服务的开发、获取和维护能力。 2 6c m m 的应用 为适应国际化发展,应把s w - c m m 作为软件过程改的指导框架,并把 s w - c m m 主要应用在两大方面;能力评估和过程改进。 s w - c m m 是基于政府评估软件承包商的软件能力发展而来的,有两种通用 的评估方法用咀评估组织软件过程的成熟度:软件过程评估和软件能力评价。 软件过程评估:用于确定一个组织当前的软件工程过程状态及组织所 面临的软件过程的优先改善问题,为组织领导层提供报告以获得组织对软件过 程改善的支持。软件过程评估集中关注组织自身的软件过程,在一种合作的、 开放的环境中进行。评估的成功取决于管理者和专业人员对组织软件过程改善 0 的支持。 软件能力评价:用于识别合格的软件承包商或者监控软件承包商开发 软件的过程状态。软件能力评价集中关注识别在预算和进度要求范围内完成制 造出高质量的软件产品的软件合同及相关风险。评价在一种审核的环境中进行, 重点在于揭示组织实际执行软件过程的文档化的审核记录。 软件过程改进是一个持续的、全员参与的过程。s w - c m m 建立了一组有效 地描述成熟软件组织特征的准则。该准则清晰地描述了软件过程的关键元素, 并包括软件工程和管理方面的优秀实践。 2 7c m m 的内部结构 s w c m m 为每个软件组织建立和改善软件过程提供了一个阶梯式的过程 成熟度框架,这一框架由5 个成熟度等级构成。成熟度等级反映了一个软件组 织进行软件产品开发的能力。除初始级以外,其余的成熟度等级都包含了若干 个关键过程区域,每个关键过程区域又包含了若干个关键实践,这些关键实践 按照5 个共同特点加以组织。关键实践是对关键过程区域起重要作用的基础设 施或活动,只要认真地执行关键实践,就能实现关键过程区域的目标,进而改 善组织的软件过程能力。 2 7 1 成熟度等级 成熟度等级( m a m f i t yl e v e l s ) 是软件过程改善过程中妥善定义的平台。5 个成熟度等级提供了s w - c m m 的顶层结构。每个成熟度等级都表明组织软件 过程能力的一个等级。 s w - c m m 的5 个成熟度等级分别为:初始级、可重复级、已定义级、已管 理级和优化级。 初始级( i n i t i a l ) :在初始级,企业一般不具备稳定的软件开发与维护环 境。项目成功与否在很大程度上取决于是否有杰出的项目经理和经验丰富的开 发团队。此时,项目经常超出预算和不能按期完成,组织的软件过程能力不可 预测。 可重复级( r e p e a t a b l e ) :在可重复级,组织建立了管理软件项目的方针以 及为贯彻执行这些方针的措施。组织基于在类似项目上的经验对新项目进行策 划和管理。组织的软件过程能力可描述为有纪律的,并且项目过程处于项目管 理系统的有效控制之下。 己定义级( d e f i n e d ) :在已定义级,组织形成了管理软件开发和维护活 动的组织标准软件过程,包括软件工程过程和软件管理过程。项目依据标准定 义自己的软件过程进行管理和控制。组织的软件过程能力可描述为标准的和一 致的,过程是稳定的和可重复的并且高度可视。 已管理级( m a n a g e d ) :在已管理级,组织对软件产品和过程都设置定 量的质量目标。项目通过把过程性能的变化限制在可接受的范围内,实现对产 品和过程的控制。组织的软件过程能力可描述为可预测的,软件产品具有可预 测的高质量。 优化级( o p t i m i z i n g ) :在优化级,组织通过预防缺陷、技术创新和更 改过程等多种方式,不断提高项目的过程性能以持续改善组织软件过程能力。 组织的软件过程能力可描述为持续改善的。 等级成熟度可视性过程能力 l 初始级有限的可视性一般达不到进度,且不能控制 成本和目标 2 可重复级里程碑上具有管理可视性由于基于过去的经验,项目开 发计划比较现实可行 3 已定义级项目定义软件过程的活动基于已定义的软件过程,组织 具有可视性持续地改善过程能力 4 已管理级定量的控制软件过程基于对过程和产品的度量组 织持续地改善过程能力 5优化级 不断改善的软件过程组织持续地改善过程能力 表2 - 2c m m 不同成熟度等级过程的可视性和过程能力比较 2 7 2c m m 的关键过程区域 每一成熟度等级由若干个关键过程区域低c y p r o c e s sa r e a s ) 构成。关键过程 区域指明组织改善软件过程能力应关注的区域,并指出为了达到某个成熟度等 级所要着手解决的问题。达到一个成熟度等级,必须实现该等级上的全部关键 过程区域。每个关键过程区域包含了一系列的相关活动,当这些活动全部完成 时,就能够达到一组评价过程能力的成熟度目标。要实现一个关键过程区域, 就必须达到该关键过程区域的所有目标。 成熟度等级管理过程组织过程 工程过程 5 优化级技术改革管理缺陷预防 过程改革管理 4 己管理级定量管理过程软件质量管理 3 已定义级集成软件管理组间协调组织过程焦点软件产品工程 组织过程定义同行评审 培训大纲 2 可重复级需求管理 软件项目策划 软件项目跟踪与监督 软件子合同管理 软件质量保证 软件配置管理 i1 初始级无序过程 2 7 3 目标 表2 3c m m 的关键过程区域 目标( g o a l s ) 概括了一个关键过程域的关键实践可用来确定是否一个组 织或一个项目已有效地实现关键过程区域。目标表明每个关键过程区域的范围、 边界和意图。耳标用予检验关键实践实施情况,如可使用目标确定实现关键实 践的替代方法是否满足关键过程区域的意图等。如果一个级别的所有的目标都 已实现,则表明这个组织已经达到了这个级别,可以进行下一个级别的软件过 程改善。 2 7 4 关键实践 关键实践( k e yp r a c t i c e s ) 是指在设施或能力中对关键过程区域的实施和 规范化起重大作用的部分。每个关键过程区域都有若干个关键实践。实施这些 关键实践,就实现了关键过程区域的目标。关键实践以5 个共同特点( c o m m o n f e a t u r e s ) 加以组织:执行约定、执行能力、执行的活动、测量和分析、验证实 施。 执行约定( c o m m i t m e n tt op e r f o r m ,简称c o ) :企业为了保证过程建立 和继续起作用必须采取的行动。执行约定一般包括建立组织方针和高级管理者 的支持。 , 执行能力( a b i l i t y t op e r f o r m ,简称a b ) :组织和项目实施软件过程的 先决条件。执行能力一般指提供资源、分派职责和人员培训。 执行的活动( a c t i v i t i e sp e r f o r m e d ,简称a c ) :指实施关键过程区域所 必需的角色和规程。执行的活动一般包括制订计划和规程、执行活动、跟踪与 监督并在必要时采取纠正措施。 测量和分析( m e a s u r e m e n ta n da n a l y s i s ,简称m e ) :对过程进行测量 和对测量结果进行分析。测量和分析一般包括为确定执行活动的状态和有效性 所采用的测量的例子。 验证实施( v e r i f y i n gi m p l e m e n t a t i o n ,简称v e ) :保证按照已建立的过 程执行活动的步骤。验证一般包括高级管理者、项目经理和软件质量保证部门 对过程活动和产品的评审和审计。 正确地理解模型的基本概念和结构,是实施s w - c m m 。且达到过程改进目 标的基础。s w - c m m 以一种结构化的、系统的组织方式为软件企业提供了过程 建立的框架。在实旅s w - c m m 过程中,可以依据自己的实际情况制定切实可 行的组织能力成熟度等级目标,有重点、有步骤地实施各关键过程区域的关键 实践,并通过系统地规范组织的软件过程,使软件过程性能和能力得到了有效 的改善。 2 8 过程生命周期 过程定义和管理过程自身也是过程,定义这些元过程是c m m 3 级机构过程 ) a 的需求。因为这个过程不直接影响项目的执行,所以它不在执行项目的过 程中表现出来。 过程改进不是一次性的活动,而是一个连续性的活动。实现过程改进的模 型有很多例如:质量改进i 圉 b a s i 9 4 、s e i 的i d e a l 模型 g r a d 9 7 p e t e 9 5 和螺 旋模型 h u m p 9 5 。所有这些模型都是基于d e m i n g 的p d c a ( p l a n d o c h e c k a c t , 计划一做一检查一执行) 周期。本文使用一个简单的过程管理模型,该模型也 是从p d c a 周期继承而来1 筝3 j a l 0 0 0 1 。 图2 - l 过程生命周期 过程定义过程是为一个将一些输入变为输出的任务所制定的,目的在于 按照这个指定的过程以更好的方式来执行该任务。通常,对任何任务都必须定 义一个过程,一种分而治之的办法可以有效地执行任务。结果就是过程被定义 成一系列的阶段,每个阶段又是一系列的活动。 通常,当现有过程不适应一类项目时就需要定义新的过程。对于这类项目, 开始时把现有的最适合项目需要的过程按照需要进行修改,当有许多类似项目 时,可能引发更优的解决方案,为那一类项目定义新的过程。定义过程的任务 由以下活动组成: 初始化过程定义 生成一个过程的体系草案 获得高级管理者的授权 定义过程 确定生命周期的各个阶段 把活动确定到一个足够的粒度级别( 细化活动) 确定输入和输出 确定入口和出口准则 确定测量、参与者和参考 写概述 如果需要,建立i s o 和c m m 的交叉参考 定义裁减指南 用户和高级管理者评审 按照机构标准产生过程定义 这个阶段的主要参与者是s e p g ( 软件工程过程组) 的成员、任务组成员、 过程用户和高级管理者。入口准则陈述已经确定了需要定义的新过程( 过程升 级) ,出口准则陈述按所需格式定义过程并且经过评审。花费在过程定义阶段的 工作量要被记录下来。 过程实现过程实现包括那些在整个机构内实现新过程和实现现有过程变 更的活动。过程的变更分为大变更和小变更。在小的过程变更下,过程的定义 和建议的改进被评审,并通知所有用户。如果需要,可以给用户提供一些向导。 相反,大变动的实现类似于实现一个新的过程。也就是说它要求在向整个机 构范围发布实现前,按照一个合理的制定好的计划试运行该过程。 在启动前向机构中的高级管理者和一些潜在用户介绍此过程。这个步骤有 利于获得管理者的支持和承诺,并使得管理者和用户对于重要性和变更达成相 互间的理解。同时也有利于从用户那里获得试运行和实现过程的承诺。 试运行开始时需要准备一个试运行计划,包括试运行设定目标、项目选取 准则、评估过程的机制等。在试运行结束时,进行试运行后的分析,包括收集 用户对过程的反馈信息。如果需要,这些信息用来升级过程。如果试运行被认 为是成功的,过程将通过正式发布条文和规程向机构发布。对于用来管理过程 的过程,它的这个阶段的主要活动如下所示: 启动过程 试运行过程 试运行计划 确定试运行项目 为试运行定义数据采集和分析计划 为试运行项目组提供指导 监督试运行项目 收集数据、反馈信息 进行试运行结束后的分析 关闭试运行 根据需要,更新过程定义草案 更新过程定义基线 正式发布 指导培训 在机构范围内部署 这个阶段的参与者是s e p g 、高级管理者、过程使用者和试运行的项目。 输入是过程定义草案,输出由最终过程定义、试运行结果、培训材料和反馈组 成。出1 2 准则是过程已经发布并已经进行培i jr i 。在这个阶段,测量花费的工作 量,同时得到了试运行的反馈和培训反馈。 过程分析和变更过程分析和变更包括确定现有过程的变更需求和处理变 更请求等所需进行的活动。这些变更主要由改进过程的欲望驱动。它们可能由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省汉川市金益高级中学2025-2026学年高二上学期9月月考考试历史试卷
- 统编版2025-2026学年三年级语文上册期末测试卷(含答案)
- 分布式能源网络-洞察及研究
- 黑龙江省大庆市肇州县(五四制)2026届九年级上学期开学考试历史试卷(含答案)
- 安徽省亳州市利辛县2024-2025学年九年级上学期第三次月考生物试题(含答案)
- 部门安全培训的意义
- 跨境数据合规分析-洞察及研究
- 2023学年八年级(下)期中学情调查语文试题及答案
- 基于区块链的脱皮仁全生命周期溯源体系构建与数据安全挑战
- 基于人工智能的甲基氯苯胺类化合物生产过程多目标动态优化模型构建
- 车辆赠与协议模板
- 中国移动通信网运行维护规程(修订版)
- 烧结岗位安全操作培训-PPT课件
- 【课件】1.2 点线传情——造型元素之点线面 课件-2021-2022学年高中美术人美版(2019)选修绘画
- Q∕GDW 11445-2015 国家电网公司管理信息系统安全基线要求
- 运动处方(课堂PPT)
- 物资储备与物流方案
- 财务报销流程培训PPT模板课件
- 关于加强铁路企业年金管理的指导意见
- 幼儿园体检结果分析评价表
- 资金筹集业务核算培训教材(共39页).ppt
评论
0/150
提交评论