(计算机应用技术专业论文)基于cmm的软件过程改进研究.pdf_第1页
(计算机应用技术专业论文)基于cmm的软件过程改进研究.pdf_第2页
(计算机应用技术专业论文)基于cmm的软件过程改进研究.pdf_第3页
(计算机应用技术专业论文)基于cmm的软件过程改进研究.pdf_第4页
(计算机应用技术专业论文)基于cmm的软件过程改进研究.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机应用技术专业论文)基于cmm的软件过程改进研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

耍蜜窒逢盔堂亟塑窒生堂焦迨窒苤! ! 豆 摘要 软件需求正在飞速发展,需求的增长带动了软件开发活动的急剧增长, 软件过程相应地成为人们关注的焦点。 1 9 9 1 年,在软件生产和消费方面都一直走在世界前列的美国,推出了一 个指导软件组织改善软件过程的软件能力成熟度模型,这就是c m m ( c a p a b i l i t ym a t u r i t ym o d e l f o rs o f t w a r e ) 。 本文围绕基于c m m 的软件过程改进展开研究。主要研究结果包括: 1 、提出了一种新的软件过程改进模型。该模型继承了c 的优点,实 施过程管理。并且,在过程改进初始阶段,软件组织就筹建了些相关机构 来实施人才和技术的引进和培训,从而达到过程管理、人才管理和技术管理 的和谐统一,保证并提高了软件产品的质量;模型的过程改进循环体使用的 是经过改进的i d e a l 模型:a e a i 模型。 2 、开发了一个c m m 2 软件项目评估系统。本评估系统是以前面提出的 软件过程改进模型为基础开发的。系统原理为:分别给影响软件项目开发过 程比较大的关键实践设定权值,然后根据它们的执行情况分别打分,最后算 出软件项目的评估分数。同时,给出项目开发过程中的一些“弱项”,为以 后的软件过程改进工作提供依据。 3 、针对评估系统的使用情况,指出了c 框架存在的几个缺陷,并表 达了自己的一些观点以供大家参考。 本文是在作者深入到许多大型软件组织进行大量调研工作的基础上完 成的,结论是经过一些业内的专家精心指导得出的,所提出的模型和开发的 软件项目评估系统应该适用于所有的软件组织。 关键词:软件过程改进;c m m ;软件过程评估 酉壶窒运盔堂亟塑窒生堂焦适皇笺l ! ! 亟 a b s tr a c t w i t ht h e r a p i dd e v e l o p m e n t d e v e l o p m e n ti si o c r e a s i n gs h a r p l y b e c o m et h ef o c u s , o fs o f t w a r e d e m a n d ,s o f t w a r e c o n s e q u e n t l ys o f t w a r ep r o c e s sh a s i n1 9 9 1 ,c a p a b i l i t ym a t u r i t ym o d e lf o rs o f t w a r es o c a l l e ds e ic m m i sd e v e l o p e di na m e z l e a nw h e r ep r e d u c t i o na i dc o n s u m p t i o no fs o l t w a r e i e a dt h ef i e l d ,w h i c hc a nd if e e ts o f t w a r e o r g a n i z a t i o n t o i m p r o v e s o f t w a r ep r o c e s s r e s e a r c hw o r k sf o c u so nt h ejm p r o v e m e n to fs o f t w a r ep r o c e s sb a s e d o nc t h em a i nr e s e a r c hr e s u l l sa r ea sf o l l o w s : l 、an e wm o d e lf o rt h ei m p r o v e m e n to fs o f t w a r ep r o c e s si sp r o p o s e d t h i sm o d e li n h e r i t st h e a d v a n t a g e s o fc m ma n d b r i n g sp r o c e s s m a n a g e m e n ti n t oo p e r a t i o n w h a t sm o r e ,r e l e v a n to r g a n i z a t i o n sa r e c o n s t r u c t e dt o i m p l e m e n t t h er e c o m m e n d a t i o na n d c u l t i v a t i o i lo f s o f t w a r et a l e n t sa n d t e c h n i q u e s i nt h ef i r s t p h a s eo fp r o c e s s m a n a g e m e n t t h u st h eh a r m o n yo fp r o c e s sm a n a g e m e n t ,t a l e n tm a n a g e m e n t a n dt e c h n i q u em a n a g e m e n tc a r lb ea c h i e v e d t h e q u a li t yo fs o f t w a r e p r o d u c t i o na l s oc a nb ea s s u r e da n di m p r o v e d t h ei m p r o v e di d e a lm o d e l i su s e di nt h ec i r c u l a re n t i t yo fs o f t w a r ep r o c e s si m p r o v e m e n t ,w h i c h i s g o n eb yt h en a m eo fa e a im o d e l 2 、aa s s e s s m e n ts y s t e mo fc m m 2s o f t w a r ep r o j e c ti sd e v e l o p e db a s e d o ut h ea b o v em o d e lf o rt h ei m p r o v e m e n to fs o f t w a r ep r o c e s s s y s t e m p r i n c i p l e :f i r s t l yt oi n i t i a l i z ew e i g h t so fk e yp r a c t i e e sw h i c hi m p a c t o nt h ed e v e l o p m e n to fs o f t w a r ep r o j e c t ,a n dt h e nt os c o r eb a s e do n i m p l e m e n t a t i o n ,f i n a l i ft oc a l c u l a t et h ea s s e s s m e n tm a r k so fs o f t w a r e p r o j e c t a tt h es a m et i m e t h ek e yp r a c t i c e sw h i c ha r ei m p l e m e n t e d i n s u f f i e i e n t l yi n t h ec o u r s eo fp r o j e c td e v e l o p m e n ta r ep r e s e n t e d , w h i c hc a np r o v i d et h ef o u n d a t i o n sf o rt h ef o l l o w i n gi m p r o v e m e n to f s o f t w a r ep r o c e s s 3 、a i m e d a tt h e u s e s u r v e y o fa s s e s s m e n t s y s t e m ,s e v e r a l 亘奎至通盍堂亟塑宝生堂焦迨塞 篁! y 亟 】i m i t a t i o n so fc , g af r a m e w o r ka r ep o i n t e d o u ta n ds o m ec o m m e n t so ft h i s a u t h o ra r ep u tf o r w a r dt o g l v ear e f e r e n c et of r a t e r n j t i e s 1 h i sp a p e rl s c o m p l e t e db a s e do n i n v e s t i g a t i o na n dr e s e a r c ho f l a r g e s c a l es o f t w a r eo r g a n i z a t i o n s ,a n dc o n c l u s i o n sa r eo b t a i n e dw i t h s o m e e x p e r t s g u i d a n c e t h e p r o p o s e d m o d e la n dt h e d e v e l o d e d a s s e s s m e n t s y s t e m o fs o f t w a r e p r o j e c t a r es u it a b l e f o ra 】l t h e s o f t w a r eo r g a n lz a t l o n s k e yw o r d s :s o f t w a r ep r o c e s s i m p r o v e m e n t :c a p a b i l i t ym a t u r i t ym o d e l f o rs o f t w a r e ,s o f t w a r ep r o c e s sa s s e s s m e n t 一 : 耍直童运盔堂亟塑窒垒茎焦迨塞篁! 基 第一章绪论 软件产业是一个新兴的知识型产业。一个国家软件业的发达程度,体现 了国家的综合国力,决定着国家未来的国际竞争地位。中国软件产业在经过 了多年的发展以后,已经发觉了自身与世界先进水平的差距不仅仅在人才与 技术方面,实际上更多的是在于管理方面。中国软件产业正处于从个体手工 作坊向大型的软件工程化和软件过程化方向转变。 基于我国软件产业的发展现状,为了促进我国软件产业的发展,本文对 国内外软件组织技术管理水平、软件产业发展状况以及对各种软件过程改进 方法进行了深入的研究。 本章介绍了论文的研究背景、主要内容及理论与实际意义。 1 1 研究背景 从2 0 世纪7 0 年代算起,国内的软件开发已经走过了3 0 多年的岁月。 但放眼国内,除了极少数几个可称得上“软件企业”的组织之外,我们的绝 大部分组织仍然是“手工作坊”式的软件组织,而我们的近邻印度,其软件 出口额每年已高达几十亿美元之多。产生这种差距的原因很多,例如政策方 面的,市场方面的,人员素质方面的,但关键的一点还在于处于国内软件开 发一线的大部分软件行业的从业人员缺乏对软件开发科学的正确认识,缺乏 正规有效的软件过程。 目前,在软件过程方面已存在许多国际标准,也有人做出了许多开创性 的工作,其中包括一些著名的公开标准,例如c 删、i s o i e c1 5 5 0 4 和 b o o t s t r a p 等。美国卡内基梅隆大学软件工程研究所( s e i ) 提出的软件能 力成熟度( c m m ,c a p a b i l i t ym a t u r i t ym o d e lf o rs o f t w a r e ) 是近年来影 响最大、成效最显著的成果之一“”。c 涨把重点放在软件过程的管理和提高 上,现在已经成为国内外软件组织普遍采用和承认的一种评价和改进软件过 程能力的有效手段。 酉匣至湮盍堂亟塑窭生茎焦迨塞筮2 亟 然而,目前研究c m m 的资料,要么以讲解概念和条款为主。要么不适应 我国的国情。软件组织在实施c m m 的时候,常常只注意c m m 的表面形式而生 搬硬套地使用这些标准,却忽略了c m m 的精髓,没有收到预期的效果。 另外,c 删只是一个过程框架,并没有详尽地给出特定的应用范围内的 专门技术,没有提出特别的软件技术,或者建议如何去选择、改进现有的开 发技术。c m m 对组织成员只是提出能力要求,并没有给出能力获得的途径。 本来,研究c m m 的初衷是加强过程管理,却忽视了人才和技术方面的管理, 而这些方面对于项目的真正成功起着举足轻重的作用。在实施c 过程中如 何实现软件过程管理、人才管理和技术管理的融合,目前还没有人进行这一 领域的研究。本论文正是在这样的背景下展开研究的。 1 2 论文的内容 本文主要围绕基于c 删的软件过程改进展开研究,主要内容包括: 第一章为绪论,介绍了论文的研究背景、主要内容及理论与实际意义。 第二章为软件过程,介绍了软件过程的基本概念和软件生命周期过程, 并对软件过程改进进行了深入研究。 第三章为s e ic 删理论概述,介绍了c 删的产生背景、用途、体系结构、 实施c 埘的组织保障和s e i 对软件过程改进所推荐的i d e a l 模型。 第四章为基于c 渤的软件过程改进模型,该模型由准备阶段和过程改进 循环体两部分组成。在准备阶段,软件组织把c m m 3 才能做到的活动提前到 c m m 实施的初级阶段,真正实现了软件过程、人才和技术管理的融合;过 程改进循环体使用的是经过改进的i d e a l 模型:a e a i 模型。 第五章为c m m 2 软件项目评估系统,介绍了评估系统开发的原因、c m m 2 关键过程域、评估原理、系统设计和系统的实现过程,最后说明了使用评估 系统发现的几个问题。本评估系统针对每个关键实践分别打分,自动得到软 件项目的评估分数和“弱项”,为软件组织的过程改进提供依据。 最后是结论,对本文所做的主要工作进行了总结。 酉亩窒通盍堂亟硒窒生堂焦适塞筻! 基 1 3 论文的理论与实际意义 为了提高我国软件组织的内部管理水平,加强我国软件组织在国内国外 市场上的竞争能力,国内许多软件组织已经开始或正在准备实施$ e ic m m 的 软件过程改进方法,其中有些起步较早的组织已经取得了s e ic 删的认证。 但是,在基于c 埘的软件过程改进研究和应用这领域,同世界上的软件生 产大国和国外大型跨国软件组织相比较,中国的软件组织和软件产业的整体 规范化和标准化水平还有待提高,无论是在管理上,还是在实际应用上,都 还处于起步阶段,缺乏实际经验和过程积累。另外,现有的软件过程改进模 型不是强调过程管理,就是侧重于人才和技术的管理,很难做到三者的和谐 统一。 本论文提出了一种新的软件过程改迸模型。该模型继承了c m m 的优点, 实施过程管理。并且,在过程改进初始阶段,软件组织就筹建了一些相关机 构来实施人才和技术的引进和培训,从而达到过程管理、人才管理和技术管 理的和谐统一,保证并提高了软件产品的质量。 另外,本论文以前面提出的过程改进模型为基础,设计了一个c i f l 是2 软 件项目评估系统。该系统根据具体项目的实施情况,对项目的软件过程进行 评估和过程积累,找出影响组织软件过程改进的主要问题,指导组织未来的 过程改进活动。 最后,本论文针对评估系统的使用情况,指出了c m m 框架的几个缺陷, 并讲述了自己的一些看法供大家参考。 软件组织利用本文的成果实施软件过程,可以有效地控制软件开发进度 和预算,降低开发成本并减少风险,从而提高软件产品的质量,使软件组织 在日益激烈的竞争中处于有利地位。 酉夏至湮盔茎亟硒塞圭堂焦迨塞篁! 夏 第二章软件过程 2 1 软件过程 过程是把输入转换为输出的一组彼此相关的活动( i s o i e c1 2 2 0 7 ) 。 软件过程是指实施于软件开发和维护中的阶段、方法、技术、实践及相 关产物( 计划、文档、模型、代码、测试用例和手册等) 的集合。 行之有效的软件过程可以提高开发软件组织( 软件从业人员组成的有领 导、有目标、有规则、有产品、有市场的实体) 的生产效率、提高软件质量、 降低成本并减少风险。首先,通过理解开发软件的基本原理,可以在购买工 具、雇用员工、管理软件项目( 软件开发要达到的成果或产品) 等方面做出 更好的决策:其次,软件过程可以使软件开发标准化并得到良好的组织,提 高重用性和项目组之间的一致性;第三,软件过程可以帮助软件开发组织引 入行业内的最佳实践,如代码审查、配置管理、变更控制以及体系结构建模 等;第四,软件过程通过定义怎样管理变更以及怎样给软件的未来版本适当 地分配维护变更,加强了软件开发组织对软件的维护。 软件过程成熟度是指一个特定软件过程得到清晰的定义、管理、测量、 控制以及有效的程度m ,。成熟度意味着能力的增长具有潜力,而且表示组织 的软件过程是珍贵的,其在组织内的应用是一致的。 在不成熟的组织中,缺少判断产品质量或是解决产品或过程问题的客观 基础,产品质量难于检测。在项目进度滞后时,往往缩短或取消如评审和测 试这些旨在提高产品质量的活动。 成熟的软件组织在整个组织范围内具有管理软件开发过程和维护过程 的能力,能够把软件过程准确无误地传达给所有的员工,工作的活动均依据 规划好的过程展开;所管理的过程已经形成文档,是能够使用的,并与实际 所开展的工作采用的方法协调一致;在必要时,可将过程定义更新,并且通 过先导试验和成本效益分析实现过程改进。整个组织广泛而积极地投入过程 改进活动。项目自始至终,组织从上到下,过程相关的所有角色及其职责都 耍重童湮盔堂塑堑窒生堂焦诠塞篁i 亟 是明确的。 软件过程能力描述了开发组织或项目组在遵循一个软件过程后能够 得到的预期结果的界限范围。该指标是对能力的一种衡量,用它可以预测一 个组织在承接下一个软件项目时,所能期望得到的最可能的结果。 软件过程性能表示开发组织或项目组在遵循一个软件过程后所得到 的实际结果。可见,软件过程性能描述已得到的实际结果,而软件过程能力 则描述最可能的预期结果。 2 2 软件生命周期过程 1 9 9 5 年国际标准化组织和国际电工委员会联合制定并发布了个对于 软件界有着深远影响的国际标准,这就是( ( i s o i e c1 2 2 0 7 信息技术一软件 生命周期过程( 如表2 1 所示) 。该过程全面、系统地阐述了软件生命周期 的过程、活动和任务。标准定义的1 7 个过程分别属于:基本过程、支持过 程和组织过程。 基本过程包括5 个过程,这些过程供备主要当事人( 如;需方、供方、 开发者、运行者和维护者) 在参与或完成软件开发、运行或维护时使用。 支持过程包括8 个过程,这些过程均有明确的目的支持其他过程,帮助 软件项目获得成功及良好的产品质量。 组织过程包括4 个过程,这些过程被某个机构用来建立和实现与生命周 期过程相关的基础结构,甚至人事制度,并使其不断得到改进。 ( ( i s o i e c1 2 2 0 7 信息技术一软件生命周期过程是制定以后软件过程 方砸模型或标准的基础。如果哪个模型或标准没有严格遵循本标准,那么它 就在生命周期过程方面存在缺陷,应该给予补正。本文后面对c m m 的一些 关键过程域的修改正是基于本标准得出的。 耍厦至逗盔差亟塑窒生堂焦迨窒熊亟 表2 一i i s o i e c1 2 2 0 7 信息技术一软件生命周期过程 标准定义的生命周期过程 基本过程支持过程组织过程 软获取过程文档编制过程管理过程 件供应过程配置管理过程基础设施过程 生开发过程质量保证过程改进过程 命运行过程验汪过程培训过程 周维护过程确认过程 期联合评审过程 过审核过程 程问题解决过程 2 3 软件过程改进 2 3 1 软件过程改进框架的组成 软件过程改进框架如图2 一l 所示。 软件过程基础设施 它包含组织管理基础设旌和技术基础设施,可为软件过程改进活动提供 必要的条件和支持。 软件过程改进路线图 它应提供表明有效软件过程特征的模型,以及逐步达到有效软件过程的 途径,软件组织依靠路线图的指引可以朝着有效软件过程前进。c m m 提供的 成熟度等级就属于这种路线图。软件组织从自身的实际情况出发对模型所作 的裁剪版本,只要是适用的也应看成是过程改进路线图。 软件过程评估方法 它是评估软件组织现行和现用的软件过程、做法和基础设施的方法和技 耍塑童湮盎堂亟硒窒垒堂焦迨窒釜z 亟 术“。评估通常要对照过程改进路线图,评估的结果要能表明,从提高过程 有效性方面看哪些是强项,哪些是弱项。改进措施应能导致过程成熟度沿着 改进路线图提高过程成熟度。 软件过程改进计划 评估后把发现的问题转化为软件过程改进的行动计划。这包括为改进过 程基础设施以及提高其有效性必须采取的措施,过程改进应能使改进的过程 规范化并提高过程的有效性。 图2 一l 软件过程改进框架 2 3 2 软件过程改进循环 软件过程改进要经过四个步骤( 如图2 2 所示) 。 评估:发现弱项或存在的问题。 计划:针对弱项或问题制定改进计划。 改进:实施改进计划。 监控:检验实施的情况,纠正不符合要求的现象。 图2 2 软件过程改进框架 耍直至逢盔芏巫丛窒生堂焦迨塞篁8 亟 软件过程改进通常不可能一次性完成,过程改进需要持续改进。软件过 程改进实施一次循环以后,如有必要,可再进入下一一次的过程改进循环。 2 3 3 软件过程改进的标准或模型 近十几年,软件界先后提出了一系列有关软件过程成熟度评价或软件过 程改进的模型或标准。本文只针对c m m 展开研究( 详见第三章) ,没有涉 及其它模型和标准,故对其它模型和标准不做讨论。表2 - 2 列出了若干有影 响的标准或模型。 表2 - 2 近年推出的著名软件过程标准或模型 推出的组织名称时间 主题 r 耐基梅隆大学 c 姗、1 9 8 7 软件过程改进和能力 软件工程研究所 c 嘲i 2 0 0 0评估 c m u s e i 国际标准化组织i s o i e ct r1 5 5 0 41 9 9 7软件过程改进与能力 国际电工委员会 s p i c e 评估 i s o i e c 国际标准化组织 i s 09 0 0 l 1 9 9 4 2 0 0 0建立和改进质量体系 i s oi s 09 0 0 3 1 9 9 4 ,1 9 9 7 b e l lc a n a d at r i l l i u m1 9 9 4 软件过程改进 德国联邦武装部v - m o d e l1 9 9 2 软件过程定义 g f a f 欧共体b 0 0 1 。s t a r a p1 9 9 4 软件过程评估 匿壅室通盘雯亟丛嚣生堂焦途窒熊2 亟 第三章s e l c m m 理论概述 3 1s e i c m m 的产生背景 随着计算机硬件和软件应用的飞速发展,汁算机软件开发也就成为一个 大规模的工业生产,现在已经成为一个在全球经济发展中发展最快的产业。 随着单个软件的规模扩大软件代码增长,技术不断更新,人力也不断增 加,和整个软件产业规模的扩大从一开始国防军事、航空航天等国家项 目领域对软件的需求到商业贸易、金融电信等社会生活各行各业的需求,随 之而产生的就是软件数量的急剧膨账。随之而来的则是“软件危机”,软件 开发和维护消耗了难以想象的人力物力资源。从而产生了为了解决这个软件 危机,专业人士投入了大量的人力、物力和财力进行探索和研究。1 9 9 1 年, 在软件生产和消费方面都一直走在世界前列的美国,推出了一个帮助软件企 业改善软件过程的过程成熟度框架,这就是s e ic m m 。 1 9 8 6 年1 1 月,美国卡内基梅隆大学的软件工程研究所s e i ( c a r n e g i e m e l l o nu n i v e r s i t y , s o r w a m e n g i n e e r i n gi n s t i t u t e ) 应美国联邦政府的要求,在 m i t r e 公司的协助下,开始开发一个用来帮助企业改善软件过程的过程成熟框 架【2 】。1 9 8 7 年9 月,s e i 开发了一套软件能力成熟度框架和一套软件成熟度 问卷。 软件能力成熟度框架和成熟度问卷经过4 年的试用之后,s e i 于1 9 9 1 年 推出了软件能力成熟度模型c m m ( c a p a b i l i t ym a t u r i t ym o d e l f o rs o f t w a r e ) 1 0 版。1 9 9 2 年,在一个关于c m m 的研讨会上,s e i 广泛听取与会的2 0 0 多名富有经验的软件专家的意见。又于1 9 9 3 年推出了c m m l ,1 版本口1 。 3 2s e lc m m 的主要用途 软件过程评估( s p a ,s o f t w a r ep r o c e s sa s s e s s m e n t ) 。这是由一组经过培 训的软件专业人员开展的评估活动,其目的在于确定出软件组织软件过程的 当前状况,找出该组织所面对的与软件过程有关的、最急需解决的所有问 酉壶奎遁太堂亟主硒窒生堂焦迨塞篁! q 夏 题,以便取得组织领导层对软件过程改进的支持l i e 】。 过程改进( s p i ,s o f t w a r ep r o c e s si m p r o v e m e n t ) 。帮助软件组织对其软件 过程向更好的方向的改变,进行计划、制定以及实施l 。 软件能力评价( s c e ,s o f t w a r e c a p a b i l i t ye v a l u a t i o n ) 。这是由一组经过培 训的软件专业人员开展的评价活动,其目的在于识别或选择哪些软件承包商 有资格承担软件任务或是检查、监察正用于软件制作的软件过程状况。 3 3s e ic m m 的体系结构 3 3 1s e ic 删的分级标准 c m m 模型为软件组织的软件过程能力提供了一个阶梯式的进化框架, 从不成熟的软件组织到成熟的软件组织,共分为5 个成熟度级别m ,( 如图3 - 1 所示) 。 初始级( t h ei n i t i a ll e v e l ) 初始级组织的软件过程是没有定义的随意过程,项目的执行和程序的开 发是不固定的甚至是混乱的过程,它也没有为软件开发和维护工作提供一个 稳定的环境。当工作过程中遇到困难时,就可能会放弃或改变原有的计划。 而且,初始级组织开发产品的成功,完全要依靠一个有才能的管理者和他所 领导的项目小组的能力。所以初始级的能力是指个人的能力,而不是企业的 能力。也许有些组织己经制定了一些软件工程规范,但这些规范未能覆盖基 本的关键过程,而且执行时没有政策、资源等方面的保证,所以这些组织仍 然被视为处于初始级。 可重复级( t h er e p e a t a b l el e v e l ) 总结多年的软件开发经验和教训,人们总结出在开发大型软件项目时, 工作的首要问题不是技术问题而是管理问题。因此,第2 级的焦点集中在软 件管理过程上。一个可管理的过程则是一个可重复的过程,一个可重复的过 程就能够逐渐进化和成熟。第2 级的管理过程包括了需求管理、软件项目计 划、软件项目跟踪和监督、软件质量保证、软件配置管理和软件子合同管理 六个方面。通过实施这些过程,从管理角度可以看到一个按计划执行的且阶 亘直童逗太堂亟塑窒生堂僮迨窒 笠! ! 亟 段可控的软件开发过程。在可重复级,基于以往管理类似项目的经验,计划 和管理新项目,也就建立了管理软件项目的策略和执行这些策略的过程。通 过在管理项目的基础上建立基本的过程管理规则来增强过程能力。 在第2 级的企业里,软件过程能力可总结为:规则化的。因为计划软件 过程、跟踪软件过程的活动都是平稳的,而且过去的成功可以再次出现。由 于遵循一个基于先前项目性能所制定的切实可行的计划,项目过程得到了项 目管理系统的有效控制。 图3 - 1模型的5 个成熟度级别 过程 已定义级( t h ed e f i n e dl e v e l ) 在已定义级上,全组织的开发和维护软件的标准过程己经文档化,包括 软件工程和软件管理过程,而且这些过程被集成为一个有机的整体。在s e i c m m 中,均称此标准过程为组织的标准软件过程。在第3 级上所建立的过 塑匦窒通盔堂亟土丛窒生芏焦迨塞墓1 2 夏 程,被用来帮助软件经理和技术人员的工作,使其工作得更有效。每一个项 目通过裁剪组织的标准软件过程来建立他们自己定义的软件过程,井说明该 项目独有的特征。 在第3 级的企业里,软件过程能力可总结为:标准的、一致的。因为不 论是软件工程,还是管理行为都是平稳的、可重复的。在所建立的生产线内, 成本、进度利功能都是受控制的,软件质量也是可跟踪的。这种过程能力是 建立在整个组织范围内,对已定义的软件过程中的活动、角色和职责的共同 理解之上的。 已管理级( t h em a n a g e dl e v e l ) 在己管理级,组织为软件产品和软件过程制定了量化的质量目标。评价 所有项目的软件过程的产品质量,是组织评价计划的一部分。利用组织级的 软件过程数据库收集、分析来自项目定义的软件过程的有用数据。在第4 级, 软件过程是具有精确定义的、连贯的评价方法,这些评价方法为评估项目的 软件产品和质量奠定了一个量化的基础。量化控制将使软件开发真正变成为 一种工业生产活动。 在第4 级的组织里,软件过程能力可总结为:可预测的。因为过程是可 评价的,而且执行过程的活动也是在可评价限度之内的。这一级别使得组织 可以在定量限度范围内,预测过程和产品质量的发展趋势。因为过程是稳定 的、可评价的,所以一有意外情况出现,就可以确定导致这些变化的“特定 的原因( s p e c i a lc a u s e ) ”。一旦过程跨越了己知的限度,就会采取适当的措 施来矫正这种情况。可想而知软件产品是高质量的。 优化级( t h eo p t i m i z i n gl e v e l ) 在优化级,整个组织的工作重点是软件过程的不断改进。组织以防止错 误的出现为目标,在过程实施之前就有办法发现过程的弱点和强项。利用软 件过程有效的数据来对组织在软件过程中引进的新技术和变化进行成本一 效益分析,提出关于开发最优的软件工程实践的革颓思想,并推广到全组织 范围内。在第5 级的组织中,软件项目组负责分析错误,判断错误发生的原 因,并对软件过程进行评估,阻止己知的错误类型再次发生,从中吸取教训, 并应用到其它的项目中去。第5 级的目标是达到一个持续改善的境界。所谓 持续改善,是指可根据过程执行的反馈信息来改善下一步的执行过程,即优 化执行步骤。 匿壶至道盔雯亟塑塞生黉焦迨塞 筻! 豆 在第5 级的组织里,软件过程能力可总结为:不断地改进。因为第5 级 的组织会不断地努力提高其过程能力,从而改善其项目的过程性能。提高改 进工作的质量和效率不仅要对现有的过程不断地改进,还要改革,引进新技 术、新方法。 3 3 2s e ic 删软件过程的可视性 可视性对软件工程和c m m 都是非常重要的。软件工程强调用软件开发 方法来解决软件生产中的质量与效率问题;而c m m 则追求软件组织成熟度 的不断提高,组织管理的不断进化来使软件质量、生产率和生产周期得到明 显改善,二者不仅目标相同,而且都强调开发的可视性来支持开发的管理。 因此,软件过程可视性的提高,就成为提高软件组织成熟度级别的关键。 s e ic m m 软件过程的可视性如图3 - 2 所示。 在初始级中,整个软件过程形状如同一团黑云,对管理人员或用户而言, 只能看到项目的要求和项目的结果,要想了解某个具体项目的进度状况,或 制定项目计划都是非常困难的。无法看到项目的软件过程。而用户也只能是 在软件交付时,才能评估软件产品是否符合需求。过渡到可重复级软件过程 的可视性有所好转,开发过程分阶段进行,用一系列的黑盒子表示。用户的 需求和工作产品在一定程度上可以控制。管理人员通过建立的基本项目管理 活动,在过程的关键点上对产品和过程进行检查,对发生的问题进行反应。 用户也可以通过关键点的情况了解项目的进展。但对黑盒内部发生的事,仍 然看不见。发展到已定义级后,黑盒内部的结构逐步显示出来,组织拥有标 准软件过程并用于软件项目中。因此,管理人员在了解自己在过程中的责任 和任务的情况下,可以发挥管理作用和对各种软件开发进行交互活动,并能 预见可能发生的风险,为此做一定准备。由于已定义级的过程提供了很好的 可视性,项目外的用户也能得到较为准确而快速的情况报告。在管理级,管 理者可以根据客观的度量,预见过程中的经费支出和其他情况,定量地、有 目标地做出决定。用户也能定量地理解过程的能力及存在的风险。所以,该 级软件过程的不稳定性减少了,预见结果的能力增强了。整个软件过程可以 定量地指导和控制。最后,在优化级中,人们可以很清楚地看到软件过程的 内部结构。为了提高生产率和质量,组织上已经形成了有效的、不断的、系 亘直至渔盍堂亟塑窒生堂焦迨塞塑! ! 亟 统的改进方法,并且制度化。对现存的过程的认识超越了仅仅考虑过程可能 变化的影响,而是自觉地识别不够有效和可能出错的活动,并加以改正和替 换,以达到更进一步的效果。管理人员有能力来估计及定量跟踪变化的影响 和效果,用户和开发组织合作关系良好。 图3 - 2处于每个成熟度级别的软件过程可视性 3 3 3s e ic 删的内部结构 为了在软件过程改进的实践中真正体现c m m 模型的可操作性,c m m 耍直至道盎堂亟塑窭塞堂焦途塞筻! 亘 模型给出了每一个成熟度等级的详细结构。除第1 级外,每一级都是按完全 相同的结构构成的。成熟度等级为顶层,不同的成熟度等级反映了软件组织 的软件过程能力和该组织可能实现预期结果的程度。在每一个成熟度级别中 ( 第1 级除外) ,包含了实现这一级目标的若干关键过程域( k e yp r o c e s s a r e a s ,k p a ) ,每个k p a 进一步包含若干关键实施活动( k e yp r a c t i c e ,k p ) , 无论哪个k p a ,它们的实施活动都统一按五个公共特性进行组织,即每一个 k p a 都包含五类k p 。使整个软件过程改进工作自上而下形成了一种很有规 律的步骤。c m m 的内部结构如图3 - 3 所示。 图3 - 3s e ic 删的内部结构图 下面介绍s e ic m m 体系结构中的关键过程域、目标、公共特性和关键 实践。 关键过程域( k e yp r o c e s sa r e a ,k p a ) 在c m m 模型中,每个成熟度级别都包含了实现这一级目标的若干关键过 程域。所谓关键过程域,是指相互关联的若干软件实践活动和有关基础设施 的一个集合n ”。它表示了当一个软件组织改进软件过程时必须集中力量改进 亘霞至通态主亟主塑窭生堂僮迨室一 篁! 亟 的几个方面,标识了达到某个成熟度级别时所必须满足的条件。 一个软件组织如果希望达到某个成熟度等级,必须实现该等级上的全部 关键过程域。并且,随着组织晋升到更高的过程成熟度等级,在各个关键过 程域上应进行的具体实践在内容上将有所发展。如果从管理、组织和1 程三 方面来划分,这1 8 个关键过程域的归结情况如表3 1 所示。 表3 - l 关键过程域的过程分类 管理过程组织过程工程过程 优化级技术变更管理 过程变更管理缺陷预防 已管理级定量过程管理软件质量管理 集成软件管理 组织过程焦点 软件产品工程 已定义级组间协调组织过程定义同行评审 培训f 大纲 需求管理 软件项目计划 可重复级 软件项目跟踪与监控 软件子台同管理 软件质量保证 软件配置管理 初始级无序过程 目标( g o a l s ) 在c m m 模型中,每一个k p a 都确定了一组目标,表示每一个关键过程 域的范围、边界和意图。用目标可以判断评估组织或项目是否有效地实施了 某关键过程域所规定的内容,即目标是检验关键过程域是否满足的一个指 标。若这组目标在每一个项目都能实现,则说明企业满足了该k p a 的要求。 如果评估组织或项目满足了一个级别的所有k p a 的要求,则表明这个组织或 项目达到了这个级别所要求的能力。 酉壶套通盍堂亟堑窒圭堂僮迨塞蔓! z 夏 公共特性( c o m m o nf e a t u r e s ) 每个关键过程区域由五个公共特性组成。这些特性可以表明一个关键过 程域的实施和结构组织是否有效、可重复和持久。这五个公共特性如下: 执行约定:描述的是组织为保证过程得以建立和持续发挥作用所必须采 取的行动。执行约定一般与组织的方针政策利管理方式有关。 执行能力:描述的是在软件过程中每个项目或整个组织必须达到的前提 条件。执行能力一般与资源、组织机构和培训有关。 实施活动:描述的是实现一个关键过程域时所必须执行的任务利步骤。 实施活动通常包括制订计划和执行步骤,开展工作,对该工作进行跟踪,以 及必要时进行改进的措施。 度量和分析:描述的是度量过程和度量的必要。度量与分析一般包括一 些度量的例子,通过这些例子可以确定实施活动的状态和效果。 验证实施:是验证实施活动与确立的过程是否遵循已制订的步骤。验证 实施通常包括由复审以及由管理和软件质量保证活动进行的审查。 关键实践( k e yp r a c t i c e s ) 关键实践,就是一些重要的实践活动,每个关键过程域由若干关键实践 组成。关键实践,就是描述了最有效实旃和实现关键过程域的的基本要求和 活动。一般情况下关键实践描述了应该“做什么”,但并没有规定“怎么做”。 操作的方法和步骤必须由项目组织自己去解决。例如,软件项目计划这个关 键过程域的一个关键实践,就是要遵循己文档化的规程来制订项目的软件开 发计划。 综上所述,s e ic m m 通过规范软件组织的内部结构,使软件组织能够制 定方针政策、标准并参照自身的结构来建立软件过程,以提高软件过程成熟 度。这些建设性的活动对组织的开展业务、进行实践工作、改进过程的基本 环境和组织文化起到了极大的支持作用。这样,一旦软件组织内的人员发生 变化,组织内部开展的各项活动仍然可以延续下去。这样既保证了软件生产 的连续性,又可以把生产实践的经验保留下来,为组织以后的发展和提高奠 定了基础。此外,评估组织的软件能力,类似于一个人在特定领域的能力, 是逐步获得和增长的。如果一个人在其领域的发展过程中能得到很好的指 引,那么他就会不断达到一个个设定的目标,并变得成熟起来,否则可能会 盲目发展,离自己的目标越来越远,甚至南辕北辙。评估组织软件能力的发 酉亩窒道盔堂亟盟窒生堂僮迨塞篁! 亟 展也同样需要良好的指引,c m m 正是这样一个指引,它以几十年产品质量 概念和软件行业的经验教训为基础,为组织软件能力不断走向成熟提供了有 效的帮助。 3 4 实施s e lc m m 的组织保证 在实施c m m 的过程中,组织保证工作是非常重要的,是一切活动开展 的基础。尽管c m m 在制定软件过程实施中本着尽量不和具体的组织机构及 组织形式相联系的原则,为的是能提供一个独立于具体组织而又具有广泛指 导意义的模型框架。但在实施各种软件过程的各种关键实践中,不可避免的 要涉及到角色和组织机构。所以为了使c m m 能够适用于各种级别和各种规 模的组织,s e i 提出了一个相对抽象的组织机构,它与组织、项目、人员( 角 色) 相关联,具有自己特定的术语,而且可能不同于其它组织所用的名词。 角色的构成 在现实生活中,角色通常是指演员扮演的剧中人物,也可以指某人在某 个事件中所起的作用。c m m 对角色的定义也源于这个含义,通常一个角色 是一项已定义的职责,它可能安排给一个或多个人。c m m 的主要角色有: 经理( m a n a g e r ) 、各级经理、领导( 1 e a d e r ) 、职员( s t a f f ) 、个人( i n d i v i d u a l ) 等。 组织机构的划分 在c m m 中组织机构有明确的划分、工作范围和各自的目标。组织 ( o r g a n i z a t i o n ) ,通常是指一个公司或其它实体内的一个单位。项目 ( p r o j e c t ) ,是一项要求共同努力的任务,其目标是开发和( 或) 维护一个具 体的产品。产品可以包括硬件、软件和其它成分。组( g r o u p ) ,在一个组织 里,组是日常实践中实际存在的,由专门指定人员组成的,而有的小组则是 为了完成某一项工作而由兼职人员组成的。但组在任何组织进行任何个项 目时,都是必须的。 在理解了有关组织、项目和组的基本概念后,下面介绍在c m m 中涉及 的工作小组。软件工程组( s o f t w a r ee n g i n e e r i n gg r o u p ) :负责一个项目的软 件开发和维护活动( 即需求分析、设计、编码和测试) 的团体。软件相关组 ( s o f t w a r er e l a t e dg r o u p s ) :代表一种软件工程科目的团体,它支持但不直 亘亘窑道丕堂亟班塞圭堂焦迨塞箜1 2 亟 接负责软件开发和维护工作。如:软件质量保证组、软件配置管理组、软件 工程过程组。软件工程过程组( s o f t w a r e e n g i n e e r i n gp r o c e s sg r o u p ) :是由 专家组成的组,他们推进组织所采用的软件过程的定义、维护和改进工作。 系统工程组( s y s t e me n g i n e e r i n gg r o u p ) :是负责下列工作的个人的团体,它 规定系统需求:将系统需求分配给硬件、软件和其它成分;规定硬件、软件 和其它成分的界面;以及监控这些成分的设计和开发以保证它们符合其规格 说明。系统测试组( s y s t e m t e s tg r o u p ) :是一些负责策划和完成独立的软件 系统测试的团体,测试的目的是为了确定软件产品是否满足对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论