已阅读5页,还剩81页未读, 继续免费阅读
(计算机科学与技术专业论文)支持分布式协同开发的软件配置管理系统研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着网络技术发展和软件项目规模不断增大,异地分散网络化软件开发格局 逐渐形成,软件分布式开发的需求越来越迫切。软件配置管理是c m m l 2 级中的一 个关键过程域,维护软件开发过程中软件产品的完整性和可追踪性,是软件过程 管理的核心。但多数软件配置管理工具仅支持集中式软件开发模式,并不能很好 的支持异地丌发,这给企业进行分布式软件开发活动带来了许多困难与不便。 本文在大连市科学技术基金计划项目的支持下,对分布式软件开发模式下的 软件配置管理活动进行了研究。首先本文对分布式软件开发模式进行分析,总结 出企业在从事分布式软件开发活动中普遍存在的问题及相应的解决办法。其次, 对软件配胃管理的方法原理及其关键活动进行了研究和阐述。然后,针对分布式 软件丌发的特点并结合软件配置管理的方法理论,对支持分布式协同开发的软件 配置管理原型系统进行设计和实现。通过整合各地分散的配置库,构建了星型分 布式软件配置库体系格局,采用本地同步协同与异地异步协同相结合的协同模式, 便于提高开发效率和进行变更控制。系统通过项目管理、用户管理、基线管理、 审核管理四大功能模块协同各开发团队进行项目管理和软件配置管理,通过版本 管理实现各地的代码协同管理。该系统的可行性与应用价值在科技企业综合服务 管理平台项目中得到了很好的验证。 本文利刚软件配置管理方法和理论,结合分布式软件开发的特点,实现了跨 地域进行软件配置管理活动的目的,满足分布式软件开发的市场需求,并在科技 企业综合服务管理平台项目开发过程中得到了实践,应用效果良好。该原型系统 适应分布式软件开发市场需求,有广泛的应用价值,特别适合资会不足的中小型 软件企业,对增强企业的分布式软件开发能力具有十分重要的意义。 关键词:分布式;协同;软件配置管理;c s c w ;c m m i 英文摘要 a b s t r a c t w i t ht h ed e v e l o p m e n to fn e t w o r kt e c h n o l o g i e sa n ds o f t w a r es i z e s ,t h ed i s p e r s e d n e t w o r kp a t t e mo fs o f t w a r ed e v e l o p m e n tg r a d u a l l yf o r m e d ,a n dt h en e e do fs o f t w a r e d i s t r i b u t e de x p l o i t a t i o ni sb e c o m i n gu r g e n t s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n ti sa k e yp r o c e s sa r e ao fc m m l 2l e v e l ,w h i c hh e l p st om a n a g et h es o f t w a r ep r o d u c ta n d m a k e st h ep r o d u c tt r a c e a b l e s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n ti st h ec o r ep r o c e s so f t h es o f t w a r ep r o c e s sm a n a g e m e n t h o w e v e r ,m o s ts o f t w a r ec o n f i g u r a t i o nm a n a g e m e n t t o o l so n l ys u p p o r tt h ec e n t r a l i z e dm o d e lo fs o f t w a r ed e v e l o p m e n ta n dd on o td ow e l li n s u p p o r t i n gt h ed i s t r i b u t e ds o f t w a r ee x p l o i t a t i o n ,w h i c hb r i n g sm a n yd i f f i c u l t i e sa n d i n c o n v e n i e n c et os o f t w a r ee x p l o i t a t i o n b yt h es u p p o r to fd a l i a ns c i e n c ea n dt e c h n o l o g yf u n d ,t h i sp a p e rm a k e ss o m e r e s e a r c ho na c t i v i t i e so fs o f t w a r e c o n f i g u r a t i o nm a n a g e m e n tu n d e rt h em o d e lo f d i s t r i b u t e ds o f t w a r e d e v e l o p m e n t f i r s t o fa l l ,t h e p a p e ra n a l y z e s t h em o d e lo f d i s t r i b u t e ds o f t w a r ed e v e l o p m e n t ,a n ds u m m a r i z e sd i f f i c u l t i e sa n dp r o b l e m so f e n t e r p r i s e sw h i c he n g a g e di nd i s t r i b u t e ds o f t w a r ed e v e l o p m e n ta c t i v i t i e s ,a n dg i v e s c o r r e s p o n d i n gs o l u t i o no ft h e s ep r o b l e m s s e c o n d l y ,t h ep a p e re x p o u n d sm e t h o d sa n d k e ya c t i v i t i e s o f s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n t t h e n ,i na l l u s i o nt ot h e c h a r a c t e r i s t i c so fd i s t r i b u t e ds o f t w a r ed e v e l o p m e n t ,a n dc o m b i n i n gw i t ht h em e t h o do f s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n tt h e o r y ,t h ep a p e rd e s i g n sa n dr e a l i z e st h ep r o t o t y p e s o f t w a r eo fs o f t w a r e c o n f i g u r a t i o nm a n a g e m e n ts y s t e ms u p p o r t i n g d i s t r i b u t e d c o l l a b o r a t i o nd e v e l o p m e n t b yi n t e g r a t i n gt h es c a t t e r e dc o n f i g u r a t i o nd a t a b a s eo f d i f f e r e n t p l a c e s ,t h ep a p e rb u i l d s s t a rd i s t r i b u t e ds o f t w a r ec o n f i g u r a t i o nd a t a b a s e s y s t e mp a t t e m c o m b i n i n gl o c a ls y n c h r o n o u ss y n e r g ya n d r e m o t ea s y n c h r o n o u s s y n e r g ym o d e lt oi m p r o v ee f f i c i e n c ya n dm a k ec h a n g ec o n t r o le a s i e r b yu s i n gp r o j e c t m a n a g e m e n tm o d u l e ,u s e rm a n a g e m e n tm o d u l e ,b a s e l i n em a n a g e m e n tm o d u l e ,a u d i t m a n a g e m e n tm o d u l ea n de d i t i o nm a n a g e m e n tm o d u l et h es y s t e mc a nh e l pd i s t r i b u t e d t e a m st om a n a g ep r o j e c t ,s o f t w a r ec o n f i g u r a t i o na n dc o d em a n a g e m e n t t h ef e a s i b i l i t y a n dv a l u eo ft h i ss y s t e mh a sb e e ng o o dt e s t e di nt h ep r o j e c to fs c i e n c ea n d t e c h n o l o g y e n t e r p r i s ei n t e g r a t e ds e r v i c em a n a g e m e n tp l a t f o r m b yu s i n gm e t h o d sa n dt h e o r yo fs o f t w a r ec o n f i g u r a t i o nm a n a g e m e n ta n d c o m b i n e s t h ec h a r a c t e r i s t i c so fd i s t r i b u t e ds o f t w a r ed e v e l o p m e n t ,t h es y s t e mc a nc a r r yt h r o u g ht h e 英文摘要 s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n ta c t i v i t i e sb e t w e e nd i f f e r e n ta r e a sa n dm e e tt h e m a r k e td e m a n do fd i s t r i b u t e ds o f t w a r ee x p l o i t a t i o n ,a n da p p l i e si ns c i e n c ea n d t e c h n o l o g ye n t e r p r i s ei n t e g r a t e ds e r v i c em a n a g e m e n tp l a t f o r mp r o j e c td e v e l o p m e n t ,t h e c o u r s eo fp r a c t i c eh a v eb e e na p p l i e dw e l l t h ep r o t o t y p es y s t e ma d a p t st ot h em a r k e t d e m a n do fd i s t r i b u t e ds o f t w a r ee x p l o i t a t i o n ,a n dh a sb r o a dv a l u e ,e s p e c i a l l ys u i t ss m a l l a n dm e d i u m s i z e ds o f t w a r ec o m p a n i e sw h i c hh a sn o te n o u g hf u n d s ,a n dh a sg r e a t s i g n i f i c a n c et oe n h a n c et h ec a p a c i t yo ft h ed i s t r i b u t e ds o f t w a r ed e v e l o p m e n t k e yw o r d s :d i s t r i b u t e d ;c o l l a b o r a t i v e ;s o f t w a r ec o n f i g u r a t i o nm a n a g e m e n t ; c s c w :c m m i 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果,撰写成 硕:仁学位论文= = 塞控坌查述边圃筮的邀鲑配置笪堡丕统婴盔:。除论文中已经注 明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以明确方式标 明。本论文中不包含任何未加明确注明的其他个人或集体已经公开发表或未公开发表的 成果。本声明的法律责任由本人承担。 学位论文作者签名:煳 学位论文版权使用授权书 本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学位论文 的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论文的复印件和 电了版,允许论文被查阅和借阅。本人授权大连海事大学可以将本学位论文的全部或部 分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学 化沦文。同意将本学位论文收录到中国优秀博硕士学位论文全文数据库( 中国学术 期f :u ( 光盘版) 电子杂志社) 、中国学位论文全文数据库( 中国科学技术信息研究 所) 等数掘库中,并以电子出版物形式出版发行和提供信息服务。保密的论文在解密后 遵0 :此规定。 不保密( 请在以上方框内打“,) 论文作者躲经凋导师繇瀚 日期:年 月日 支持分布式协同开发的软件配置管理系统研究 第1 章绪论 1 1 课题背景及意义 全球化的市场竞争环境迫使软件企业采取与之相应的产品丌发模式,由于许 多人型软件丌发活动已从单机走向网络,从集中走向分布,由独占走向共享,由 孤:菠走向协同。随着这种趋势的不断发展,企业意识到分布式软件丌发与协同工 作的重要性,在加强开发能力的同时也更注重异地分工合作与团队问协作方面能 力的强化,进而适应市场需求,获取更多的商业机遇。与此趋势相适应,协同工 作在分布式软件开发过程中变得越来越重要,协同工作是为解决各种复杂的问题, 或完成各种大规模任务的一种重要和有效的工作方式,它是通过一个团队中多个 成员的芪旧努力和合作,最终解决问题完成任务的工作方式。其核心内容是与其 他工具一道,在一个协作环境中,完成处理和组织软件项目及项目组成单元,跟 踪内容变动及支持并行协同歼发,支持协同目标的建立等功能。凶此协同产品,f : 发足分布式软件产品设计与丌发领域的必然发展趋势。本文设计的支持分布式协 同丌发的软件配置管理系统正是实现了在分布式开发环境下协同各开发团队进行 软件配置管理活动的目的。 随着现代网络技术的发展,软件产品和项目规模不断增大,软件开发环境同 趋复杂化,开发过程的管理和控制已经成为开发成功与否的关键。加强软件的丌 发管理,通过管理跟踪和控制软件开发活动,建立规范化的软件开发环境,已成 为软件产业化的必要条件。如今,软件开发组织已经意识到软件配置管理技术在 软件开发管理过程中的核心地位,软件配置管理环境及其工具越来越得到人们的 重视t 2 3 1 0 与此同时,迫于同行业的市场压力和用户的压力,软件开发质量是行业 竞争能力提高的关键,采用i s 0 9 0 0 0 质量认证并遵循s e ic m m ( s o f t w a r e e n g i n e e r i n gi n s t i t u t ec a p a b i l i t ym a t u r i t ym o d e l ) ,即软件工程研究所能力成熟度模型 来改进软件丌发过程和软件开发管理。把最初混乱的开发过程过渡到可重复、可 管理的有序化过程,进而上升到更高的成熟度水平,软件配置管理起到关键的作 用。软件配置管理是c m m i 可重复级的一个关键过程域( k e y p r o c e s s a r e a ,k p a ) , 其目的是在整个项目的软件生命周期中,保持软件产品的完整性和可追踪性,包 含对改变的控制和所有能影响到改变的软件因素的管理。作为过程实现、过程优 第1 章绪论 化的一部分,配置管理是实现软件过程的基本保证,是基于重用的软件开发的管 理手段,是软件过程管理的核心【。 软件配置管理是通过管理和跟踪开发过程中的历史变更,追踪丌发过程中危 害软件质量及影响开发周期的缺陷和变化,使维护和升级得到可靠的保证,而且 更有助于保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资川报。 软件配置管理的目的是在整个项目的软件生存周期内,建立和维护软件项目产品 的完整性。软件配置管理包括在给定时间点上及时地标识软件的配置,系统地控 制对配置的更改,并在整个软件生存周期中维护配置的完整性和可跟踪性。置于 软件配置管理之下的工作产品包括交付给客户的软件产品,以及与这些软件产品 一同标识的或为产生这些软件产品所要求的产品项。 本文是依托大连市科学技术基金计划项目“分布式软件丌发过程控制支持系 统提出的。通过学习研究其中的软件配置管理部分,并分析总结目前常用的几 种软件配置管理工具的优缺点,主要针对配置管理工具在支持分布式软件开发方 面存在的问题和不足之处,设计实现一个能支持分布式软件开发团队进行软件配 置管理活动的原型系统即支持分布式协同开发的软件配置管理系统( s o f t w a r e c o n f i g u r a t i o nm a n a g e m e n ts y s t e mt od i s t r i b u t e dc o l l a b o r a t i v ed e v e l o p m e n t ,简称 s c m s d c d ) 。该原型系统可将分散在各地的项目开发团队的软件配罱管理工作协 同起来,便于整个项目的管理、任务分配和进度控制,团队间及时共享丌发成果, 利于项目开发和系统的集成,提高分布式软件开发效率。 1 2 国内外研究现状 随着软件项目规模的同益增大,软件团队人员的增加,项目复杂性的不断加 剧,软件版本不断变化以及多平台开发环境的采用,使得软件开发面临越米越多 的问题,其中包括对当前多种产品的开发和维护、保证产品版本的精确( 版本管 理) 、重建先前发布的产品、加强开发策略的统一和对特殊版本需求的处理等,这 些问题必须采用各种管理措施和手段,而这些措施和手段也必须要有依据和可度 量的方法,这就是软件配置管理的核心内容7 1 。 软件配置管理是软件开发实施规范化、标准化、工程化的重要管理手段,是 开发高标准、高可靠性软件的有效保证。西方发达国家的现代化企业,特别足高 支持分布式协同开发的软件配置管理系统研究 科技产业,很注重软件配置管理工作,因为这是保证其科研、生产有序进行并持 续发展的因素之一,也是其能否被选中为供应商的重要因素之一。经过多年的积 累,各企业已有成熟而完整的软件配置管理体系和一整套行之有效的可操作程序。 为满足企业对软件配置管理现代化的要求,仅在美国就有好几家公司丌发软件配 置管理工具软件,并已有多种商业配置管理工具软件在市面上销售。 随着软件配置管理的重要性逐渐被普遍的认识到,国内一些研究机构也已经 对配置管理进行了自主研发。例如北大软件工程研究所研究的基于构件的配置管 理并开发了相应的软件配置管理系统j b c m ,华中理工大学对配置管理系统的研究 并门:发软件配胃管理系统h s c m s 等。尽管目前软件配置管理的应用已经趋向成 熟,但还有很多问题还待解决: r a t i o n a l 公司是全球最大的软件c a s e 工具提供商,已被i b m 收购,它丌发 的配置管理工具c l e a rc a s e 深受国内外大型的软件开发公司喜欢,是目前功能最完 备的跨平台的大型企业级软件配置管理工具。但是架构庞大、价格昂贵,不是每 家公司都用得起的,买个客户端用户许可证大约需要花费几千美金,并且对使用 者有很高的知识背景要求,不是很容易掌握,很难在短时间内达到好的效果,因 此在国内c l e a r c a s e 的应用群体有限,对于很多资金不是很充足的中小企业是消费 不起的。美国h a n s k y 公司的软件开发管理套件中f i r e f l y 是不错的软件配置管理软 件,它可高效地对程序代码和相关文档进行有效管理,利于维护整个企业的软件 资产。并且支持不同的操作系统和多种集成开发环境。f i r e f l y 是基于客户机服务 器体系结构,并提供s e r v e r s y n c 模块,支持异地开发。c v s 是开放源码组织维护 的软件,在l i n u x 平台尤其有广泛的应用,完全免费,但缺乏技术支持。s u b v e r s i o n , 是基于c v s 的新版本控制系统,在与其他工具的整合、性价比、可扩展性方面有 了很好的完善。但使用界面还是纯英文版,给使用者带来一定不便,支持多国语 言还需要一个过程。m e r a n 公司的p v c s 能够提供基本的软件配置管理支持,能基 本满足小型项目开发的配置管理需求,但是性能不是很好。m i c r o s o f t 公司的 v s s ( v i s u a ls o u r c es a f e ) 是微软v i s u a ls t u d i o 配套开发的小型版本控制软件,它实 现了与v i s u a ls t u d i o 的完美集成,使用也很简单,只是不支持跨平台,只支持 w i n d o w s 平台,也不支持并行开发和异地开发。 第1 章绪论 如何建立一个能在软件开发周期中针对分布式软件开发过程中软件配置管理 出现的问题跨地区实现协调与管理的系统,本文决定借助c s c w ( 计算机支持的 协调工作) 设计思想,实现分布式软件开发的协同设计。c s c w 是指利用计算机 技术、多媒体技术或网络通讯技术,支持工作群体成员在共享环境下的协同工作、 交互协商、分工合作,共同完成设计任务。c s c w 支持多个时间上分离、空| 日j 上 分布,而工作又互相依赖的协作成员的协同工作。在异地分布的网络环境下,设 计人员并行协作地参与同一产品的设计、开发与测试过程,可以最大限度地缩短 产品开发周期2 1 。 i n t e m e t 的快速发展为分布式应用带来了许多超越传统c s 架构的交吐模式和 方法,在分布式协调工作环境中得到了广泛的应用,目前协同工作环境主要还是面 向制造业的协同设计需要,国内外几乎所有的著名大学如加州大学b e r k l e y 分校、 大阪大学、清华大学、浙大等都在开展这方面的研究,i e e e 则每年召开一次协同 设计国际会议( c s c w d ) 交流这一领域的成果。a n d e r s o n 等人1 3 i 】对大规模产晶丌 发下的产品族协同设计方面进行了研究。1 9 9 9 年h u a n g 等人【2 8 1 提出了基于a g e n t 工作流管理的协同产品开发及相关技术。2 0 0 0 年r e z a y a t f 2 9 】利用x m l 和k c s 方法 进行了基于知识的产品协同开发方法的研究。n i d a m a r t h i 等人【3 0 j 研制的a t s 系统, 利用c o r b a ,j a v a 和v r m l 等技术进行协同产品的设计【1 8 】。随着基于网络环境 的软件丌发活动同益增多,许多大型的软件系统开发需要分布很广的丌发人员协 同共同完成,这样的开发活动已经不同于早期的以项目为中心,由一个开发组集 中( 在一个场所) 开发的活动,它更倾向于松散的、自由式的分布丌发活动。相 应的软件系统则表现为大型的分布软件库、分布信息库,被开发者共享、基建【2 】。 目前企业广泛使用的版本控制工具还不能很好的满足这种分布式开发的需要。 软件配置管理是c m m i 中的一个基础构件,包含了业界普遍认可的、行之有 效的最佳实践,然而在该模型中并没有给予如何实施配置管理的指导,只告诉实 施人员在配置管理过程中应该做什么以及一些简单的方法1 2 0 1 ,这给采用该模型进 行软件过程改进、实施配置管理的组织带来了一定的难度。我国一些软件工程软 件和相关企业对配置管理进行了一些研究,而这些研究在很大程度上侧重于理论 研究,缺少与企业的实际相结创1 6 】,如周平提出一种基于c m m i - s w 实施软件配 支持分布式协同开发的软件配置管理系统研究 置管理的方法 2 2 】,该方法对软件配置管理的核心版本控制并未给出具体的实施方 案,缺乏可操作性。基于此类问题,本文设计实现的支持分布式协同开发的软件 配置管理系统( s c m s d c d 系统) ,从异地问协同进行项目管理和代码管理两大方 面来实现分布式软件开发的协同工作,针对软件版本管理模块实现的文件版本控 制与工作区文件的检入检出操作进行了详细的分析设计过程,并给出了功能的具 体实现过程。 本文在详细分析目前分布式软件开发特点的基础上,结合c m m i 可重复级的 关键过程域( k p a ) 软件配置管理来协助企业进行软件开发,帮助企业维护软件产 品的完整性、一致性和可追踪性。系统基于计算机支持的协同工作( c s c w ) 思想, 利用互联网技术,采用b s 结构实现系统架构,针对配置管理在支持分布式协同 开发方面的不足设计并实现了s c m s d c d 系统,为企业进行分布式软件丌发提供 支持。 1 3 论文的主要研究内容 1 3 1 研究目标 本论文的研究目标是结合分布式软件开发的特点,针对软件配置管理工具在 支持异地协同开发方面存在的不足,基于计算机支持的协同工作( c s c w ) 思想, 设计一个能跨平台协同分布式软件开发团队进行软件配置管理活动的系统。 1 3 2 主要研究内容 本论文所研究的主要内容包括以下几方面: 1 ) 研究分布式软件丌发模式,分析分布式软件开发的特点,总结出企业进行 分布式软件开发过程中所面临的问题与挑战,并针对这些问题给出相应的解决方 案与实现方法。 2 ) 研究能力成熟度模型c m m i 及其关键过程域软件配黄管理对软件开发过 程改进的意义与实现原理,并总结目前软件配置管理在支持分布式软件开发方面 存在的不足。采用计算机支持的协同开发c s c w 思想,设计实现基于c s c w 思想 的协同产品分布式协同开发软件配置管理系统。 3 ) 利用分布式配置库模型思想,整合各地分散孤立的配置库,实现星型分布 第1 章绪论 式软件配置库体系结构,解决集中式模式下服务器负荷过重问题。对s c m s d c d 系统的协同模式进行设计,采用本地同步协同与异地间异步协同相结合的设计模 式解决分布式开发过程中的协同问题,有效减少通信的时延,缩短向应时问,缓 解速度瓶颈问题。 4 ) 对原型系统进行设计。针对s c m 在支持分布式软件开发过程中协同管理、 安全管理、异地开发支持等方面存在的问题,提出相应的解决思路与实现方案。 针对各地的开发环境可能各异的情况,设计实现一个能跨平台进行软件配置管理 活动信息交瓦的系统平台。 1 4 论文的组织和结构 本论文共分为六章: 第一章为绪论。详细阐述本论文的选题背景和意义,对国内外的研究现状进 行分析和总结,阐明本文的研究目标和研究内容。 第二章阐述分布式协同软件开发。介绍分布式软件开发的特点和开发过程普 遍存在的问题,引入计算机支持的协同工作( c s c w ) 概念与思想,并介绍分布式 软件产品的特点与意义。 第三章介绍软件配置管理( s c m ) 的方法和理论知识及涉及的相关概念、软 件配置管理的关键活动以及s c m 在软件开发过程中的作用与意义。 第四章针对s c m 在支持分布式软件开发过程中协同管理、安全管理、异地开 发支持等方面存在的问题,提出相应的解决思路与实现方案,进而对支持分布式 协同开发的软件配置管理系统( s c m s d c d ) 的功能进行分析与设计。 第五章对s c m s d c d 系统的实现过程及系统的应用示例进行阐述。 第六章总结本论文的主要工作,对下一阶段的工作提出展望。 支持分布式协同开发的软什配置管理系统研究 第2 章分布式协同软件开发 2 1 分布式软件开发 随着网络技术和软件规模的发展,软件开发不再局限在单个人或者几个人的 团队式丌发上,可以是分布在不同地理位置上多个团队的合作。地域上分布的丌 发是指软件的丌发可以是由分散在同一局域网的丌发人员组成,也可以是由不在 同一地区的团队成员组成,这意味着团队可能分布在同一个城市的不同地点,不 同的城市或者是世界上的不同国家。 2 1 1 分布式软件开发模式 分布式软件开发模式给软件开发带来了许多挑战,但许多公司也发现这样做 有充分的商业理由,包括公司的全球化特征、使用第三方构件、同第三方软件部 门的协作以及公司合并与收购等优势。 为了保证分布式项目的成功开发,需要项目组织人员在项目的组织、沟通以 及技术方面进行合理的安排和协调【引。 下面对分布式软件开发常见的丌发模式进行总结与归纳如下: 一个项目,单一团队:分布式成员。 其凼队成员位于不同的地点并且工作在共享软件构件上。其地点分布的成员 没有组织为一个远程团队,而只是有许多个人在远程( 例如家中) 进行工作。 一个项目,多个团队:共享该项目。 其研发人员由多个在不同地点的开发团队组成。项目成员之间以一种生产者 消费者的关系共享项目资料。消费者不修改生产者未完成提交的项目。 多个项目,多个团队:共享软件构件。 分布在不同地点的多个项目的多个项目团队可以修改同一共享软件构件例如 共享软件、丌发工具、插件等项目间可以共享使用的构件。 2 1 2 分布式开发的团队组织方式 在现实的软件开发过程中,异地分布开发的团队组织方式有很多种。下面对 几种常见的分布式开发组织形式进行介绍和讨论: 第2 章分布式协同软件开发 1 ) 最常见的一种是分布式团队模式。因业务或用户的需求,公司将丌发团队 组织结构分布在几地,几地并行同时进行项目开发,每个团队根据业务需求有针 对性地进行开发。该情况的分布式团队组织结构如图2 1 所示: 图2 1 分布式团队组织结构 f i g 2 1d i s t r i b u t e d t e a mo r g a n i z a t i o ns t r u c t u r e 该组织形式的特点是:每个团队都是一个小型版的项目开发例队,都f j 本地 项目经理,需求分析师,开发人员以及测试人员。同时公司设定项目的总负责人、 总需求分析师、研发人员、测试人员等角色。总项目负责人主要负责各地的沟通 与协调工作,对项目开发进行整体管理和监督。总需求分析师根据收集到的各地 汇报的需求情况和初步的分析结果,进行系统的总体分析与设计。总部丌发人员, 对各地汇总上来的程序代码进行系统集成。总部测试人员,定期对各地汇总上米 的程序代码以及集成系统进行单元测试和集体测试,及时反馈报错信息。 支持分布式协同开发的软件配置管理系统研究 2 ) 另一种组织方式是:现场本地模式。公司将需求分析人员和少部分代码开 发人员安排在o n s i t e 端。绝大部分开发人员、测试人员、需求分析师,系统设计 师和项目经理在o f f - s i t e 端。该情况的现场本地团队组织结构如图2 2 所示: o n s i t e 灸堕 羹匦 匝巫卫 巫 o f f _ s i t e 灸巫 突巫 匝巫卫 匝亟卫 图2 2 现场本地团队组织结构 f i g 2 2o n s i t e o f f - s i t et e a mo r g a n i z a t i o ns t r u c t u r e 该组织方式的特点是:o n s i t e 一端也是常说的现场端,直接与用户进行接触, 进行需求洽谈与商定,必要时需要开发人员有针对性的对一些需求进行开发。 o f f - s i t e 一端指本地开发端,是主要的开发团队所在地,是集中开发的地方。各地 的o n s i t e 端将洽谈好的需求汇总到o f f - s i t e 端,供开发人员也将完成的开发结果 汇总到o f f - s i t e 端,进行系统集成,这种软件开发组织方式也是比较普遍的。 3 ) 还有一种组织方式是:开发测试模式。很多软件开发公司为了提高效率, 缩短丌发时问,将开发人员和测试人员安排在不同地方。该情况的开发测试团队 组织结构如图2 3 所示: 夫惫彻贫厌惫翻贫 第2 章分布式协同软什开发 图2 3 开发测试团队组织结构 f i g 2 3d e v e l o p m e n t t e s tt e a mo r g a n i z a t i o ns t r u c t u r e 这种组织方式的特点是:有很多大型跨国软件开发公司为了提高效率,缩短 开发时间,将丌发人员和测试人员安排在不同地方,一边进行软件开发,另一边 利用时差,进行测试并将测试结果在第二天及时反馈给开发人员进行b u g 修改。 以上提到的三种组织形式是比较常见的,在实际的软件项目开发过程中,根 据需求和项目的实际情况会有多种组织形式。各种组织方式都有其不f 司的适用场 合,然而无论哪种组织形式,它们都有一个共同点,在于注重m i c r o m a n a g e m e n t , 即加强本地团队的项目管理和协调,让开发有序稳步的进行,尽量使本地丌发的 无序紊乱程度降到最低,而不是仅依靠项目总经理一个人同时直接管理两地甚至 几地的活动。所以尽量保证各团队都具有项目协调人、本地项e l 经理、需求分析 师等角色。 2 1 3 分布式开发面临的挑战 利用分布式团队进行软件项目的开发不是简单的任务,分析许多分布式丌发 项目失败的原因,大体总结为三个方面问题【4 】:组织、沟通以及技术方面的问题。 下面针对这三方面进行分析和讨论: 1 组织方面 在分布式开发环境下,由于各地的开发背景不同,导致开发习惯和了l :发方式 存在差异,特别是跨国合作的开发团队还会存在文化差异等问题。这些差异给分 支持分布式协同开发的软件配置管理系统研究 布式丌发工作带来诸多不便。因此,分布在两个或多个地点上的团队之间需要建 立起统一的组织结构,没有这个基础结构,各团队会趋于独立的制定关于架构和 技术方i l j i 的决策,最终使得系统集成变得困难和不可行。即使集成可以进行,由 于设计方面缺乏整体指导,最终用户可以通过系统的观感以及其他的细节看到子 项目之间的边界,导致系统的不一致性。因此为避免并克服以上存在的问题,需 要认真做好组织工作。 组织方面的问题包括项目人事组织问题和系统架构的组织问题。例如团队成 员的划分与分配问题、项目总负责人与各个团队领导人的确认问题、多个团队之 间的关联问题,系统架构管理,技术管理问题等。 2 沟通方面 分布式开发的另一个挑战是沟通。由于软件开发团队在地域上是分开的,沟 通被削弱了。当今通讯技术虽然很发达但是由同一地点工作的人员所建立起的社 区环境的价值是不能低估的,这种价值是异地之间通过通讯技术所无法比拟的, 这种局域环境产生的效应会在同常开发过程中对项目带来直接或问接的影响,如 果团队| 、r j 缺乏沟通交流,将会对项目的整体开发工作带来种种不便,甚至会对整 个项目造成无法挽l u j 的损失。因此为有效减少异地间沟通不便对项目造成的负面 影响,重要的一点是让团队沟通的能力最大化,同时使项目成功所需的团队同常 沟通需求降到最小。 为做到这一点,首先需先做好项目的前期工作,即各个团队在关于系统将如 何工作这一点上必须要有共同的意向,这表现在对系统架构的意见一致性上。实 践证明没有取得系统架构统一而随意将待开发的特性任务分配给位于不同地点的 川队项h 很少会取得成功。正确的做法是项目开发前期先建立一个系统架构,然 后将该架构划分为相互可分别开发的构件,并将每个构件分别给一个位于同一开 发地点的团队。在这种方法中,在架构定义与系统集成器件时沟通渠道必须畅通, 便于团队问交流达成意见的统一;在每个单独构件开发期间,只有在构件接口需 要澄清或者修改的时候团队之间才须进行必要的沟通,其余时问可以阶段性进行 沟通交流。这种方法可以大大提高效率减少不必要的异地沟通成本。 3 技术方面 第2 章分布式协同软件开发 分布式开发涉及两个技术工具:实现技术和开发技术。实现技术是用于创建待 开发系统的技术( 例如开发语言、操作系统、数据库等) 。开发技术是用于建立一 个有效的分布式软件开发环境的技术( 例如s c m 工具,缺陷跟踪工具、编译器以 及集成丌发环境) 。 1 ) 实现技术 在软件系统中使用的技术应该作为系统架构的一部分清晰地进行说明,不l 可 的闭队可能使用不同的技术来开发他们的系统构件,但是这对系统的可用性、易 安装性、易管理性以及观感等方面都会产生重大影响。团队之间,就所使用的技 术和标准达成某种一致是非常重要的。在进行系统架构定义时,除非有充分的使 用不同技术的商业原因,否则应该及早确定用于实现系统的技术,并要求各吲队 采用同一实现技术。 2 1 开发技术 分布式团队需要确定的另一个技术决策是使用怎样的技术来构建和管理系统 的开发。即所谓的开发环境,确定团队将使用的工具和过程。同样除非有充分商 业理由要求使用不同技术,否则应尽早使用一组公共开发技术并且要求普遍使用, 并要确保丌发工具确实能支持分布式开发。 2 1 4 生产者消费者问题模型 由于地域的限制,地域上分散的项目开发团队在系统开发过程中,因需要使 用项目团队共有的构件或需使用其他团队开发的构件,这就存在生产者消费者问 题【4 】下面针对项目开发过程中常见的生产者消费者模型问题进行分析并给出解 决办法。 1 ) 最简单的生产者消费者模型 最简单的生产者消费者模型是基于一个含有两个软件构件的系统,由位于不 同站点的团队开发。一个团队生产该构件,另一个团队使用该构件,并将各团队 的构件产品嵌入到最终的系统中,在这个生产与使用的过程中就存在一个典型的 生产者消费者问题。例如a 地有一个团队a ,b 地有另一个团队b 。b 团队丌发 时需要使用a 团队开发的构件a ,团队b 的开发活动必须等待a 构件生产完毕之 后才能进行,其生产者消费者模型如图2 4 所示: 支持分布式协同开发的软件配置管理系统研究 匝) 圈耐匝) 糯口队 圈 被生产可写的构件 被使用只读的构件 图2 4 生产者消费者模型 f i g 2 4m o d e lo fp r o d u c e r c u s t o m e r 如果一个刀:发站点开发不止一个构件,那么该站点所选择的构件,应该尽量 是内聚的,也应该同在其他站点上开发的构件的耦合度非常低。 2 ) 生产者消费者供应链模型h 1 一个非常大的软件系统可能有数百个构件,可能由不同的第三方供应商或公 司的其他内部团队来提供。其中每个组都可能工作在不同的丌发站点上,开发过 程中也可能存在生产者消费者供应链。例如团队b 使用由团队a 生产的构件a , 团队c 使用由团队b 生产的构件也间接使用团队a 的构件,其生产者消费者供应 链模型如图2 5 所示: 匹口才墨 回寺 圈警 擀口队 构件a 构件b 构件a 构件b 构件c 被生产何写的构件 被使用只读的构件 图2 5 生产者消费者供应链模型 f i g 2 5m o d e lo fp r o d u c e r c u s t o m e rs u p p l yc h a i n 第2 章分布式协同软件开发 生产者消费者问题有效的解决方法是将团队之间的依赖系数最小化,减少各 丌发团队构件之间的耦合度。要实现这一原则就必须有一个好的系统架构,并且 系统必须被划分为构件。架构描述了这些构件及其接口,这些构件被分配给 j 1 队, 团队生产自己的构件并使用其他团队生产好的构件。最后所有的构件都汇总在一 起并集成为最终的软件系统。 从软件配置管理角度来分析解决生产者消费者问题模型,涉及到三个技术l 的问题【4 】: 1 ) 必须能标识一个构件的一个版本。由于构件有多个元素构成,必须选择每个 元素的一个版本并进行标识。这一点可由“构件基线”来管理和控制。 2 ) 必须具有一种机制保证在网络不是很稳定可靠的状态下将一个酬队的构件 可靠并有效地提交给另一个团队。 3 ) 必须尽早确保构件间的同常集成,以减少架构中存在的主要设计错误而造成 的风险。这就要求每个团队应计划生成一条较早的构件基线来实现外部接 口,这条基线实现了该接口但没实现接口背后的所有功能。使用团队可使用 这条基线来进行测试及一些早期的功能。 2 2 分布式协同开发 随着社会需求以及软件行业的不断发展,软件项目规模同益增大,项目的复 杂性不断加剧。许多开发工作都需要地域上分布的团队和成员共同参与完成,此 外由于多平台开发环境的采用,这些情况使得在软件开发过程面临越来越多的问 题,如何管理地域上分布的团队间共同完成的软件项目,协同工作变得越来越醺 要。i n t e m e t 的迅猛发展和广泛普及,特别是以w w w 为代表的信息发布及资源访 问形式的普遍运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国污水处理行业市场现状竞争格局与产业发展前景评估规划报告
- 2026中国物流仓储行业市场供需结构及投资发展评估报告
- 2026太原站客服面试题及答案
- 2026特殊情况面试题及答案
- 2026及未来5年中国去水器不锈钢圈数据监测研究报告
- 2026及未来5年中国剪刀型卧式带锯床数据监测研究报告
- 2026及未来5年中国冻畜肉数据监测研究报告
- 2026事业单位工勤技能-广西-广西医技工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-广东-广东殡葬服务工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-广东-广东兽医防治员三级(高级工)历年参考题库含答案详解3套试卷
- ISO22301-2019业务连续性内审及管理评审全套资料
- 河南省新乡市第二十二中学2023-2024学年九年级上学期10月月考数学试题
- C反应蛋白临床意义课件
- 文学教育与文学类文本阅读北京大学中文系吴晓东课件
- 牛羊布病流行病学调查表
- 外科学教学课件:乳房疾病
- 塔山煤矿综合物探施工设计说明
- 2023年司法考试真题卷二答案及详解
- 2023年公务员体检表
- JJG 596-2012电子式交流电能表
- GB/T 1095-2003平键键槽的剖面尺寸
评论
0/150
提交评论