




已阅读5页,还剩53页未读, 继续免费阅读
(计算机应用技术专业论文)基于开源软件的软件开发过程管理研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 在软件生产领域,广大软件企业对实施软件工程指导软件开发的重要作用已 经达成了普遍的共识。软件工程是一种层次化的技术,它的实施应该包含一个过 程,一组方法和一系列的工具的支持。其中,软件开发过程是软件工程实施的根 基。如何提高软件开发过程的成熟度,对软件工程实施的效果和软件项目最终的 成败将起到关键的作用。 为了提高软件开发过程的成熟度,除了要对具体开发技术和开发过程本身进 行研究和改进以外,对软件开发过程管理的研究与应用也是必不可少的一个的环 节。开发过程管理贯穿于软件生命周期的每一个阶段,它通过需求管理、变更 缺陷管理、测试管理、项目管理、配置管理等方面内容将软件开发过程的各个方 面管理起来,最终达到以下目的:监督、规范和控制开发过程,提高软件质量; 配置现有资源,提高生产效率,降低开发成本;搜集、度量项目数据,为过程制 定执行计划:克服缺陷、变更等因素带来的影响,减少风险;使开发人员从无意 义的工作中脱离出来,更好的发挥创新能力,从而使先进的技术、方法得到充分 的应用。 现实中,软件开发过程管理的实施离不开相关工具的支持。目前,商业化工 具已经能对过程管理提供良好的集成化支撑。但是,昂贵的价格使其难以在中小 企业中推广、应用。为了解决成本问题和迫切的应用需求之间的矛盾,本文提出 了基于开源软件的软件开发过程管理研究。通过对支持过程管理的开源软件进行 调研、选型,本文搭建了一个类似商业化工具集的开源支撑平台。但是,通过实 际应用发现该平台存在着不能进行集成化管理的问题,该问题正是开源平台与商 业化工具之间的主要差距。 为了解决上述问题,本文研究、设计了具体的解决方案,并根据现实需要设 计了三个基于开源平台的集成应用模型。然后,通过归纳、分析开源工具的特性, 决定选取w e bs e r v i c e 和b p e l 作为集成应用的具体实现技术。接下来,为了利 用w e bs e r v i c e 在应用集成方面的优势,本文设计了对开源软件进行改造的实施 方案,并通过实现对m a n t i s 工具的改造,达到对改造方案的验证。最后,本文 以前面改造的开源服务为基础,以一个抽象的集成实例为实验对象,通过b p e l 流程编排,完成了该集成实例所对应的新服务的实现,达到对整个集成应用解决 方案的验证。文章的结论部分对本文研究内容的现实意义与技术进步进行了总 结,并对未来的研究工作进行了展望。 关键词开源软件;软件开发过程管理;w e b 服务;b p e l a b s t r a c t a b s t r a c t i nt h ef i e l do fs o f t w a r ep r o d u c t i o n ,t h em a j o r i t yo fs o f t w a r ec o m p a n i e sh a s r e c o g n i z e dt h ei m p o r t a n c eo ft h es o f t w a r ee n g i n e e r i n gi m p l e m e n t a t i o n s o f t w a r e e n g i n e e r i n gh a st h r e el a y e r s :ap r o c e s s ,as e to fm e t h o d sa n das e r i e so ft o o l s s o f t w a r ed e v e l o p m e n tp r o c e s si st h ef o u n d a t i o no ft h ei m p l e m e n t a t i o no fs o f t w a r e e n g i n e e r i n g h o wt oi m p r o v et h em a t u r i t yo fs o f t w a r ed e v e l o p m e n tp r o c e s si s i m p o r t a n tt ot h ee f f e c to fs o f t w a r ee n g i n e e r i n gi m p l e m e n t a t i o na n dt h eu l t i m a t e s u c c e s so fs o f t w a r ep r o j e c t s i no r d e rt oi m p r o v et h em a t u r i t yo fs o f t w a r ed e v e l o p m e n tp r o c e s s ,w en e e dt o r e s e a r c hn o to n l yh o wt oi m p r o v et h et e c h n o l o g ya n dd e v e l o p m e n tp r o c e s s ,b u ta l s o a p p l ys o f t w a r ep r o c e s sm a n a g e m e n t s o f t w a r ep r o c e s sm a n a g e m e n te x i s t s i nt h e w h o l ep r o c e s so ft h es o f t w a r el i f ec y c l e i tm a n a g e sa l la s p e c t so ft h es o f t w a r e d e v e l o p m e n tp r o c e s sb yu s i n gd e m a n dm a n a g e m e n t ,c h a n g e b u gm a n a g e m e n t ,t e s t m a n a g e m e n t ,p r o j e c tm a n a g e m e n t ,c o n f i g u r a t i o nm a n a g e m e n te t e b yd o i n gt h e s e m a n a g e m e n t ,w ec a na c h i e v et h e s ef o l l o w i n go b j e c t i v e s :f i r s t ,w ec a nr e g u l a t ea n d c o n t r o lt h ed e v e l o p m e n tp r o c e s st oi m p r o v es o f t w a r eq u a l i t y , s e c o n d ,w ec a nc o l l e c t a n dm e a s u r ep r o j e c td a t af o rt h ep r o c e s st od e v e l o pa l li m p l e m e n t a t i o np l a n ;t h i r d ,w e c a na l l o c a t i o no fe x i s t i n gr e s o u r c e s ,i m p r o v ep r o d u c t i v i t ya n dr e d u c ed e v e l o p m e n t c o s t ;f o r t h ,w ec a no v e r c o m et h es h o r t c o m i n g s ,t h ec h a n g e sb r o u g h ta b o u tb ys u c h f a c t o r sa st h ei m p a c to fr i s kr e d u c t i o n ;a tl a s t ,i tm a k e sd e v e l o p e r so u to f m e a n i n g l e s s w o r k ,p l a ya b e t t e ra b i l i t yt oi n n o v a t e ,s ot h a tf u l la p p l i c a t i o no fa d v a n c e dt e c h n o l o g y , m e t h o d s i nr e a l i t y ,w en e e dt o o l st os u p p o r tt h es o f t w a r ep r o c e s sm a n a g e m e n t a tp r e s e n t , t h ec o m m e r c i a ls e to ft o o l sh a sb e e na b l et op r o v i d eg o o ds u p p o r tf o rp r o c e s s m a n a g e m e n t b u tt h ee x p e n s i v ep r i c em a k ei td i f f i c u l tt op r o m o t ea n da p p l yi ns m a l l a n dm e d i u m s i z e dc o m p a n i e s i no r d e rt os o l v et h ec o n t r a d i c t i o nb e t w e e nt h ec o s t i s s u e sa n dt h eu r g e n c yd e m a n do fa p p l i c a t i o n ,t h i sp a p e rs t u d i e dt h es o f t w a r e d e v e l o p m e n tp r o c e s sm a n a g e m e n tb a s e do no p e ns o u r c es o f t w a r e i nt h i sp a p e r , w e w i l ls t u d yt h eo p e ns o u r c es o f t w a r ew h i c hc a nb eu s e dt os u p p o r ts o f t w a r ep r o c e s s m a n a g e m e n t t h e n ,w eb u i l dap l a t f o r mb a s e do nt h e s eo p e ns o u r c es o f t w a r e i nt h e p r a c t i c a la p p l i c a t i o no ft h ep l a t f o r m ,w ef o u n dap r o b l e m t h ep r o b l e mi st h ep l a t f o r m c a nn o tb ei n t e g r a t e da p p l i c a t i o na sc o m m e r c i a lt o o l s a n dt h i si st h em o s ti m p o r t a n t g a pb e t w e e nt h e m w es e to u tt h es p e c i f i cp r o g r a mt os o l v et h ea b o v ep r o b l e m ,a n dd e s i g no ft h r e e i i i 北京f :业人学i j 学硕十学位论文 i n t e g r a t e da p p l i c a t i o n sm o d e lb a s e do no p e ns o u r c es o f t w a r e a n dw ed e c i d et os e l e c t w e bs e r v i c ea n db p e la st h es o l v i n gt e c h n i c a lt ot h ep r o b l e m t h e n w ed e s i g n e d t h ep r o g r a mt om o d i f i e do p e n s o u r c es o f t w a r et ow e bs e r v i c e a n dv e r i f yt h e p r o g r a mb ym o d i f y i n gao p e n s o u r c es o f t w a r ew h i c h sn a m ei s m a n t i s a tl a s t ,w e u s e db p e lt oa c h i e v ean e ws e r v i c eb a s e do ns e r v i c e sw h i c hw em o d i f i e df r o m o p e n s 0 1 t r e es o f t w a r e i nt h ec o n c l u s i o no ft h ep a p e r , w es u m m a r i z e dt h ep r a c t i c a l s i g n i f i c a n c ea n dt e c h n o l o g i c a lp r o g r e s s ,p o i n t e do u tt h es h o r t c o m i n g sa n dt h ef u t u r e w o r k k e y w o r d so p e n s o u r c es o f t w a r e ;s o f t - w a r ep r o c e s sm a n a g e m e n t ;w e bs e r v i c e ; b p e l : i v 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 关于论文使用授权的说明 2 0 0 9 5 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:缁:丝 导师签名:同期:星q q 旦! 墨 第1 章绪论 1 1 研究背景与意义 第1 章绪论 随着计算机应用的迅速推广,计算机程序的日益复杂,软件开发过程中出现 了越来越多难以解决的问题。例如:不切实际的项目规划;需求分析不充分;不 断增加的需求变更;软件测试不充分、不完善;产品的错误越来越多;经费、工 期得不到有效控制等【l 】。在软件开发过程中,最关键的问题是软件开发组织不能 很好地定义和管理其软件生产过程,从而使一些优秀的开发方法和技术起不到预 期的作用。 解决软件开发过程中诸多问题的途径是在软件开发组织内实施软件工程。软 件工程是利用工程学角度来研究并指导软件开发,利用严格的工程技术使软件开 发形成科学的生产体系。软件工程的实施,可以使软件开发组织更好的利用先进 的技术和方法,高效的开发出高质量的软件。 软件工程是一种层次化的技术,它的实施应该包含一个过程,一组方法和一 系列的工具的支持。其中,软件开发过程是软件工程的根基,是软件工程中最重 要的一层级。具体来说,软件开发过程是一个将用户的需求转化为软件系统的活 动集合。它是一个通用的过程框架,是一种用来创建软件项目的模版。当前存在 很多适应于不同规模、领域和方法的软件开发过程,如轻量级过程s p 、x p ,重量 级过程r u p 等。选择一个合适的开发过程对于一个软件项目是否成功起着重要 的作用。值得注意的是,软件开发过程并不是一成不变的,而是在持续改进的, 并且通过持续的改进达到更加成熟的层级。软件能力成熟度模型( c m m ) 是对软件 开发能力成熟度的一种有效的评估标准。【2 】 美国卡内基梅隆大学软件工程研究所于1 9 8 7 年提出并设计了软件能力成熟 度模型。该模型用于将软件开发组织的开发能力进行分等级的定义,是对软件工 程实施效果的有效的考核。c m m 模型按照软件组织的开发能力分为五个递进的 等级。其重要思想是帮助一个组织通过基于模型的软件过程改进而达到使其开发 能力向更高的能力成熟度等级迈进的目标。在这个过程中一个组织先建立自己的 软件过程,并依据c m m 模型要求对此过程进行评估,针对评估结果来进一步改 进自己的软件过程,再次评估自己的软件过程以期达到更高的成熟度等级。如此 循环最终使一个组织的软件过程能力趋于高度的成熟。同时,客户在选择其项目 的开发商时可以依据其达到的c m m 等级来判断该组织的开发能力以及其是否 符合自己对于此项目的时间进度,资金控制,质量标准等方面的要求,从而选择 合适的开发商。因此,软件开发组织通过c m m 认证的级别越高,就越容易获得 用户的信任,在国内、国际市场上的竞争力也就越科l 引。 一1 一 北京州k 人学l :羊硕十学位论文 在提升软件,f :发过程的成熟度的各方面工作中,软件丌发过程管理是十分关 键的一个环节。它将软件开发过程的各个方面管理起来,使先进的技术、方法得 到充分的应用;使丌发人员从复杂、繁琐和无意义的维护、管理工作中脱离出来, 更好的发挥创新能力;同时软件过程管理还在提高软件质量、规范和控制开发过 程、降低开发成本、提高生产率和减少风险等方面发挥重要作用。因此,要提升 软件开发过程的成熟度,除了对开发技术、开发流程本身的研究以外,对软件开 发过程的管理的研究也必不可少。 c m m 只负责评价一个软件组织的丌发能力,并没有提供改进软件过程能力 的具体方法和技术。所以,现实中还需要有一套过程改进的方法、技术和工具, 来改善开发组织的软件开发过程能力。软件组织需要借助相应工具的支持,才能 很好的完成软件开发过程管理的实施,进而提高自身的软件开发成熟度。通过有 利的工具可以使软件开发过程的实施更加的高效和规范,提高自身的软件开发成 熟度,保证软件开发的质量,并使本企业顺利通过更高级别的c m m 认证,提升 软件组织自身的市场竞争能力。 目前,国际上比较成熟的软件开发过程管理实施方案是i b m 公司设计的, 并由该公司所提供的r a t i o n a l 工具集进行有效的支持。r a t i o n a l 工具集主要由两 个部分组成,第一部分是负责支持软件开发活动的工具集( 包括软件的设计、实 现和测试等) ,第二部分是负责支持过程管理活动的工具集。通过这两个方面工 具的应用,将极大的提高了软件组织的开发能力,并帮助其通过c m m 认证。 虽然商业化工具有很多优点,但也有其不可避免的问题,它们是以大型软件 企业为基础的,购买价格相对昂贵,在国内中小企业应用和学校教学实践中难以 推广、应用。这为国内中小企业和学校实践教学中实施软件开发过程管理带来很 大阻碍。因此,国内中小企业的应用和学校教学实践中对于管理工具的选择处于 一个两难的境地,一方面是现实应用的迫切需要,另一方面是商业化工具带来的 巨大的成本问题。 值得庆幸的是:大量的开源软件的出现,为我们使用开源软件来实施软件开 发过程管理提供了可能。鉴于软件开发过程管理的重要作用,以及通过商业化工 具支持管理实施存在的成本问题,本文提出了基于开源软件的软件开发过程管理 的研究。研究将以丰富的开源软件作为研究的基础,以支持软件开发过程管理的 实施作为最终的目标,旨在对开源软件的综合应用进行有益尝试,并对相应的技 术问题进行研究、解决,最终能够使开源软件满足现实中的应用需要。 - 2 - 第1 章绪论 1 2 研究的主要内容 本文首先针对支持软件开发过程管理实施的开源软件进行调研、选型,选取 了一个较为优秀的组合方案,并以这些开源工具为功能基础搭建了一个过程管理 的开源支撑平台。然后,对开源支撑平台存在的问题进行了研究,总结了开源平 台相对于商业化平台的主要差距。接下来,针对开源管理平台存在的不能集成化 应用的问题进行了研究,提出了本文的解决方案,并设计了相应的集成应用模型。 最后,研究、设计如何应用现有技术实现前面设计的解决方案,并通过具体实例 进行了可行性验证。 1 3 论文的组织结构 论文的章节安排主要包括如下的几个部分: 第一章,绪论。该章概要介绍了本论文研究的背景和现状分析,并说明了论 文的组织结构与主要内容。 第二章,软件开发过程管理概述。该章对软件开发过程管理的概念进行了描 述,同时分析了软件开发过程管理对软件开发成熟度的重要作用,然后介绍了软 件开发过程管理的主要内容。 第三章,软件开发过程管理相关工具研究。该章介绍了支持软件开发过程管 理的相关工具的概况。接着,分析商业化工具对软件开发过程管理的支持。然后, 对支持软件开发过程管理需要用到的开源工具进行调研和选择。通过对比商业化 工具的特点,分析了开源软件在应用当中的实际意义,并总结存在的问题与不足。 第四章,开源的过程管理平台构建方案研究。该章首先搭建了一个基于开源 软件的过程管理支撑平台。然后根据第三章中总结的应用开源软件存在的问题, 提出了相应的解决方案。最后,设计了三个基于开源支撑平台的集成应用模型。 第五章,开源的集成化过程管理平台设计与实践。该章以实现第四章中的集 成应用模型为目的,设计了一个基于w e bs e r v i c e 和b p e l 的对开源软件集成应 用的实现流程,并通过相应的实践工作完成了对实现流程的验证。 最后部分,结论。结论部分总结了本文的现实意义与技术进步,并概述了研 究中还存在的问题与未来工作的开展方向。 - 3 - 第2 章软件开发过程管珲概述 第2 章软件开发过程管理概述 开发过程管理贯穿于软件生命周期的每一个阶段,它通过需求管理、变更 缺陷管理、测试管理、项目管理、配置管理等方面内容将软件开发过程的各个方 面管理起来,以达到最大限度的提高软件产品的质量与软件开发过程的生产率的 目的。本章将首先介绍软件开发过程管理与软件过程、c m m 成熟度模型的关系。 然后分析过程管理在完善软件开发过程中发挥的重要作用。最后,对软件开发过 程管理的几个主要方面进行概要的介绍。 2 1 软件开发过程管理 r 、 ( 项目规划) h 、一一, ,j l 、 软 ( 、j 蓬坌堑净 件 ( 蘸 开 发 ( 递堕) 过 程 厂一j 。一、 l 型门 噬d e 过 程 ( 项目管理需求管理变更、缺陷管理配置管理测试管理 ) 管 理 图2 - 1 软件开发过程与过程管理间关系 f i g u r e2 - lt h er e l a t i o n s h i pb e t w e e ns o f t w a r ep r o c e s sa n dp r o c e s sm a n a g e m e n t 软件开发过程是软件工程的基础,是软件工程中最重要的一层级。具体来说, 软件开发过程是一个将用户的需求转化为软件产品的活动集合,它是一个通用的 过程框架,是一种用来实现软件产品的模型。软件开发过程的一般化流程应该包 括:项目规划、需求分析、软件设计、编码实现、软件测试、发布维护等方面。 在完善软件开发过程所要进行的工作中,除了要对以上这个一般化流程的相关技 术进行研究和改进以外,对软件开发过程管理的研究与应用也是一个十分必要的 环节。软件开发过程管理主要应该包括需求管理、变更与缺陷管理、测试管理、 - 5 - 北京川k 人学i :学硕十学付论文 项甘管理、配置管理等方面内犁4 5 。图2 1 显示了软件丌发过程管理与软件开发 一般化流程之间的密切关系。 软件开发过程管理除了和刀二发过程本身有着密切的关系,同时,与软件能力 成熟度模型( c m m ) 也同样有着密切的关系。c m m 是目前国际上流行、实用 的软件开发过程标准和软件企业成熟度等级认证标准。它是一种用于评价软件承 包能力并帮助其改善软件质量的方法,其目的是帮助软件企业对软件工程过程进 行管理和改进,增强开发与改进能力,从而能按时地、不超预算地丌发出高质量 的软件。c m m 为软件企业的过程能力提供了一个阶梯式的改进框架,它基于过 去所有软件工程过程改进的成果,吸取了以往软件工程的经验教训,提供了一个 基于过程改进的框架,它指明了一个软件组织在软件开发方面需要管理哪些主要 工作、这些工作之间的关系、以及以怎样的先后次序,一步一步的做好这些工作 而使软件组织走向成熟。c m m 定义的递进式的五个等级是:一级为初始级,二 级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。其中初始级 是混沌的软件过程,可重复级是经过训练的软件过程,定义级是标准一致的软件 过程,管理级是可预测的软件过程,优化级是能持续改善的软件过程。 软件开发过程管理的实施内容与c m m 模型二级的关键过程域有着很多的 相同之处,图2 2 显示了它们之间的关系: 图2 2 软什开发过程管理与c m m 2 级间关系 f i g u r e2 - 2t h er e l a t i o n s h i pb e t w e e ns o f t w a r ep r o c e s sm a n a g e m e n ta n dc m m 2 - 6 - 第2 章软什开发过稃管理概述 2 2 软件开发过程管理的重要作用 软件开发过程具有很大的特殊性、复杂性,同时也存在着诸多的问题,下面 对软件开发过程的特殊性和存在问题进行概述: 首先,由于软件开发的特殊性,软件开发过程管理不同于其它工程管理, 它对提高软件产品的质量和提高组织软件开发能力具有更为重要的意 义。因为软件是一种逻辑产品,与物质产品有很大区别。软件具有无形 性,是依靠人的脑力劳动形成的一个知识产品。在软件开发的整个过程 中,工程进展情况都较难衡量,开发质量也难以评价,因此软件开发过 程管理对软件开发控制有着十分重要的作用。 其次,由于软件开发的复杂性,在软件行业高速发展的今天,软件开发 不再是软件开发人员的个人行为而是团队行为,软件产品的开发涉及到 方方面面的人员,历经多个环节,产生大量的中间产品。这些因素综合 起来,就使软件开发过程变得复杂和难以控制,直接或间接地导致了软 件危机的发生。 最后,软件开发过程是一种智力密集型的活动,创新是软件开发的灵魂, 然而为了保证软件项目的成功进行,软件过程中充斥着繁琐的重复劳 动,如文档的开发及维护,版本与变更的控制,工时与进度的跟踪与汇 报等。这些活动不仅要耗费大量的时间与精力,而且容易出错,并可能 直接影响项目产品的交付,甚至导致项目的失败。 鉴于以上几点原因,在软件开发过程中,过程管理起到了十分重要的作用。 软件开发过程管理的目的就是最大限度的提高软件产品的质量与软件开发过程 的生产率。软件开发过程管理将贯穿于软件开发过程生命周期的每一个阶段,负 责为过程和执行制定计划,帮助软件过程建立质量方针、配置资源,对过程的特 性和表现进行度量、搜集数据,负责开发过程的项目管理、质量管理等【6 ,7 1 。有 效地实施软件开发过程管理,可以克服不稳定因素带来的不利影响,减少软件开 发中的风险;充分地发挥现有资源的效用,提高生产效率,降低开发成本;对软 件开发过程本身提供监督、控制,同时促进软件开发的高质量、高效率【8 】。 此外,通过软件开发过程管理的有效实施,还可以帮助软件开发企业顺利的 通过c m m 2 级认证,从而对本企业的开发能力进行量化的评价,增加企业的业 内竞争力。 - 7 - 北京l 业人学l :学硕十学位论文 2 3 软件开发过程管理的主要内容 软件开发过程管理主要包括项目管理、需求管理、缺陷变更管理、测试管 理、配置管理等几个方面工作,下面对软件开发过程管理的五个主要方面的管理 内容和功能分别进行简要的说明: 项目管理:软件项目管理是为了使软件项目能够按照预定的成本、进度、 质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理 的活动。项目管理的目的是使软件整个生命周期都能在管理者的控制之 下,以预定成本按期、按质的完成软件交付用户使用。软件项目管理的 内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计 划,风险管理,软件质量保证,软件过程能力评估,软件资源配置管理 等。 需求管理:需求管理【9 】是一种获取、组织并记录软件需求的系统化方案, 同时也是一个使客户与项目团队对不断变更的软件需求达成并保持一 致的过程。需求管真的很苗条啊,不错理的目的是在客户和处理客户需 求的软件项目组之间建立对客户需求的共同理解。具体来说,软件需 求管理的目标有两个:一是使软件需求受控,并建立供软件开发和过程 管理使用的基本需求文档:二是使软件计划、产品和活动与软件需求保 持一致。需求管理主要负责对需求获取、需求分析、需求规格定制、需 求验证和需求变更五个方面的内容进行管理。 变更觖陷管理:软件中的缺陷是软件开发过程中的”副产品”,对现在复 杂的软件产品和软件开发过程而言缺陷的产生是难以避免的。通常,缺 陷会导致软件产品在某种程度上不能满足用户的需要,并最终可能导致 软件产品开发的最终失败【1 0 , 1 1 】。因此,每一个软件组织都知道必须妥善 处理软件中的缺陷。软件缺陷管理的目的就是对软件发过程中出现的缺 陷( 如测试发现的b u g ) 进行有效的管理,确保每一个缺陷都能得到妥 善的处理。此外,缺陷管理还应对缺陷产生的相关数据进行分析,从缺 陷产生的趋势中寻找规律,有针对性的完善软件开发过程中的相关环 节,避免缺陷的重复发生。 o 与软件的缺陷相似,软件开发过程中的需求变更也是个不可避免的问 题,需求变更产生的原因是多方面的最主要的原因有客户对需求内容的 改变或增加和需求分析不完善或不彻底导致的对客户需求的误解两个 方面。【1 2 】需求变更主要会带来三个方面的影响:增加项目的人员、费用 开支,影响开发进度;影响软件质量;影响开发者与用户之问的合作关 系。需求变更管理的目的是对软件开发过程中产生的需求变更进行有效 一8 一 第2 辛软件开发过稃管理概述 的管理,确保每一个变更以及该变更所带来的影响都能得到妥善处理。 最终保证开发的软件产品与客户的现实需求高度一致。 测试管理:软件测试管理是对各阶段的测试计划,测试用例,测试流程, 测试文档等进行跟踪、规划并记录其结果的管理活动【l3 1 。软件的测试管 理包括多方面的内容:测试计划、测试方案、测试实施和缺陷跟踪、测 试总结与报告。就功能应用而言,测试管理分为三部分:测试控制对象 管理、测试流程控制和管理、统计分析和决策支持。 0 配置管理:软件配置管理是软件开发过程管理中的一个关键项目,其目 的是在软件开发的整个生命周期中,保持软件产品的完整性和可追踪 性,这包含了对改变的控制和所有能影响到改变的软件因素的管理【l 射。 软件配置管理主要包括以下内容:版本控制、配置状态报告、配置统计、 变化管理、构造管理和过程支持。 - 9 - 第3 章软件开发过袢管理相关t 具分析 第3 章软件开发过程管理相关工具分析 通过第二章的内容,了解了软件开发过程管理的概念、重要作用和其主要内 容。为了能够有效对软件开发过程的管理进行实施,还需要相关的专业工具来提 供支持,才能保证管理实施的效果,切实的将软件的整个开发过程管理起来。本 章将对支持软件开发过程管理的商业化工具和开源工具进行详细的分析,并在最 后总结应用开源软件支持软件开发过程管理取得的现实意义和存在的相关问题。 3 1 支持软件开发过程管理工具的概况 表3 1 软件开发过程管理层级描述 t a b l e3 一ld i f f e r e n tl e v e l so fs o f t w a r ep r o c e s sm a n a g e m e n t 层级特征优点缺点 以w o r d 文档、简单、易用、实施l 、j 槛低。存在表格数据分 。伍c e e x c e l 表格和散、数据重复、人 工具e x c e l 统计图为主工统计数据问题, 要实现工具。 严重影响了工作效 率。 独立以数据库存储数在局部范围内对数据实现了有效存在专项工具间接 专项 据,以独立的专的管理,在一定程度上提高了工 口不通,数据难以 工具项工具支持各个作效率。共享和难以互操作 功能的实施。的问题。 集成各类专项功各工具界面统一、特征一体化;功能复杂,规模庞 集成化能支持t 具,共录入数据自动关联,数据冗余程 大,价格昂贵。 支撑同构成一个协同度低,避免管理人员陷进数据维 平台工作的集成平 护泥潭;数据共享性和互操作性 台。高;各t 具整体规划,综合集成 本节将对支持软件开发过程管理的工具概况进行介绍。目前支持软件开发过 程管理的工具大致分三个级别,它们分别是: 基于m s o f f i c e 工具级 基于独立的专项工具级 集成化支撑环境级 表3 1 分别对这三个层级的特征和优缺点进行了集中的描述。 一11 北京i :业人学i :学硕卜学何论文 与使用的不同级别的工具相对应,软件丌发过程管理的成熟度也分为三个阶 段:第一阶段,应用文档化工具阶段:第二阶段,应用独立工具阶段:第三阶段,应 用集成化支撑环境阶段。 以r a t i o n a l 工具集为代表的商业化工具已经能实现对软件开发过程管理的 集成化支撑,达到了第三阶段的成熟度。而开源软件对软件开发过程管理的支持 目前还处于第二阶段。下面将分别介绍支持软件开发过程管理的商业化工具和开 源工具的概况。 3 2 商业化工具对开发过程管理的支持 当前有多种商业化工具提供对软件开发过程管理的支持,其中较为成熟、应 用最为广泛、集成应用功能最强大的当属r a t i o n a l 公司提供的团队统一开发平台 工具集。 3 2 1r a tional 对开发过程管理的支持 r a t i o n a l 工具集是i b m 公司推出的c a s e 工具套件的一部分。c a s e 工具套件 除了提供对软件开发过程管理的支持平台以外,还提供了对系统分析、软件设计、 软件开发、软件测试等多个方面应用的实施平台。而这些实施平台共同用以支持 r a t i o n a l 公司制定的统一开发过程( r u p ) 1 5 】。r u p 是当前比较完善的软件开发 过程框架,是对软件开发最佳经验的总结,它包括了软件开发中的六大经验:迭 代式开发;管理需求;使用基于组件的软件体系结构;可视化建模;验证软件质 量;控制软件变更。使用r u p 开发过程框架进行软件项目的开发将会给软件企 业带来以下几点好处: 采用迭代式开发方法有效的消除开发过程中的风险。 采用迭代式开发方法有效的控制和处理需求变更。 开发人员及项目相关人员能够及时地得到反馈信息。 以u s ec a s e 驱动、体系结构为中心使得开发人员比较容易地控制整个系 统的开发过程,维护它的完整性。 r a t i o n a l 公司提供了丰富的c a s e 工具支持r u p 。 r u p 能够帮助软件企业达到c m m 模型的2 级或3 级。 作为c a s e 工具的一部分,团队统一开发平台负责对软件开发过程管理提供 良好支持,该平台主要包括以下几种工具: 需求管理工具一r e q u i s i t e p r o 项目管理工具一p r o j e c tc o n s o l e 一1 2 第3 章软件开发过程管理相关t 具分析 变更缺陷管理工具一c l e a r q u e s t 配置管理工具c l e a r c a s e 测试管理工具t e s tm a n a g e r 该平台针对项目中所有的相关角色提供统一的开发基础设施,用于在贯穿从 需求到发布的整个过程中,管理所有变更、控制软件质量、支持成员间沟通等内 容。通过该平台的使用,将提供统一的开发过程和方法指导,帮助开发组织按照 统一的模式进行协作。总体而言,r a t i o n a l 开发的这个工具集对软件开发过程管 理提供了良好的支持,是本课题基于开源软件的软件开发过程管理研究的参考模 型和研究目标。 3 2 2r a t ;o n ai 当前的发展趋势 r a t i o n a l 工具集未来的新产品将基于j a z z 平台构建。j a z z 是一个技术平台, 而不是一个具体的产品,它是i b mr e s e a r c h 与i b mr a t i o n a l 两个部门联合推广 的一个技术项目,目的是构建一个可扩充、可扩展的团队协作平台,以便无缝整 合软件与系统开发整个生命周期中的各方面工作【i6 。j a z z 技术可以被视为是一 个可扩展的框架,能动态地集成和同步与软件开发项目相关联的人员、流程和资 产,使用它将帮助r a t i o n a l 软件开发、交付工具平台提高到一个新水平。j a z z 平 台主要面向全球化和跨地域开发团队,通过这一全新的平台,地理上分隔的开发 人员将能互相协作,共同构建软件,从而使软件实现与交付变得更加协作化、高 效率和无缝衔接。i b m 希望通过应用j a z z 能使其公司的产品线得到强化,满足 企业在开发软件上的多种需求。j a z z 技术平台主要具有以下两点技术特征: 首先,j a z z 是一个基于b s 架构的技术平台。 然后,j a z z 的服务器端基于s o a 思想进行构建。 通过以上技术的应用,使得该技术平台具有以下三点优势: 高度协作性。因为j a z z 技术平台采用了w e b 2 0 技术,这让实时的信息 发布、信息反馈成为了可能,为团队协作开发搭建了卓越的平台。通过 互联网,分布在世界各地的开发团队成员都可以在j a z z 上了解到开发的 最新进度,发布最新的开发和测试结果,寻求或给予他人帮助。能够跟 踪和管理相关内容之间的关系,推动形成健全的开发流程,同时自动收 集项目信息,提供全生命周期整合能力。 灵活定制性。因为j a z z 技术平台采用了s o a 思想构建服务器端的业务 功能。服务器端为客户端提供的各种逻辑功能都被封装成了自我包含的 服务组件。团队根据各种不同的开发规模与特性,选择基于一定组合的 服务组件,定制复合实际需要的业务流程。 一1 3 - 北京川k 人学i :学硕+ 学位论文 自由选择性。j a z z 技术基于丌放的w e b 和o s g i 标准构建。其可扩 展的,:放架构经过专门设计,能够提供足够的灵活性,使用合适的厂商 的产品和解决方案来组装自己的软件交付平台。j a z z 提供的这种丌放的 架构使得任何人都可以将自己的应用集成到j a z z 中去,或者将j a z z 集 成进来,而不必担心平台的差异性。这将最大程度地汇聚不同开发者的 智慧,让团队协作更加无间隙。 在了解了j a z z 技术平台的技术特征和优点以后,接下来介绍第一个基于 j a z z 技术平台构建的r a t i o n a l 产品工具集一r a t i o n a lt e a mc o n c e r t 。r a t i o n a lt e a m c o n c e r t 为软件交付和团队协作开发提供了软件配置管理、集成的源代码版本控 制、集成的工作项管理以及集成的构建管理,是一个高协作性的软件交付环境, 可以改进软件开发质量并加速软件交付过程,帮助项目团队简化、自动化和监管 软件交付过程,它是对r a t i o n a l 过去的产品的一个延伸和加强。它所采用的 w e b 2 0 技术是该软件的一大特点,也是其最大优势。通过利用这个基于j a z z 平 台的新工具集,开发者之间信息交换更加便捷,能实现在线交流,包括短信和基 于上下文的协作,这样将进一步提高了工作效率,也提升了自动化的水平。此外, 它还具有自动化数据收集能力和报表生成能力,减轻了传统软件交付管理上的过 度管理的问题,并提供了实时的监控能力使得软件项目的监管更加有效,另外动 态的项目配置增强了团队在立项f j 期的生产力,实时协作功能可显著降低资源浪 费和返工。图3 1 显示了r a t i o n a lt e a mc o n c e r t 产品集的大致结构: r a t i o n a l 图3 1r a t i o n a lt e a mc o n c e r t 产品集 f i g u r e3 1p r o d u c ts e to fr a t i o n a lt e a mc o n c e r t - 1 4 - 第3 章软件开发过程管理相关i :具分析 3 3 开源工具对开发过程管理的支持 开源软件是在开放源代码许可证的规范下发布的软件,以保障软件用户自由 使用及接触源代码的权利,同时也保障了用户自行修改、复制以及再分发的权利。 所有公布软件源代码的程序都可以称为开源软件。开源软件有很多特有的优点, 主要包括:可以减少重复劳动,在现有工作基础上发展,更好的质量控制,减少 维护费用等,同时,开源软件比较安全,且具有较高的可靠性和稳定性。最主要 的一点是开源软件是商业化软件的创新和补充,是另一种经营方式,它的出现为 软件业注入了新的活力【1 7 】。所以,开源软件的发展有重要的现实意义,而对开源 软件的综合应用得到了越来越多的重视。 开源资源虽然十分的丰富,但是由于缺乏商业组织的支持,各个开源工具的 质量参差不齐。为了能充分利用现有资源,我们要对软件过程管理各个阶段的开 源工具进行调研、选型。然后,分别对各个阶段的开源工具进行支撑度的分析, 找到能够完成本阶段工作,同时能够与其他软件较好的协同工作的开源软件,通 过测试、比较,找到一种可行的组合方案。利用选取的这些软件,构成我们支撑 平台的功能核心。 针对本文所研究的软件开发过程管理的内容,以r a t i o n a l 工具的分类、组合 的方式和工具的功能内容为调研、选型的标准,选取了以下几种开源工具用以支 持软件开发过程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广安市消防员考试笔试试题(含答案)
- 智能汽车油耗分析软件创新创业项目商业计划书
- 2025年新能源商用车辆市场需求与应用场景下的政策扶持与风险防范报告
- 2025年工业互联网平台边缘计算硬件架构产业投资策略研究报告
- 2025年工业互联网平台边缘计算硬件架构在智能机器人中的应用与优化报告
- 2025年物联网设备安全漏洞防护策略与技术方案报告
- 2025年社交媒体平台舆情监测与危机公关的社交媒体营销策略创新
- 2025年工业机器人柔性制造系统在电子信息设备回收与再利用中的应用优化研究报告
- 2025年广播影视行业融合发展的政策环境与产业风险防范策略研究
- 民法典知识义务培训课件
- 无人机操控与维护专业教学标准(中等职业教育)2025修订
- 企业运费管理制度
- 2025至2030年中国橄榄苦苷行业市场竞争态势及发展趋向研判报告
- (2025)党校入党积极分子培训结业考试题库与答案
- 合伙买货车合同协议书
- T/CECS 10400-2024固废基胶凝材料
- T/BMPA 0001-2023再生水供用双方协商价格行为指南
- 《电生理治疗室速失常》课件
- 2024年高级养老护理员职业鉴定考试题库大全-下(多选、判断题)
- 【班风学风】《走进高二筑梦高考》高二开学第一课主题班会
- 食品合规管理中级 课件 上篇 第二章 食品合规标法义务及监管
评论
0/150
提交评论