(计算机软件与理论专业论文)基于网络的软件配置管理方法研究和应用.pdf_第1页
(计算机软件与理论专业论文)基于网络的软件配置管理方法研究和应用.pdf_第2页
(计算机软件与理论专业论文)基于网络的软件配置管理方法研究和应用.pdf_第3页
(计算机软件与理论专业论文)基于网络的软件配置管理方法研究和应用.pdf_第4页
(计算机软件与理论专业论文)基于网络的软件配置管理方法研究和应用.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机软件与理论专业论文)基于网络的软件配置管理方法研究和应用.pdf.pdf 免费下载

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

文档简介

y 6547 46 基于网络的软件配置管理方法研究和应用 计算机软件与理论专业 研究生万永刚指导教师洪玫 软件配置管理( s c m s o f l 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 ) 是指通过技 术及行政手段对大型软件产品的团队开发进行控制、规范的一系列方法、工具 和过程。它通过标识、记录、控制、跟踪等方式对软件的开发环境,包括工具、 资料、软件,以及软件开发产生的文档、数据、程序等进行管理和控制,并有 效记录软件开发历史,以保证协同软件开发的效率和最终软件产品的正确性和 可靠性。 软件配置管理是软件开发,尤其是大型软件开发必不可少的管理手段,也 是软件质量保障的重要措施。软件配置管理是i s 0 9 0 0 1 和c m m 、c m m i 中的 重要组成元素,它是一种标识、组织和控制修改的技术,目的是使软件开发受 控、软件错误可跟踪,并最有效地提高生产效率,它在软件产品开发的生命周 期中提供了结构化的、有序化的、产品化的管理软件项目的方法,是软件开发 和维护的基础。 目前大型软件开发主要面临的问题是系统结构复杂,软件规模大、版本多, 开发团队人员众多,开发过程难于控制。随着全球化的不断深入,以及软件项 目外包的迅猛增长,越来越多的大型软件项目由分散在不同城市,甚至不同国 家的多个开发小组共同完成。如何对这样的项目进行配置管理则成为软件工程 研究的重要课题之一。 本文作者参与设计的软件配置管理方案是一套基于网络的软件配置管理方 案,它将传统的软件配置管理方法延伸到网络上,借助配置管理工具强大的功 能,针对项目开发小组的地域分布性,实施了对整个地域分布式项目的配置管 理。该方案提供了详细的配置管理计划模板、策略与过程,以及配置标识、配 置控制、配置状态统计、配置审核的方法,不但有效地解决了现在软件项目中 常面临的代码的并行存取无法控制、变更相互冲突、代码偏离需求、代码开发 缺乏阶段性、代码和文档无法保持一致、无可追溯性等重要问题,而且让分散 在多个城市和国家的多个开发小组良好地相互协作,并行地进行项目的开发。 保证软件开发的一致性。 本文作者的主要工作如下: 1 2 3 4 5 参与制订了一套基于网络的软件配置管理方案,并在某大型项目中成功地 运用; 作为小组变更控制委员会成员,制订了小组的变更控制策略,参与基于网 络的变更控制工作; 负责小组的版本控制: 负责小组的配置状态统计 负责小组的配置审核工作: 关键词:软件配置管理版本控制变更控制基线s c m t h er e s e a r c ha n d a p p l i a n c e o fs o f t w a r e c o n f i g u r a t i o n m a n a g e m e n t m e t h o d sb a s e do ni n t e m e t m a j o rc o m p u t e rs o f t w a r e t h e o r y s t u d e n tw a n y o n g - g a n g a d v i s o r h o n g m e i 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 sas e to fm e t h o d s ,t o o l sa n dp r o c e s s e sw h i c hc o n t r o l a n ds t a n d a r d i z et h ep a r a l l e ld e v e l o p m e n to fs o f t w a r ep r o d u c t sb yt e c h n i c a la n da d m i n i s t e r i a l p o w e r t h r o u g ht h ew a y so fi d e n t i f y i n g , r e c o r d i n g ,c o n t r o l l i n ga n dt r a c k i n g 鼬c ,i tm a n a g e s a n d c o n t r o l st h ed e v e l o p i n ge n v i r o n m e n tw h i c hi n c l u d e st o o l s , i n f o r m a t i o n , s o t t w a r ea sw e l la st h e d o c u m e n t s , d a t a , p r o g r a mw h l e ha g e n e r a t e di nd e v e l o p i n g na l s or e c o r d st h eh i s t o r yo f s o f t w a r ed e v e l o p m e n t b yt h e s em e a n s ,i te i k s b r e st h eh i g he f f i c i e n c yo f p a r a l l e ld e v e l o p m e n ta n d t h ec o i t c c t n e s sa n d r e l i a b i l i t yo f f i n a l s o f t w a r ep r o d u c 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 san e c e s s i t yo fh u g es 0 1 r a r ep r o j e c 乜a sw e l l 豁a v e r yi m p o r t a n te l e m e n to fi s 0 9 0 0 1 ,c m m a st h e b a s i so fs o f t w a r e d e v e l o p m e n t a n d m a i n t e n a n c e ,i tp r o v i d e ss t r u c t u r e d ,r e g u l a ra n dp r o d u c t - r e a l i z e dm e t h o d so fm a n a g e m e n to f s o f c w a s ep r o j e e t si nt h e i rl i f ec y c l e t h em a j o rp r o b l e m so ft h ed e v e l o p m e n to fh u g es o r w a r ea r et h ec o m p l e x i t yo fs y s t e m s t r u c t u r e ,t h el a r g e s c a l eo fs o f t w a r ew i t hm a n yv e r s i o n s ,t h eb i gn u m b e ro fm e m b e r so f d e v e l o p i n g t e a ma n dt h e d i f f i c u l t y o fc o n t r o lt h e d e v e l o p i n g a s t h e g o i n g f u r t h e ro f g l o b a l i z a t i o na n dt h em o r ec o n t r a c t so fs o f t w a r e ,m o r ea n dm o r es o f t w a r ei sa c c o m p l i s h e db y m a n y t e a m ss c a t t e ri nd i f f e r e n tc m e s e v e r ld i f f e r e n tc o u n t r i e s h e r ec o m e st h eq u e s t i o no f h o w t o m a n a g e s u c hp r o j e c t s ? t h ea u t h o ro f t h i st h e s i sp a r t i c i p a t e si nt h ef o r m m go f as c m p l a nb a s e do ni n t e m e tw h c h e x t e n d st h et r a d i t i o n a ls c mt oi n t e r n e t w i t ht h eb a s i so fs e v e r a ln e t w o r k 把e h n o l o o e s ,v i at h e s t r o n gf u n c t i o n a l i t yo fs c mt o o l s , a c c o r d i n g t ot h ed i s t r i b u t i o no fl o c a t i o n so f t e a m s ,i td e f i n e d d e t a i l e ds c m p , s t r a t e g ya n dp r o c e s s e s i th a sf o u rm a j o rf u n c t i o n s :c o n f i g u r a t i o ni d e n t i f i c a t i o n , c o n f i g u r a t i o nc o n t r o l ,c o n f i g u r a t i o ns t a t u sa c c o u n t i n ga n dc o n f i g u r a :【i o na u d i t i tr e s o l v e dt h e s e r i o u sp r o b l e m sw h i c hs o f t w a r ep r o j e c t sa r ef a c i n gn o w a d a y s :t h ep a r a l l e la c c e s so fc o d ei so u t o fc o n t r o l ;t h e c h a n g e s a r e c o n f l i c t i n gw i t he a c ho t h e r ;, t h e c o d ei sn o tc o n s i s t e n tw i t h r e q u i r e m e n t s ;t h ed e v e l o pl a c k so f s t a g e ;t h ei n c o n s i s t e n c yo f e o d ea n d d o c u m e n t sa n dc a n n o tb e t r a c k e db a c li ta l s om a k e st h es e p a r a t e dt e a m si nd i f f e r e n tc i t i e sa n dc o u n t r i e sc o o p e r a t ev e r y w e l li nt h ep a r a l l e ld e v e l o p m e n t o f p r o j e c t t h e m a j o r c o n t r i b u t i o n so f t h ea u t h o ra l e : 1 m a d eas c m pb a s e d0 1 1i n t e r n e tw i t hc o l l e a g u e sa n ds u c c e s s f u l l ya p p l i e di ti nab i g s o f t w a r ep r o j e c t ; 2 m a d et h es t r a t e g yo fc h a n g ec o n t r o li nt e a ma n d p a r t i c i p a t e di nt h ec h a n g ec o n t r o lo n i n t e m e t , a sam e m b e ro f t e a mc c b ; 3 r e s p o n s i b l ef u r t h ev e r s i o nc o n t r o lo f t e a m ; 4 r e s p o n s i b l ef o rt h ec o n f i g u r a t i o n s t a t u sa c c o u n t i n gi nt e a m ; 5 r e s p o n s i b l ef o rt h e a u d i tj nt e m k e yw o r d s :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 , v e r s i o nc o n t r o l ,c h a n g ec o n t r o l ,b a s e l i n e , s c m 四川大学硕士论文基于网络的软件配置管理方法研究和应用 第一章绪论 1 1 大型软件开发过程中存在的问题 随着计算机的普及,软件在规模上越来越大,结构也越来越复杂,技术越 来越先进。软件开发的模式已经由昔日的手工作坊式的开发转变为规模化、团 队式的开发,当开发团队发展到一定规模时,会越来越强调开发过程规范化和 成熟度。软件项目的成败在很大程度上取决于对其开发过程的控制,这包括对 软件项目开发的质量、进度、成本等的控制。开发团队的规模和性质也发生了 变化。很多项目有成千的开发人员,他们来自于不同的国家,有不同的文化和 社会背景,庞大的系统可以划分为若干子系统,分别由分布在世界上各个地域 的不同的公司开发完成。这给软件开发带来了新的问题: 1 沟通问题 在一个人的项目中,不存在交流问题,他不需要与他人进行沟通,也不需 要就某个问题与他人达成共识,他明白自己的意图。当两个人开发一个项目时, 就有了两个信息发送者,两个收听者,有两种沟通路径。以此类推,沟通路径 的数量随人数的增加呈指数上升。将开发人员抽象为顶点,沟通路径抽象为弧, 则沟通路径的最大数量实际上已经是这个有向完全图的弧的总数,计算公式为: f = n x ( n t ) 其中n 为开发人员的数量,f 为沟通路径的数目。假设在一个大的项目中有 1 0 0 个开发人员,沟通路径将达到9 9 0 0 个。开发中将有怎样的问题呢? 如果没 有任何控制机制,将无法保证信息能够顺利地传播,甚至无法保证信息能够正 确地传播,一切都将混乱不堪。 2 数据共享问题 无论项目规模的大小,都存在开发人员共享资源的问题。比如程序之间共 享数据,共享函数,或者是多个程序共享组件库,如项目中所有程序调用的错 误处理组件。当一个程序员修改了共享资源而没有及时通知其他人的时候,问 题也就跟着产生:如图1 1 ,为了改进程序的功能,a 对共享组件的函数做了一 i 四j l l 大学硕士论文基于网络的软件配置管理方法研究和应用 些修改,但是b 并不知道。当b 再次执行程序时,可能程序异常终止或者没有 得到预期的结果,这依赖于a 对程序做了怎样的改动。b 对所发生的现象因不 知情而感到疑惑,可能花很多的时间调试程序却找不到原因。 i 团囹团圆1 。西雨飞 l 一_ - ,_ 一_ 一_ 一_ 一 一- 一 _ _ - - 。8 l 譬的毽序 0 _ e ,1 _ m 一_ _ _ 譬一_ ! _ 一_ _ ;_ ,一_ j 一 3 软件可跟踪性问题 开发者对代码和文档的改动有时候在后来的工作中被发现是错误的,或者 是不需要的。那么这些改动需要被改正或者是从文件中剔除出去。或者最新的 版本被证明是不稳定的,需要退回到以前的版本。 4 变更控制问题 软件项目的开发过程就是对软件的不断变更的过程。变更控制需要解决的 问题有: 该不该改:有些改动是与需求相违背的;或者是代价太高,不值得的需要 决定这些改动是否必要。在团队开发中,谁来确定变更? 遵循什么样的流程去改:从测试小组,或者客户。或者就是开发人员自己 反馈回来的一大堆错误,或者是新的需求的实现,应该怎么样分配给开发人员? 谁来分配? 怎么样追踪这些变更? 修改了之后怎样提交? 现有的版本都有哪些改动:一个文件的当前版本中,包含了哪些改动? 这 些改动是针对什么问题的? 每个改动都是怎么改的:每个变更具体都改动了哪些文件? 每个改动过的 文件都增加了些什么? 减少了些什么? 5 软件质量问题 四川大学硕士论文基于网络的软件配置管理方法研究和应用 由于软件本身的特点和目前软件开发模式使得隐蔽在软件内部的质量缺陷 不可能完全避免。因此,软件企业曾尝试使用各种方法,以便解决软件质量问 题。首先考虑从技术上解决,但实践表明,从技术上解决软件质量问题的效果 是十分有限的,不存在一种包医百病的灵丹妙药。因此,必须从管理角度入手, 解决软件质量问题。大型的软件项目由于开发人员的众多和系统的复杂性高, 比小型的软件项目更容易在软件质量上出现问题。如何从管理上保证软件的质 量成为大型软件项目面对的重要课题之一。 6 软件维护问题 一般意义上的软件成本是短期和可见的成本,如设计、开发和测试的成本。 而与系统运作和维护有关的长期成本往往被忽略。其实软件的整个维护成本在 软件项目中占有相当大的比例。有资料表明,软件企业为维护软件支付的费用 占全部硬件和软件费用的4 0 7 5 。 正式投入使用的软件,总是存在着一定数量的错误,因此必定需要维护。 但是,由于在软件设计和开发过程中,许多项目没有严格遵循软件开发标准, 随意性很大,没有完整的真实反映系统状况的记录文档,给软件维护造成了巨 大的困难。特别是在软件使用过程中,原来的开发人员可能因各种原因已经离 开原来的开发组织,使得软件几乎不可维护。 另外,软件修改是一项高风险的工作,对一个复杂的逻辑过程,哪怕做一 项微小的改动,都可能引入潜在的错误,常常会发生“纠正一个错误带来更多 新错误”,从而产生副作用。 1 2 软件配置管理重要意义 为了解决上述软件开发过程中遇到的种种困扰,必须在软件的开发过程中 对软件开发产生的文档、数据、程序以及软件开发的过程进行管理和控制。因 此软件配置管理的概念诞生了。 1 9 6 2 年,美国空军在做它的喷气飞机设计时,为解决控制和通讯问题,制 定和发布了一个标准用于配置管弹_ - - a f s c m 3 7 5 - l ,这是第一个用于配置管理的 标准。其它如美国国防部和几个国际性组织包括i e e e 、a n s i 和i s o 都先后开 始着手解决软件开发过程中配置管理问题,最终形成了他们自己的标准。其中 3 四川大学硕士论文基于网络的软件配置管理方法研究和应用 最为普遍使用的是a n s i i e e e 标准。现在软件配置管理已经被大多数软件组织 接受和采纳,并作为开发的准则。 软件配置管理( s o t i 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 ,s c m ) 在i e e e 的标准 中的定义为:“软件配置管理是一种正式的工程规范。它作为整个系统配置管理 的一部分,在软件的开发和使用的过程中,提供方法和工具来对软件进行标识 和控制。软件配置管理活动包括识别并建立基线( b a s e l i n e ) ;对改动进行评审、 控制、跟踪和报告;对涉及到的软件产品进行审核和评审:对接口文档进行控 制;对项目供应商实旌软件配置管理。” 在软件的开发中。实施软件配置管理,会带来以下的好处: 1 良好的软件配置管理是良好的软件项目管理的前提,尤其是软件质量保 证的基础。没有软件配置管理,“软件质量保证”将因为缺乏相应的数据统计基 础而无法进行,而项目管理更将对代码、文档等无法控制而导致混乱。在c m m 和c m m i 模型中,配置管理作为一个第二层的过程域,支撑着本层及上层过程 域。 图1 4 软件配置管理是项目管理的基础 2 提高了软件开发效率 如前所述软件开发过程中存在的问题降低了软件开发效率,并导致浪费 人力、重复劳动,并成为其它问题的根源。如果实施了软件配置管理,沟通渠 道将容易定义并能很好地工作,变更将处在控制之下,且所有的开发人员理解 如何处理变更( 每个项目成员知道他们在变更时应该做什么) ,那么可节省大量 j 一 四川大学硕士论文基于网络的软件配置管理方法研究和应用 的时间和精力。这意味着提高了开发生产率。 3 降低软件维护成本 很多造成维护成本过高的原因是缺少正确的方法处理这些维护问题。例如, 开发人员应该怎样完成修改,应该修改系统的什么地方,变更将给其它的程序 带来怎样的影响。 如果软件是根据软件工程的方法开发的,引入软件配置管理,文档完备, 对程序所做的变更有完全记录,清晰地定义了系统的依赖关系,那么对软件的 维护就容易得多。所以从设计阶段开始,正确的机制必须发挥作用,确保设计 和开发过程以系统和控制的方式进行。 4 变更跟踪 良好的变更控制系统,使软件质量工程师能够调查问题产生的原因,并检 查和审核工作以保证开发过程遵循项目的标准和规则。关于变更的多数问题主 要是需求定义文档和系统设计文档没有记载最后的变更,或没有办法找出变更 的代码的位置,也不能反映何时、什么原因、谁对项目做过修改等等。如果开 发过程中有一个系统关注这些问题,软件开发和维护过程将变得简单。 5 支持软件的持续改进 在一般的系统测试中缺陷被发现并被修复。如果有一个机制记录缺陷和问 题,归类问题,分析原因,记录问题的解决方法,建立起一个知识库,并随着 时间的推移不断丰富,它将成为未来开发中的无价资源。当问题被报告之后, 将在知识库中检索类似的问题,以前的缺陷记录将帮助我们更快地解决现在遇 到的问题,以及避免同样的问题反复出现。 6 开发依赖于过程而不依赖于人 对代码和文档的严格控制和记载将使软件的开发过程有一个清晰的历史记 录。大到整个项目的架构,小到每一个变更与需求的对应关系、它的意图以及 它的内容都有据可查。这使得开发对人员的依赖性大大降低了。即使一些关键 的开发人员离开了项目或者公司,配置管理提供的信息仍然能够让项目继续良 好地运转下去。 7 更好的质量保证 如果实施了软件配置管理,代码、文档都处在配置管理的控制之下。对它 们的变更将经过严格的审查和评估。不但变更间的冲突将大大减少,而且每一 5 四川大学硕士论文基于网络的软件配置管理方法研究和应用 个变更对软件产生的影响都将会在预料之中。 由于对变更实施了严格的管理和跟踪,软件质量工程师将更容易地分析出 每一类错误产生的根源。从而在以后的阶段中,更早地发现问题和阻止问题的 产生。 8 确保建立正确的系统 正如我们已经看到的软件开发,它开始于需求分析。我们也知道在软件开 发的生命周期过程中,需求将经历很多变更。配置管理通过对开发过程的控制, 以及阶段性的审核,建立了对质量的保证,确保交付客户的系统是和需求相一 致的,是客户最初希望得到的。 1 3 软件配置管理现状 1 3 1 国内外配置管理应用现状 国外软件产业界在软件配置管理这个专题上已经进行了多年的理论和实践 上的研究。建立了许多的理论模型,并且在多年经验积累的基础上,产业界总 结出了许多“最佳实践”( b e s t p r a c t i c e s ) ,并在软件企业中得到了广泛的应用。 而在国内,由于起步晚,很多企业没有实施软件配置管理,或者是仅仅实 施了非常简单的代码管理。即使是实施了软件配置管理的企业,也没有把它放 在一个很重要的位置。 国内企业的现状主要是: 没有实施任何的配置管理。这在小型的项目中比较常见。 只实施了简单的版本管理。其实版本控制只是配置管理最基本的层次和功 能,但许多公司认为这就是软件配置管理的全部。但即使是一个基本的版本控 制,在部分软件公司中也并不是一个非常正规和完善的过程。 配置管理员不合格。配置管理人员是配置管理具体实施的人。配置管理能 否实施,能否有效,关键在于从事配置管理的人员。但国内的一个误区是:在 选择配置管理人员的时候,往往是让开发团队中编码水平最差的人,或者是对 编码没有兴趣的女性员工去担任配置管理员。这一方面使配置管理的任务不能 由一个合格的人员来担当,另一方面也反映出了领导层对配置管理的重视程度 不够。 四川大学硕士论文基于网络的软件配置管理方法研究和应用 过分依赖配置管理工具。配置管理工具在软件配置管理中起着不可替代的 作用。但这造成了很多软件公司对于工具的迷信,以为只要部署了配置管理工 具,就建立了配置管理体系。但这些公司往往缺乏一个规范的软件开发流程, 缺乏对配置管理工具的合理的使用。一个成功的配置管的实施,除了工具,还 需要两个方面的条件:一是规范的软件开发流程;二是合格的配置管理参与人 员。 不过,这一状况正在改善,随着软件配置管理的重要性被逐渐地认识到,随 着越来越多的企业实旋c m m 或者是其它软件工程标准,软件配置管理正在成 为下一个软件业的热点。国内软件企业也越来越多地实施了规范的软件配置管 理。 1 3 2 配置管理工具 此外,在国内外配置管理工具都越来越受欢迎,现在软件开发中没有配置 管理工具几乎是不可能的。所有的项目都能从配置管理工具获得收益。为什么 如此多的公司用配置管理工具取代手工的或半自动的配置管理的原因如下: 1 缩短减开发时间:配置管理工具通过提高开发生产力,减少错误,因而 缩短了开发时间 2 快速响应需求变化:产品投入市场的时间是越早越好。配置管理工具让 代码和文档都在掌握之下,能让问题尽早的发现或者避免,所以公司能快速响 应客户的需求,而且不影响产品的质量 3 减少错误:配置管理工具将以前由人工来做的单调重复的任务自动化, 这样几乎消除了产生错误的机会 4 信息集成:软件配置管理的一个重要功能就是为项目中不同的角色包括 程序员、管理者、分析人员、审核人员等提供充足的、相关的、正确的软件系 统信息,这样软件开发和维护过程处理起来更顺畅。 5 自动化:配置管理工具可以自动化许多过程,如配置控制、缺陷跟踪、 状态报告、版本控制和建立管理。 目前市场上有上百种配置管理工具,其中比较流行的有: 1 m i c r o s o f tv i s u a ls o u r c es a f e v i s u a ls o u r c es a f e ,即v s s ,是微软公司为v i s u a ls t u d i o 配套开发的一个小 1 四川大学硕士论文基于网络的软件配置管理方法研究和应用 型的版本控制软件。v s s 的优点在于其与v i s u a ls t u d i o 实现了无缝集成,使用 简单。缺点是只支持w m d o w s 平台,不支持并行开发,而且速度慢、伸缩性差, 不支持异地开发。 2 m e r a n tp v c s m e r a n t 公司的p v c s 能够提供对软件配置管理的基本支持,通过使用 其图形界面或类似s c c s 的命令,能够基本满足小型项目开发的配置管理需求。 3 c v s c v s 是c o n c u r r e n tv e r s i o n ss y s t e m 的缩写,它是开放源代码软件世界的一 个伟大杰作,由于其简单易用、功能强大,跨平台,支持并发版本控制,而且 免费,它在全球中小型软件企业中得到了广泛使用。其最大的遗憾就是缺少相 应的技术支持。 4 h a n s k yf i r e f l y 作为嘶公司软件开发管理套件中重要一员的f i r e f l y 。是一个功能完善、 安装配置过程简单、运行速度极快的软件配置管理系统。f i :r e f l y 基于真正的客 户机,服务器体系结构,不依赖于任何特殊的网络文件系统,可以平滑地运行在 不同的l a n 、删环境中。可以支持不同的操作系统和多种集成开发环境, 因此它能在整个企业中的不同团队,不同项目中得以应用。 5 r a t i o n a lc l e a r c a s e c l e a r c a s e 是现在应用面最广的企业级、跨平台的配置管理工具之一。 c l e a r c a s e 提供了比较全面的配置管理支持,其中包括版本控制、工作空间管理、 b u i l d 管理等,而且开发人员无需针对其改变现有的环境、工具和工作方式。 1 3 3 目前配置管理主要方法 目前配置管理的主要方法按项目的规模来划分有以下几种: 1 个人型项目的配置管理 一个人工作于一个软件系统( 应用) 就构成了一个个人项目。这个人负责 并控制所有的系统源代码。例如小工具,脚本、个人网站主页、小的共享软件、 以及供个人使用的小系统。当一个人工作于单一系统时,配置管理的需求很少。 通常,个人不需要使用配置管理工具解决其问题。不过,配置管理工具能够在 内容组织和安全性方面提供益处,从而让个人避免通过文件及目录拷贝方式进 岳 四川大学硕士论文基于网络的软件配置管理方法研究和应用 行版本管理的麻烦。 2 小型项目团队的配置管理 小型项目团队由2 到5 个开发人员组成,他们工作于单一软件应用。团队 自己负责和控制应用系统的所有源代码。开发机构赋予这些团队充分的自主权, 这些团队不需要与其他项目团队共享任何源代码,他们的工作内容也不会依赖 其他团队的工作。例如小型的v b 的应用、c c + + 应用、基于w e b 的信息交付 应用、基于w e b 的信息搜集应用、以及小型公司的内部网( i n t r a n e t ) 。早期的 配置管理工具通常足以支持小型项目团队。 3 中型项目团队的配置管理 中型项目团队由6 到1 5 个开发人员组成,他们开发一或多个软件应用,自 己负责和控制源代码。跨越团队共享的内容有限,通常是少量明确定义的核心 构件。存在少量的构件间依赖关系。示例系统包括基于j a v a 的应用、复杂的v b 应用、中等规模的c c + + 应用、针对关键任务( m i s s s i o n - c r i t i c a l ) 的i s i t 应用、 基于w e b 的中型电子商务站点、以及公司的内部网。中型项目团队通常会要求 那些比较现代的的配置管理工具所提供的功能。 4 大型项目团队的配置管理 大型项目团队的规模通常在3 0 以上,不超过1 5 0 人。存在一些共享的代码 以及相互依赖的构件。大型开发团队获得的发布版本中包含多个开发组所作的 变更内容,这些开发组针对共同的发布版本进行协作。例如大型i s v 开发的软 件产品、针对关键任务的大型i t i s 应用、以及大型的电子商务站点。大型团队 几乎一定需要现代的配置管理工具所具备的功能。在某些情形,大型项目能从 的配置管理工具的高级功能中受益。 1 3 4 大型地域分布式项目的配置管理方案的提出 随着全球化的不断深入,资本越来越多地流向劳动力价格便宜的地区和国 家。越来越多的公司拥有了在不同城市或者不同的国家的多个开发中心。这种 地域的分布性让软件系统的开发由不在同一地区甚至国家的若干开发小组同时 进行。在可以预见到的将来,这种开发的方式还将进一步普遍。 大型地域分布式项目的规模往往都超过了普通的大型的项目,有很多相互协 作的开发组,工作于一或多个的发布版本,整个项目团队的人数在1 5 0 以上。 4 四川大学硕士论文基于网络的软件配置管理方法研究和应用 存在大量共享的代码以及相互依赖的构件。产品的发布周期通常比较长( 例如 1 2 到2 4 个月) 。 上一节的几种配置管理的方法都不能解决开发小组有地域分布的项目所带 来的如下难题: 配置管理如何尽可能地屏蔽开发小组是分布式的这一事实,而让所有的开 发小组感觉仿佛他们是在同一个地点工作。虽然这一点不可能完全做到,但越 多的小组拥有这种感觉,整个项目间的通信和协调就会越好。 配置管理是集中式的还是分布式的? 如果小组比较分散,并且数目比较多, 那么集中式是不太可行的。那么如果采用分布式,又如何进行协调? 如何让这些小组并行地工作? 如何有效地进行变更的追踪和报告? 最后,必须确保选择的工具能够支持分布式开发。 本文作者参加了摩托罗拉公司的某型号g s m 手机软件系统项目的开发工 作。该项目由分布在1 3 个国家的4 0 余个软件小组共同开发。 由于地域的分布,配置管理方法是基于网络的。在该项目中,针对上述问 题设计了具有如下特点的软件配置管理解决方案: 采用多种灵活及时可靠的通信方式,包括网络通信方式,确保各小组成员 能够顺利地相互交流信息。 项目设置多级配置管理小组和变更控制委员会。分层实施配置管理。配置 管理的信息通过网络发布。 配置管理库分为版本管理库和存档管理库两部分。版本管理库设置为集中 式,只有一个中央版本管理库,但在多个站点都设置中央库的副本,并且各个 库的数据通过网络自动同步。开发人员拥有多种灵活的工作方式。存档管理库 设置为分布式的,各个站点维护自己的存档管理库。 变更管理,变更请求主要由项目级控制,设有一个中央变更控制管理库为 了方便存取,具有w e b 访问方式。 采用了业界最成熟的版本管理工具r a t i o n a lc l e a r c a s e 以及变更管理工具 c i e 盯d d t s 。 该方案已经成功地运用于该项目。 1 0 四川大学硕士论文甚于网络的软件配置管理方法研究和应用 1 4 本文作者的主要工作 本文作者的其中所做的主要工作包括: 1 参与制订了这套基于计算机网络的软件配置管理方案,并在该项目中成功 地运用: 2 作为小组变更控制委员会成员,制订了所在小组的变更控制策略,参与基 于网络的变更控制工作; 3 负责所在小组的版本控制; 4 负责所在小组的配置状态统计 5 负责所在小组的配置审核工作: 1 5 本文的章节安排 第一章:绪论。简要介绍了软件配置管理的意义,国内外的现状,本文的 创新以及文章的结构。 第二章:基于网络的软件配置管理方案的设计。介绍了基于网络的软件配 置管理方案的设计。 第三章:基于网络的软件配置管理方案的实现。这章给出了一个按前一章 的方案实施的软件配置管理的具体例子。 第四章:软件配置管理展望。对软件配置管理的发展趋势和前景做出了展 望。 第五章:结束语。对本文的工作做出了总结。 四川大学硕士论文基于网络的软件配置管理方法研究和应用 第二章基于网络的软件配置管理方案的设计 2 1 基本概念 配置项( c o n f i g u r a t i o ni t e m ) :在标识、控制和管理软件开发产出物的过程 中,首先是要确定在项目中哪些是变化的和需要管理的。当我们将它们标出后, 就要制定计划来控制和管理。在软件配置管理的术语中,这些项被称为配置项 或计算机软件配置项。在i e e e 中,它被定义为:“一个硬件、软件或两者的集 合,用于配置管理,并在软件配置管理的过程中被作为一个整体对待。”它可以 是一段程序、一组程序、组件库、函数、项目文档、用户手册、测试计划、项 目数据等等。s c m 系统记录这些配置项的功能和物理特性。以下是一些配置项 的例子: 项目计划 配置管理计划 需求定义文档( r d d ) 分析、设计、代码、测试和审核标准 对象代码和执行文件 单元测试说明 测试数据 项目数据 用户手册 配置管理数据库( c o n f i g u r a t i o nm a n a g e m e md a t a b a s e ) :配置项有属性、特性 和内在关系以及内容,这些信息将被记录在数据库中,即配置管理数据库。配 置管理数据库用于记录所有配置项以及与配置项相关的信息。配置管理数据库 中除了配置项的详细信息,还包含变更请求的信息、状态、审核和复审的过程 记录。配置管理数据库的内容和结构将在软件配置管理系统设计阶段定义,并 记录在软件配置管理计划中。 基线( b a s e l i n e ) :基线是每个配置项在特定时期的一个“快照”,是软件开 发过程中表示阶段性的一个“界碑”。i e e e 对基线的定义是:“已经通过正式评 四j i i 大学硕士论文基于网络的软件配置管理方法研究和应用 审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过 正式的变更控制过程进行改变”例如,撰写完毕的设计文档初稿,编写到某一 阶段的程序代码,准备用户手册等。当一个配置项被完成或者到达了一定的阶 段后,将被移交给配置管理组妥善保存。配置管理组要检查交来的配置项是否 完整( 是否包含所有必须的组件) ,并将它作为一个基线。基线在管理交更中扮 演着非常重要的角色。是对上一阶段工作的认定,也是下一阶段工作的起点。 检入和检出( c h e c ki n ,c h e c ko u t ) :建立基线之后,配置项被保存在配置 管理库中。对配置项进行审核或者叫评审,并把它放入配置管理库的过程叫做 “检入”。一旦配置项被检入,即使是程序的作者也不能随便对它进行修改。为 了修改管理库中的软件项,需要提交变更请求,并被讨论通过,然后配置管理 人员将从管理库中复制配置项,以便编程人员执行修改,这个过程称为“检出”。 修改之后,要经过再次测试,复审,并需取得同意方可将其复制入配置管理库。 检入,检出过程如图示。现在的配置管理工具使检入,检出工作非常方便,许多工 具允许程序员在不需要物理检出的情况下对软件项进行修改。而且,软件配置 管理工具使若干编程人员可以同时操作一个配置项( 并行开发) 。 凰2 1 检入和梭出 增量( d e l t a ) :所有版本的拷贝都存放在配置管理库中是不实际的,因为这 需要大量的磁盘空间。取而代之,软件配置管理使用增量的概念。当一个 新版本被创建时,新版本与以前版本之间的不同叫做“增量”( d e l t a ) 。我们使 用存储一个版本和它的增量的方法取代存储所有版本的拷贝。 - 1 3 一 四川大学硕士论文基于网络的软件配置管理方法研究和应用 软件配置管理有两种增量存储方式:一个是正向增量,一个是反向增量。如 图2 2 所示: 鎏蠢 霸蝴 图2 2 芷向和反向增量 蓐晦 正向增量存储的原则是系统保留一个完整的最初版本。然后后来的增量被 存储。当需要新的版本时,通过增量和最初的版本进行合并,得到新的版本。 反向增量存储,只保存最后版本的完整拷贝。当一个新的版本被检入时, 与前一个版本进行比较产生增量。前一个版本被删除,新的版本被存储。 正向增量存储的问题是,随着修订版的增多,得到最后一个版本将需要大 量的计算。所以修订版越多,检索时间就越长。反向增量中,得到最后一个版 本不需要计算。 究竟使用正向还是反向增量存储? 这依赖于项目的特点。如果最后一个版 本的访问频率高,那么使用反向增量好一些。在现实中7 5 的访问是针对最后 一个版本,也就是说在配置管理中反向增量存储更通用。 配置控$ 1 j ( c o n f i g u r a t i o nc o n a 0 1 ) :配置控制是对配置项一系列的处理过程, 包括评估、协调和决定是否采纳对配置项的变更请求。i e e e 对配置控制的定义 是:“通过建立产品基线,在整个产品生命周期中控制产品的发布和对产品的修 改。”如果请求被通过,将对配置项以及相关文档进行修改。变更控制过程保证 对任何配置项的修改都在严格的工程控制下按计划进行。 四川大学硕士论文基于网络的软件配置管理方 击研究和应用 配置状态统计( a c c o u n t i n g ) - 用于跟踪对软件的修改,确保软件项的状态被 记录、监控,并可报告影响软件基线的活动。i e e e 对配置状态统计的定义为: “记录并报告组件和变更请求的状态,并收集关于产品组件的重要统计信息”。 配置状态统计为软件质量保证和项目管理提供了翔实的数据。 配置审核( a u d i t ) :是一个检查过程,检查移交的软件基线是否包含了所有 必须的移交项。这些项是否经过审查,是否能够满足用户的需求。i e e e 中配置 审核的定义是:“通过确保产品是一个严格定义的组件集合来确认产品的完整性 并维护组件闽的一致性”。配置审核虽然是事后的。但对于总结经验、发现不足, 以便在后来阶段的开发工作中避免同样的错误有重要的意义。 2 r 2 配置管理方案设计 下面就是针对大型地域分布式项目的一个配置管理方案: 2 2 1 任务的分配 为了方便了管理和降低信息交流的需要。大型魄域分布项目应考虑尽量把一 个子系统或组件放在一个站点开发。如果一个站点负责不止一个子系统或组件, 那么该站点选择的程序或组件应该尽可能地是内聚的,并且与其它站点开发的 程序或组件耦合度非常低。 2 2 2 信息交流方式设计 大型地域分布项目开发小组的地域分布性往往还带来了时间上的差别。虽 然在分配任务时应尽量减少不同站点之问的依赖性,但信息的交流是不可避免 的,而且往往还非常频繁。而信息交流的方式,除了一对一,还有一对多,多 对多。信息交流的方式可以如下设置: 1 基本的信息交流方式;基本的信息交流方式用于一般的。符合日常工作 的不太紧急的情况。考虑到目前的技术可靠性和信息交流的成本,电子邮件是 比较理想的一种选择。但项目应该将电子邮件纳于自己的管辖之下。特别是电 子邮件的账号,更应该统一管理。 1 土 四川大学硕士论文基于网络的软件配置管理方法研究和应用 2 需要及时反馈的信息交流方式:需要这种信息交流方式的场合包括会议、 紧急事件的处理等。因为它对时间的要求,在目前的情况下使用电话比较合适。 为了节约费用,应尽量使用i p 电话。 3 需要及时反馈的信息交流方式的一种折中:虽然可以使用i p 技术,但 是电话毕竟是比较昂贵的,特别是国际长途。在不太正式的场合,比如几个开 发人员的非正式的交流,就可以使用一些折中的解决方案。现在比较流行的

温馨提示

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

评论

0/150

提交评论