




已阅读5页,还剩58页未读, 继续免费阅读
(计算机软件与理论专业论文)面向中小企业的软件过程管理与支撑环境.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
独创性声明 y 6 23 7 9 8 本人声明所呈交的学位论文是本人在导师的指导下进行的研究 工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的 内容以外,本论文不包含其他人已发表或撰写的研究成果,也不包含 为获得西北大学或其他教育机构的学位和证书而使用过的材料。与 我一起工作过的同志对本研究所做的贡献已在论文中作了明确地说 明并表示谢意。 学位论文作者签名:2 吐函翅翌签名日期:型年上月旦日 摘要 随着软件的规模越来越大,内容越来越庞杂,先进的软件开发过程和方法成 为软件项目开发成败的关键。通过对国内些中小软件企业的调研,结果显示我 国的软件开发现状十分不容乐观,一些软件开发组织之所以能生产出个别优秀的 软件产品,往往归功于软件开发组的一些杰出个人或小组的努力,而不是通过成 功的软件过程的重复使用,开发组织大都没有总结出经过自身验证的开发方法和 软件过程。因此针对此问题开发面向中小企业的软件过程管理与支撑环境就追在 眉睫。 本文对目前较为流行的几种软件开发过程模型进行了分析和论述,确定最终 以r u p 作为面向中小软件企业的软件开发过程蓝图。同时我们在多种开发工具 中选择了工作流管理系统作为开发支撑环境的软件平台,并分析了利用工作流管 理系统开发流程化r u p 工具( 由于该支撑环境采用r u p 软件过程,以工作流 管理系统为平台,因此也称流程化r u p 工具) 的优越性和可行性。本文重点分 析了国内中小软件企业存在的种种问题,并阐述了针对这些问题该支撑环境的解 决策略。该支撑环境支持以自顶向下和自底向上两种模式实施软件过程改进 ( s p i ) ,提供不同的裁减策略使r u p 适应于各种开发环境,用户可以根据需要对 r u p 中的四种静态元素进行裁减和定制。由于软件过程改进是一个持续的过程, 本文还介绍了该支撑环境如何来支持企业从以往的软件开发中获取经验来不断 的进行过程优化。 该工具能够提高软件业的管理水平,逐步降低软件开发风险,缩短开发时间, 降低软件开发的人力物力成本,提高软件质量。 关键词 软件过程软件过程改进 c m mr u p工作流工作流管理系统 s y n c h r o f l o w 核心工作流 裁减阶段迭代 2 昶作肴、导师耐意 彝全文公寿 a b s t r a c t t h es c a l eo fs o f t w a r ei sm u c hl a r g e ra n dt h ec o n t e n ti s m u c hm o r e n u m e r o u sa n dj u m b l e dt h a nb e f o r e t h e r e f o ra d v a n c e ds o f t w a r ep r o c e s sh a s b e c o m et h ek e yt ot h es u c c e s so fs o f t w a r ep r o j e c t t h r o u g hi n v e s t i g a t i n ga n d s t u d y i n g s o m er e p r e s e n t a t i v e e n t e r p r i s e ,t h e r e s u l ts h o w st h a tt h ec u r r e n t s i t u a t i o no fs o f t w a r e d e v e l o p m e n t i no u r c o u n t r y i sn o t o p t i m i s t i c s o m e s o f t w a r ed e v e l o p m e n t o r g a n i z a t i o nc a np r o d u c eaf e w s u c c e s s f u ls o f t w a r e ,t h e r e a s o no w e st ot h ee n d e a v o ro fs o m e o u t s t a n d i n gi n d i v i d u a la n dg r o u pb u tn o t t or e d u p l i c a t i n gu s i n gs u c c e s s f u ls o f t w a r ep r o c e s s m u l t i t u d i n o u so r g a n i z a t i o n h a v e n ts u m m a r i z e ds o f t w a r e d e v e l o p m e n tm e t h o da n ds o f t w a r ep r o c e s s g o i n gt h r o u g ht e s ta n dv e r i f i c a t i o no ft h e m s e l v e s ,s oi ti se x t r e m e l yu r g e n tt h a t d e v e l o p i n gs o f t w a r ep r o c e s sm a n a g e m e n t a n ds u p p o r t i n ge n v i r o n m e n t f a c i n g t om e d i u ma n ds m a l ls o f t w a r ee n t e r p r i s e s t h i sa r t i c l es t u d i e ss e v e r a lp o p u l a rs o f t w a r ep r o c e s s e s f i n a l l yw es e l e c t r u pa sb l u e p r i n to fs o f t w a r ep r o c e s s a tt h es a m et i m ew es e l e c tw o r k f i o w m a n a g e m e n ts y s t e mf r o mm a n yd e v e l o p m e n t t o o l sa sd e v e l o p m e n tp l a t f o r m t o d e v e l o pt h i ss u p p o r t i n g e n v i r o n m e n t t h i sa r t i c l ea l s o a n a l y s i st h a t i ti s a d v a n t a g e o u s a n df e a s i b l et o d e v e l o pf l o w i n g r u pt o o l u s i n g w o r k f l o w m a n a g e m e n ts y s t e m t h ee m p h a s i so f t h i sa r t i c l ei st oe l a b o r a t ev a r i a b l e s o l v i n gs t r a t e g i e sa i m i n ga tv a r i a b l ep r o b l e m so fm e d i u ma n d s m a l ls o f t w a r e e n t e r p r i s e s t h e t o o l s u p p o r t s 2 p a t i e r n s t o i m p l e m e n t s o f t w a r e p r o c e s s i m p r o v e m e n t - 一o n e i sf r o m t o p t o b o s o m ,o n e i sf r o mb o t t o mt o t o p ,i t p r o v i d e sd i f f e r e n tt a i l o r i n gs t r a t e g i e st oe n a b l er u p t of i td i f f e r e n td e v e l o p i n g e n v i r o n m e n t s u s e rc a nt a i l o r4k i n d so fe l e m e n t so fr u pa c c o r d i n gt op r a c t i c a l r e q u i r e m e n t f o rs o f t w a r ep r o c e s si ss u s t a i n i n g s ot h e a r t i c l ea l s os h o w sh o w t o g e te x p e r i e n c ef r o m f o r m e rs o f t w a r e d e v e l o p i n gt oo p t i m i z e s o f f e w a r e p r o c e s sc o n t i n u o u s l y t h i s s u p p o r t i n g e n v i r o n m e n tc a n h e i g h t e n t h e m a n a g e m e n t l e v e lo f s o f t w a r ei n d u s t r y , r e d u c ed e v e l o p i n gr i s ks t e pb ys t e p s h o r t e nd e v e l o p i n gt i m e c u td o w nd e v e l o p i n gc o s ta n di m p r o v et h eq u a l i t yo fs o f t w a r ed e v e l o p m e n t 3 k e y w o r d s o f t w a r e p r o c e s s s o f t w a r e p r o c e s si m p r o m e n t c m mr u p w o r k f l o ww o r k f i o w m a n a g e m e n ts y s t e ms y n c h r o f l o w c o r ew o r k f l o w t a i l o r i n g p h a s ei t e r a t i o n 4 第一章前言 面向中小企业的软件过程管理与支撑环境项目的开发目的主要是解决国 内众多中小软件企业存在的一些问题。目前国内的中小软件企业在软件项目开发 上普遍存在项目成本得不到控制、软件开发周期过长、软件产品质量得不到保证, 很难在严格的成本和时间控制下开发出质量过硬的软件产品。如果国内中小软件 企业对这一问题得不到良好的解决、发展前途可想而知。 通过对国内一些中小软件企业的调研显示一些软件开发组织之所以能生产 出个别优秀软件产品,往往归功于软件开发组的一些杰出个人或小组的努力,而 不是通过成功的软件过程的重复使用,开发组织大都没有总结出经过自身验证的 开发方法和软件过程。特别是一些中小软件企业忙于f i 常业务,没有时间、人力、 财力等资源去整理和总结。当然导致项目失败的原因有可能源于外部,如产品没 能符合时代发展的需要、或是客户变更需求说明等等。但软件开发过程这个至关 重要的内部因素,对软件的成败起着决定性作用,并且这个内部因素绝对可以控 制。已定义的成熟的软件过程通常输出好的软件产品。而且随着系统越来越复杂 和庞大,这样的过程会越来越重要。面向中小企业的软件过程管理与支撑环境正 是针对这一内部因素开发的软件项目。 目前软件行业内有很多优秀的软件开发过程,如能力成熟度模型( c m m ) 、 敏捷方法( a g i l e ) 、统一软件开发过程( r u p ) 等等。应用这些软件过程模型取得项 目成功的案例不乏其数。但是针对国内中小软件企业,这些软件过程并不全都适 用。如c m m 只给出了评价软件开发能力的标准,但是没有明确指出如何达到这 样的标准,并且实施c m m 需要大量的资源投入,这对于中小企业来说是不切实 际的。而a g i l e 方法对那些需求模糊、规模较小且开发人员素质较高的项目才具 有明显的实用性。因此我们在众多的软件过程模型中采用r u p 作为面向中小企 业的软件过程,因为r u p 作为统一软件过程框架,经过适当的裁减和定制能够 适合于任何的组织类型和项目规模。 软件过程的成功改进除了要有优秀的软件过程模型之外还需要有相应的支 7 撑环境。我们采用工作流管理系统( s y n c h r o f l o w ) 作为开发平台实现软件过程的支 撑环境。工作流管理系统提供了强大的、可视化的建模工具,保证了r u p 中核 心流程的正确描述以及r u p 角色库的正确建立,同时s y n c h r o f l o w 提供的动态 修改功能能够使r u p 得到灵活的裁减和定制以适应不同的环境需求。 针对国内中小企业存在的一些典型问题,该工具给出了相应的解决方案。 该工具以r u p 为蓝图,为企业提供了优秀的软件开发过程模型。同时利用工作 流管理系统实现的该流程化r u p 工具,使r u p 过程和理念得到更好的贯彻和 执行。 r u p 能否真正的适应于特定的企业和项目,关键在于能否对r u p 进行合 理的裁减。针对这一问题,该工具给出了两种裁减策略来支持不同的过程改进模 式。如果企业希望采用自上向下的模式实施软件过程改进,即以标准来规范实践, 则可以采用工具提供的裁减策略,如:瀑布模型裁减策略、原型式模型裁减策略 用户还可以选择能够帮助企业达到c m m 2 级的裁减策略;如果企业希望采用自 底向上的模式实施软件过程改进,即以实践来裁减标准,则可以自己制定裁减策 略,用户可以针对r u p 的四种静态元素( 核心工作流、活动、角色、工件) 进 行裁减以适应特定的环境。 软件过程改进是一个持续优化的过程,因此工具还提供了对软件过程的测 量功能,从软件过程的实施当中搜集并分析数据,为进一步改进软件过程提供依 据。由于软件过程的性能主要体现在两方面:适应性和效率,所以我们主要提供 两种测量模型以测量过程的适应性和过程效率。为了能够正确维护软件开发过程 中产生的大量工件并对其版本进行控制,该工具还提供了o f f i c e 集成工具,解决 了绝大多数工件的维护和版本控制问题。 本文共分六章。第一章前言部分对本文内容进行了整体概述。第二章详细介 绍了统一软件过程r u p ,同时对r u p 本身及其c a s e 工具的优势及弊端进行 了分析。第三章着重介绍实现该支撑环境的软件平台工作流管理系统,并阐 述了使用工作流管理系统开发流程化r u p 工具的优越性与可行性。第四章详细 分析了目前国内中小软件企业面临的问题,并针对这些问题提出相应的解决方 案。第五章介绍系统实现,并以应用案例来说明该支撑环境的实用性和优越性。 第六章结束语部分对全文做了总结并对今后的研究工作做了展望。 9 第二章统一软件开发过程( r u p ) 虽然目前有多种优秀的软件过程可供选择,但是并不是每一种都符合项目 的开发需要,即能够解决国内中小软件企业存在的问题。如c m m 在面对变动和 不确定因素时表现出了不完整性,并且c m m 只是一种评估手段,它无法解决“怎 么做”的问题,通过研究就可发现,除非全盘改革我国的软件研制和管理体制, 要把c m m 原封不动地搬来中国使用是困难的,且绝大多数中小软件企业没有资 源去实施c m m 。再如a g i l e 方法也并不是什么情况下都适用,如果软件需求模 糊、开发人员具有强烈的责任感和积极性并能与用户及时沟通的情况下,a g i l e 方法显得得心应手,但是如果是超过5 0 个人的项目组,同时开发范围被限定, 这种情况下就不适合应用a g i l e 方法了。通过比较研究,最终决定以r u p 作为 蓝图,开发面向国内中小软件企业的过程管理的支撑环境流程化r u p 工具。 2 1 软件过程 软件问题可以归结为软件开发人员面临的将一个软件项目的众多线索综合 在一起的困难。软件开发需要一种受控的工作方式。它需要一个过程来集成软件 开发的许多方面。该过程能对整个开发团队的开发活动进行组织和指导、能指导 单个开发人员和开发团队、规定开发成果是什么、提供监控和衡量一个项目中的 产品和活动的标准。一个定义良好且管理良好的过程是区别成效卓著的项目和不 成功项目之间的重要指标。软件过程就是将用户的需求转化成一个软件系统的一 系列活动的总称。或者说软件过程是实施于软件开发和维护中的阶段、方法、技 术、实践及相关产物( 计划、文档、模型、代码、测试用例和手册等) 的集合。 以下就目前比较成熟,受软件开发人员欢迎的一些软件过程或方法进行简单的介 绍。 能力成熟度模型c m m 卡内基梅隆大学的软件工程研究所的能力成熟度模型( c m m ) 提供了一 种著名的软件流程成熟度基准。c m m 已经成为了许多领域内的流行工具,用 于评估一个组织的软件过程的成熟程度。c m m 描述了一条从临时的、未成熟 i o 的流程向成熟的、规范化的流程演进的途径。c m m 有五个成熟级别:从级别 1 到级别5 ,如图2 1 所示。每个成熟级别由关键流程领域( k e yp r o c e s s a r e a s ,k p a ) 组成,每个k p a 确定一组相关活动。k p a 是划定组织流程成 熟度级别的依据。 图2 1 ,c m m 成熟度级别 级别1 初始级 初始级的软件组织通常缺乏稳定的软件生产环境。软件流程随意性很大。 当有问题出现时,能否解决以及能多好多快的解决完全取决于当时的项目管理 者和团队成员的个人能力。概括而言,在初始级软件组织中,项目的成功与否 不是靠合理有效的软件流程来保证而是靠个人能力来保证的。初始级没有任何 k p a 。 级别2 可重复级 在可重复级别,应建立管理软件项目的策略以及实施这些策略的过程步 骤。新项目的规划和管理是以类似项目的经验为基础的。达到级别2 的目标 就是为了使软件项目的有效管理流程制度化,从而让组织重复在过去的项目中 获得的成功经验。定义软件项目标准后,组织确保这些标准得到不折不扣的执 行。级别2 的k p a 是:需求管理,软件项目规划,软件项目跟踪与勘察,软 件分包管理,软件质量保证,软件配置管理。 级别3 已定义级别 在已定义的级别,开发维护软件的标准流程已做记录,而且这些流程都集 成到一个连贯的整体中。流程用于帮助软件经理和技术人员更有效地执行任 务。组织在建立标准化的软件流程的时候,利用了有效的软件工程的经验和方 法。有一个小组负责组织的软件流程活动。级别3 组织的软件流程能力可以 用标准一致来概括,软件工程和管理活动不仅稳定而且可重复。级别3k p a 是:组织流程重点,组织流程定义,培训计划,综合软件管理,软件产品工程, 组间协作,平级复审。 级别4 受管理级 在整个组织有了一致的流程标准后,不同项目之间就有了可以比较的基 准。在受管理级别,定性的比较可以发展为定量的比较,从而使得人们可以更 加科学、客观的预测软件项目的进度、预算和质量。受管理级组织的风险要远 小于前三级的组织。c m m 第四级的意义更多在于指明了“量化管理”这一改进 方向。第四级的k p a 只有两个,分别是管理类的定量流程管理和工程类的软 件质量管理。 级别5 持续优化级 第五级将重点从“建立”进一步转移到“优化”上,处于该级别的组织已经具 备了自我改进的基础架构和实现系统。尽管组织的内部情况会变化,外部环境 和要求也会不同,但组织都可以在原有的基础上进行可控的流程优化。c m m 第五级的意义更多在于指明了“持续改进”这方向。该级的k p a 包括组织类的 技术改革管理和流程改进管理,以及工程类的缺陷防范。 a g i l e 方法 质量和生产率是软件工程的两个核心目标,这两个目标相互影响相互作 用。在需求和技术不断变化的情况下,除了要求软件满足质量要求之外,对 软件的生产率也提出了很高的要求。针对这一问题,a g i l e 方法应运而生。它 的特点是高度重视软件开发效率,适用于需求模糊或快速变化下的,小型项 目组的开发。在保证软件的质量的前提下,尽量减少过程中的活动和产品。 该方法的核心理念是“适应”和“以人为本”。所谓适应就是以缺陷为驱动的 改进方式,a g i l e 通过快速、短迭代的开发,不断产出和演化可运行软件,及 时与用户沟通并接收反馈,进而使下一版本的软件产品更加符合用户需求。 所谓以人为本就是以人为导向而非以过程为导向,a g i l e 方法提倡努力营造开 发的组织氛围,强调软件开发人员之间的信息交流,调动开发人员的创造性 和积极性。 统软件开发过程r u p 如前言所述“统一过程”不仅仅是一个过程,它是一个通用过程框架,可以 应付种类广泛的软件系统、不同的应用领域、不同的组织类型、不同的性能 水平和不同的项目规模。该方法可以描述为用例驱动、风险驱动、和构架驱 动。关于r u p 本文将在下面进行详细介绍。 除了上述软件过程之外,还有适用于团队开发的t s p ( t e a ms o f t w a r e p r o c e s s ) 、适用于个人开发的p s p ( p e r s o n a ls o f t w a r ep r o c e s s ) ,以及o p e n p r o c e s s 和o o s p ( o b j e c t o r i e n t e ds o f t w a r ep r o c e s s ) 等等。 2 2r u p 分析与介绍 r u p 可以用二维坐标来描述。如图2 - 2 所示 内 窖 组 织 时闫蛆觐 t 图2 - 2 统一软件开发过程 横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结 构,用来描述它的术语主要包括周期( c y c l e ) 、阶段( p h a s e ) 、迭代( i t e r a t i o n ) 和旱 蝻矾秣鼢嚣抽鬣篡意蓑熬嗡 程碑( m i l e s t o n e ) ;纵轴体现开发过程的静态结构,用来描述它的术语主要包括工 作流( w o r k f l o w ) 、工作角色( w o r k e r ) 、活动( a c t i v i t y ) 、工件( a r t i f a c t ) 。 2 2 1 开发过程中的各个阶段和里程碑 r u p 中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始 阶段( i n c e p t i o n ) 、细化阶段( e l a b o r a t i o n ) 、构造阶段( c o n s t r u c t i o n ) 和交付阶段 f t r a n s i t i o n ) 。每个阶段结束于一个主要的里程碑( m a j o rm i l e s t o n e s ) :每个阶段 本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这 个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下 一个阶段。 1 初始阶段 初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到目 的,必须识别所有与系统交互的外部实体。本阶段具有非常重要的意义,在 这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。对于 建立在原有系统基础上的开发项目来讲,初始阶段可能很短。 初始阶段结束时是第一个重要的里程碑:生命周期目标( l i f e c y c l e o b j e c t i v e ) 里程碑。生命周期目标里程碑评价项目基本的生存能力。 2 细化阶段 细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目 计划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统 的基础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功 能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并 准备工具。 细化阶段结束时第二个重要的里程碑:生命周期结构( l i f e c y c l e a r c h i l e c t u r e ) 里程碑。生命周期结构里程碑为系统的结构建立了管理基准并 使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和范 围、结构的选择以及主要风险的解决方案。 3 构造阶段 1 4 在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有 的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在 管理资源及控制运作以优化成本、进度和质量。 构建阶段结束时是第三个重要的里程碑:初始功能, ( i n i t i a lo p e r a t i o n a l ) 里程 碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确 定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为 “b e t a ”版。 4 交付阶段 交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次 迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。在生命周 期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题, 所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。 在交付阶段的终点是第四个里程碑:产品发布( p r o d u c tr e l e a s e ) 里程碑。 此时,要确定目标是否实现,是否应该开始另一个开发周期。 2 2 2r u p 的静态结构 r u p 的核心工作流( c o r ew o r k f l o w s ) r u p 中有9 个核- l , t 作流,分为6 个核心过程工作流( c o r ep r o c e s s w o r k f l o w s ) 年1 3 个核心支持工作流( c o r es u p p o s i n gw o r k f l o w s ) 。尽管6 个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭 代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次 被访问。9 个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重 点和强度重复。 1 商业建模( b u s i n e s sm o d e l i n g ) 商业建模工作流描述了如何为新的e l 标组织开发一个构想,并基于这个 构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。 2 需求( r e q u i r e m e n t s ) 需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一 描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、 文档化;最重要的是理解系统所解决问题的定义和范围。 3 分析和设计( a n a l y s i s & d e s i g n ) 分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健 壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结 果是一个设计模型和一个可选的分析模型。设计模型是源代码的抽象,由 设计类和一些描述组成。设计类被组织成具有良好接e l 的设计包( p a c k a g e ) 和设计子系统( s u b s y s t e m ) ,而描述则体现了类的对象如何协同工作以实现 用例的功能。 设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结 构视图是整个设计的抽象和简化,该视图中省略了一些细节,使重要的特 点体现得更加清晰。体系结构不仅仅是良好设计模型的承载媒介,而且在 系统的开发中能提高被创建模型的质量。 4 实现( i m p l e m e n t a t i o n ) 实现工作流的目的包括以层次化的子系统形式定义代码的组织结构; 以组件的形式( 源文件、二进制文件、可执行文件) 实现类和对象;将开 发出的组件作为单元进行测试以及集成由单个开发者( 或小组) 所产生的 结果,使其成为可执行的系统。 5 测试( t e s t ) 测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集 成,检验所有的需求已被正确的实现,识别并确认缺陷在软件部署之前被 提出并处理。r u p 提出了迭代的方法,意味着在整个项目中进行测试, 从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本。测试类似于 三维模型,分别从可靠性、功能性和系统性能来进行。 6 部署( d e p l o y m e n t ) 部署工作流的目的是成功的生成版本并将软件分发给最终用户。部署 工作流描述了那些与最终用户相关的活动,包括:软件打包、生成软件本 身以外的产品、安装软件、为用户提供帮助。在有些情况下,还可能包括 计划和进行b e t a 测试版、移植现有的软件和数据以及正式验收。 7 配置和变更管理( c o n f i g u r a t i o n & c h a n g em a n a g e m e n t ) 配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量 的产物。配置和变更管理工作流提供了准则来跟踪软件创建过程中的版 本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。 同时也阐述了对产品修改原因、时间、人员保持审计记录。 8 项目管理( p r o j e c tm a n a g e m e n t ) 软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约 束并成功交付使用户满意的产品。其目标包括:为项目的管理提供框架, 为计划、人员配备、执行和监控项目提供实用的准则,为管理风险提供框 架等。 9 环境( e n v i r o n m e n t ) 环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和 工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发 项目规范的活动,提供了逐步的指导手册并介绍了如何在组织中实现过 程。 r u p 的角色 角色是抽象的职责定义,它定义的是所执行的一组活动和所拥有的一 组工件。角色通常由一个人或作为团队相互协作的多个人来实现。项目团 队成员通常要履行许多不同的角色职能:就象一个人可以担任许多职务, 一个人也可以担任许多不同的角色。角色并不代表个人,而是说明个人在 业务中应该如何表现以及他们应该承担的责任。虽然大多数角色都由组织 内部人员来实现,但开发组织之外的人员也担当了一种重要的角色:所开 发的项目或产品的涉众。 角色有一组互相联系的活动需要执行。这些活动密切相关,在功能上 互相补充,所以最好由同一个人来执行。 按职责划分r u p 角色可以分为以下五个角色集: 1 分析员角色集:用于组织主要从事需求获取和研究的各种角色。 2 开发人员角色集:用于组织主要从事软件设计与开发的各种角色。 3 测试人员角色集:用于组织主要从事软件测试的各种角色。 4 。 经理角色集:用于组织主要从事软件工程流程管理与配置的各种角 色。 5 其他角色集:用于组织主要从事项目支持或负责其他职能的各种角 色。 r u p 的活动 角色从事活动,活动是参与项目的角色为提供符合要求的结果而进行 的工作。项活动是一个工作单元,由参与项目的某一成员执行,活动有 明确的目的,其内容通常表述为创建或更新某些工件,例如一个模型、一 个类或一个计划。每个活动都被分配给具体的角色。一个活动一般延续几 个小时到几天,它通常涉及个角色,只影响一个或少数几个工件。一项 活动应该是一个便于实施的计划单元及流程单元。如果活动太小,它将被 忽略:而如果活动太大,则不得不将活动分解描述。有时可能要对同一工 件重复进行多次活动,特别是当由同一角色( 但不一定是同一个人) 从一 次迭代到另一次迭代、对系统进行改进和扩展的时候更是如此。 r u p 的工件 工件是项目期间生成并使用的最终或中间产物。工件用于获取和传达 项目信息。工件可以是以下的任何一种: 1 文档,如商业理由或软件构架文档 2 模型,如用例模型或设计模型 3 模型元素,即模型中的元素,如类或子系统 为使整个软件系统的开发易于管理,工件根据核心工作流程组织成各 个集合。有些工件在若干核心工作流程中都要用到( 例如: 风险列表、 软件构架文档和迭代计划) 。这些工件属于最初生成它们的核心工作流 程。 2 3r u p 工具及应用r u p 的成功案例 2 3 1r u p 工具 r u p 是r a t i o n a l 公司开发并维护的软件过程产品,是一个面向对象软件 工程的通用流程。r u p 是由o b j e c t o r y 过程演化而来,先后经历了5 1 、5 1 1 、 5 5 等版本直到最新的r u p 2 0 0 0 版本。 r u p 5 1 是r a t i o n a lo b j e c t o r yp r o c e s s4 ,1 的后继版本,增加了业务建模 工作流程;配置与变更管理工作流程从项目管理中分离出来;扩充了需求工作流 程、分析设计工作流程、测试工作流程等。发布版5 1 1 是对发布版5 1 的递 增式改进,补充了有关开发实时或高并行度系统的内容;对树形浏览器中内容的 组织方式进行了改进等。发布版5 5 是发布版5 1 1 的后继版本,重新设计了 核心工作流程:扩充了“工作流程明细”:新增和更新了一些相关模板等。发布版 2 0 0 0 又是发布版55 的后继版本,进一步对各个流程和主题进行了更新和优 化。 r u p 的大部分开发过程都提供自动化的支持工具。它们被用来创建和维护 软件开发过程可视化建模、编程、测试等各种各样的产物,特别是模型。r u p 是可配置的过程,r u p 既适用小的开发团队,也适合大型开发机构。r u p 建 立简洁和清晰的过程结构为开发过程提供通用性并且它可以变更以容纳不同的 情况。它还包含了开发工具包,为配置适应特定组织机构的开发过程提供了支持。 以下是r u p 所支持的部分c a s e 工具: 需求管理收集、管理及传达变更的软件需求和系统需求。主要的 r a t i o n a l 工具是r a t i o n a lr e q u i s i t e p r o 。帮助团队组织系统和应用程序的 变更请求、确定这些变更请求的优先级并对其进行跟踪和控制。 可视化建模生成一个反映软件应用程序、构件、接口和它们之间关系 的图形化的设计图,便于理解和交流。主要r a t i o n a l t 具是r a t i o n a l r o s e 。r a t i o n a lr o s e 是使用统一建模语言( u m l ) 进行图形构件建模和 开发的工具。 软件质量和测试自动化一提供集成化编程和测试工具来简化构件的创 建,并代替昂贵、冗长且容易出错的手工测试,从而在较短的时间内, 在风险已降低的情况下生成更高质量的应用程序。主要r a t i o n a l i 具有: r a t i o n a ls u i t et e s t s t u d i o 和r a t i o n a ls u i t ep e f f o r m a n c e s t u d i o 等。 软件配置与变更管理在创建、修改、构建和交付软件的过程中,控制 团队的日常开发。主要r a t i o n a l 工_ 具有:r a t i o n a lc l e a r c a s e 、r a t i o n a l c l e a r q u e s t 等。 软件流程自动化为软件经理和开发人员就如何开发有商业竞争力的 软件资产提供指导。主要的r a t i o n a l 产品有r a t i o n a ls o d a 等。r a t i o n a l s o d a 提供了自动生成软件文档的功能。 定制流程工具包一r a t i o n a lu n i f i e dp r o c e s s 是一个通用且全面的流程, 可供各种软件开发组织利用发挥。在许多环境下,这个软件工程流程需 要修改、调整、扩展和定制,以适应采用此流程的组织的特有的特征、 约束和历史。环境工作流程告诉您如何着手定制一个新的软件开发流程, 并在您的组织中实施。对定制作出的有关决定记录在每个项目的开发案 例中。如果您希望改变r a t i o n a lu n i f i e dp r o c e s s w e b 页以反映定制内 容,本产品中还提供了开发工具包。该工具包包括工具向导、工具和实 用程序,用于创建开发案例、项目w e b 节点、安装模板和修改r a t i o n a l u n i f i e dp r o c e s s 。 2 3 2 应用r u p 的成功案例 以下是应用r u p 取得项目成功的的典型案例:v o l v o i t 利用r u p 实施软件 过程改进。 v o l v ol t 是a bv o l v o 蝴,是一个拥有4 3 0 0 名员工的跨国的l t 公司。和其它的 i t 产业一样,v o l v oi t 面临着新的挑战,如: v ,软件产品与业务的集成度变得越来越高,因此软件开发过程必须与业务 过程集成起来。 业务的变化速度越来越快。 此v o l v ol t 必须提高生产率以适应新的和变 化着的需求。 客户希望得到全方位的解决方案。这导致越来越多的项目要在分布的环 境下完成。 因此v o l v oi t 需要一个全新的软件过程应付这些挑战,该过程: 使软件项目有定义良好的业务需求作为输入。 能够及时交付质量更好的软件产品。 缩短软件产品第一版本的生产时间。 降低维护成本并提高软件的可维护性。 是一个通用的软件过程。 v o l v ol t 也是对多个软件过程进行了评估,最终决定选择r u p 作为通用的 软件开发过程。v o l v oi t 启动了一个项目专用于实施r u p ,项目的名字是 m a p s ( m e t h o d s a n dp r o c e s sf o rs y s t e md e v e l o p m e n t ) 。由于过程的改变意味 着企业文化的改变,企业的员工们需要改变他们以往看问题和想问题的方式,因 此为使过程顺利转型,v o l v oi t 采用的是分阶段的实施方式。开始他们将r u p 应 用在一些规模较小、人员较少的项目中,借助从这些项目中获取的经验,在进一 步将r u p 应用在一些规模较大的项目中,以保证项目的成功。m a p s 为保证r u p 成功实施,有以下一些关键角色起着至关重要的作用: r u p 指导( r u p c o a c h ) r u p t 旨导的长期目标就是在其负责的范围内支持r u p 的使用,为项 目成员提供实际的帮助。 r u p 专家( r u ps p e c i a l i s t ) r u p 专家的职责包括开发和改进r u p 资源,如v o l v oi t 的r u p 配置、 模版、指南等。同时还负责协助r u p 指导支持项目开发。 协调者( c o o r d i n a t o r ) 协调者的职责是在其负责的范围内计划、管理并监控过程、方法、工 具的使用,协调各种过程实施活动。同时,协调者应参与到项目当中监控 r u p 的使用和实施效果。 企业为了实施r u p 投入了大量的人力和成本,因此为了正确的评价r u p 所带来的成效,企业采用s p i c e , s ( s o f t w a r ep r o c e s si m p r o v e m e n ta n d c a p a b i l i t yd e t e r m i n a t i o n ) a 如图2 3 所示: 图2 3 s p i c e 框架 注:从上图可以看出s p i c e 在很大程度上与c m m 十分类似,但是s p i c e 与c m m 各级别的评价评价标准不尽相同。 实际表明r u p 在v o l v ol t 取得了成功,企业的员工都切实感受到了r u p 所带来的成效。再采用了r u p 之后,企业的软件开发能力有了大幅度的提高: 需求、分析、设计、构建和项目管理过程都达到 s p i c e 2 级。有证据表明从 s p i c e l 级过渡至t j s p i c e 2 级意味着: 缩短1 7 的开发时间 减少4 6 的努力 降低5 1 的缺陷 评价结果清楚地显示实施r u p 带来了切实的成效,同时企业还有巨大的潜力 在今后继续使用r u p 的过程中不断提高企业的软件开发能力。 r a t i o n a l 为我们提供的统一软件开发过程r u p 和相应的软件过程中的自动 化c a s e 3 :具为众多的软件企业和软件开发人员提供了极大的帮助,从大量的成 功案例中可以看到,r u p 使我们从结构化的生产时代迈向了以过程为中心的时 代,迈向了工业化生产的时代,软件的质量得到保证,开发成本得到控制,开发 效率得以提高。但是我们也发现,众多应用r u p 取得成功的组织都是一些开发经 验丰富、开发人员素质较高且有应用其他的软件过程的经验的一些大型企业,而 我们的项目针对的对象是国内中小软件企业,这些企业的项目本身规模不大、经 验不是分丰富、并且没有主动向以过程为中心转型的主观意识,同时企业更不会 花费大量的资金和时间组织员工参与系统化的r u p 培训。因此目前r a t i o n a l 提供 的文档化的r u p 2 0 0 0 ,以及一些没有自动集成的c a s e i 具仍然不能满足我们的 要求,我们有必要去开发以r u p 为蓝本的自动化的流程化的软件过程支撑环境为 国内中小企业提供支持,帮助他们顺利转型。 第三章利用工作流管理系统开发软件过程支撑环境 在上一章我们分析研究了r u p 的文档式支持工具和r u p 的一些相关 c a s e 工具,证明了针对国内中小软件企业要解决其面临的实际问题,我们必须 研究开发一种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏南京白下人力资源开发服务有限公司招聘劳务派遣人员2人(二十四)考前自测高频考点模拟试题附答案详解(模拟题)
- 2025湖南长沙市望城区招聘事业单位人员31人模拟试卷附答案详解(突破训练)
- 公务员行测逻辑判断基础知识-保证合同7篇
- 岩土证考试题库及答案
- 教师编制考试题库及答案
- 保安安全考试题库及答案
- 2025年锅炉司炉考试题及答案
- 2025年贵州省遵义市公需课培训(专业技术人员继续教育)试题及答案
- 2025年贵州省安顺市辅警招聘考试题库及答案
- 火柴人数学考试题及答案
- TSCS 000013-2021 碳化硼-碳化硅芯块 无机阴离子(F-、Cl-、Br-、I-)的测定 离子色谱法
- GB/T 6426-1999铁电陶瓷材料电滞回线的准静态测试方法
- GB/T 14846-2014铝及铝合金挤压型材尺寸偏差
- 广西版建筑装饰装修工程消耗量定额说明及计算规则
- GA/T 594-2006保安服务操作规程与质量控制
- 髋关节解剖资料课件
- 坚持男女平等基本国策(妇联培训)课件
- 颅脑外伤(共61张PPT)
- 人教版《生命.生态.安全》六年级上册全册教案
- 矿种代码与规模分类表
- 2022版义务教育语文课程标准解读之核心素养与课程目标PPT
评论
0/150
提交评论