(计算机软件与理论专业论文)基于构件的配置管理工具研究.pdf_第1页
(计算机软件与理论专业论文)基于构件的配置管理工具研究.pdf_第2页
(计算机软件与理论专业论文)基于构件的配置管理工具研究.pdf_第3页
(计算机软件与理论专业论文)基于构件的配置管理工具研究.pdf_第4页
(计算机软件与理论专业论文)基于构件的配置管理工具研究.pdf_第5页
已阅读5页,还剩56页未读, 继续免费阅读

(计算机软件与理论专业论文)基于构件的配置管理工具研究.pdf.pdf 免费下载

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

文档简介

基于构件的配置管理工具研究 【摘要】 软件配置管理是软件开发中的一项基本支持活动,是软件能力成熟度模型 c m m 第二级的一个关键过程域。软件配置管理的目标是在软件生命周期中建立 和维护软件项目工作产品的完整性。 随着软件产业的迅速发展,软件复用成为提高软件生产力和质量的最有效的 手段之一,传统的软件开发的方式发生改变,基于构件的软件开发 ( c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t ,简称c b s d ) 已经成为新一代的软件开 发方法。设计并实现可变粒度支持基于构件开发方法的配置管理工具显得尤为重 要。 为了有效支持c b s d ,本文通过对软件配置管理系统中的一些基本概念及其 研究现状的分析和研究,针对目前基于构件的软件开发及对软件配置管理工具提 出的新需求。提出一个基于构件的软件配置管理工具,文中给出了其总体架构, 并对该工具如何支持c b s d 工作、如何对构件及构架进行管理、如何进行构件 及构架的版本演化和分支合并技术、如何实现基于工作流的变更管理等关键技术 进行了分析及设计。 【关键词】 配置管理版本管理软件过程变更管理基于构件的软件j 二程 复旦大学硕上学位论文 4 h - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - - _ _ _ _ _ - _ 基于构件的配置管理t 具研究 a b s t r a 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 sab a s i cs u p p o r t i n gm e t h o d o l o g yo f s o f t w a r ed e v e l o p m e n t ,w h i c hc a l le n s u r et h ei n t e g r i t ya n dc o n s i s t e n c yo ft h ea r t i f a c t s o f t h es o f t w a r ep r o j e c t st h r o u g ht h es o f t w a r el i f ec y c l e f r o m1 9 7 0 s ,a l lk i n d so 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 ts y s t e m sh a v eb e e n s e e n b u tn o w a d a y s ,a l t h o u g hc b s db e c o m e sm o r ea n dm o r ep o p u l a r , f e ws c mt o o l o nt h em a r k e tc a l lr e a l l ys u p p o r tc o m p o n e n tb a s e ds o f t w a r ed e v e l o p m e n t i no r d e rt o f i uu pt h i sg a pa n do f f e rc b s dp r a c t i t i o n e r sag o o dc a s ee n v i r o n m e n t ,w ed e s i g na n d i m p l e m e n tf d s c m ,w h i c hp r o v i d e sf u l ls u p p o r tf o rc o m p o n e n t a n dc b s d i nt h i sa r t i c l e ,t h ea u t h o rg i v e sab r i e fi n t r o d u c t i o nt ot h es o f t w a r ec o n f i g u r a t i o n m a n a g e m e n ts y s t e mf d s c m a n dt h e nd i s c u s s e ss o m ep i v o t a lt e c h n o l o g i e so fi t k e y w o r d s c o n f i g u r a t i o nm a n a g e m e n t c h a n g ec o n t r o l v e r s i o nc o n t r o l s o f t w a r ep r o c e s s c o m p o n e n t - b a s e ds o f t w a r ee n g i n e e r i n g 复旦大学硕士学位论文 5 基丁构件的配置管理工具研究 1 引言 1 1 软件配置管理基本概念 随着软件产业的发展,软件产品开发越来越复杂,开发中所产生的大量中间 产品也越来越难于控制。与此同时,为了使软件开发组织能够从初始混乱的开发 过程,过渡到可重复、可管理的有序化过程,进而上升到更高的成熟度水平,我 们需要采取一些方法来规范软件开发过程,进行有效的软件开发管理,并且提供 相应的工具对其进行支持。软件开发管理的核心就是有效的软件配置管理。 早在7 0 年代初期,人们就提出了软件配置管理的概念,研究并实现了第一 代软件配置管理工具。这些软件配置管理工具通过在特定的时刻标识一个软件系 统的配置,即一组中间软件产品及描述,系统地控制对配置的更改,并在整个软 件生命周期中维护配置的完整性和可跟踪性。 配置管理是软件过程的一个关键部分,是支持项目团队开发和维护,使软件 产品演化过程趋于稳定的一系列控制规则。软件配置管理系统在软件质量管理中 起着重要作用,是c m m 与i s 0 9 0 0 0 质量管理体系的核心内容之一。它通过在特 定的时刻标识一个软件系统的配置,即一组中间软件产品及描述,系统地控制对 配置的更改,并在整个软件生命周期中维护配置的完整性和可跟踪性。从某种角 度讲,软件配置管理是一种标识、组织和控制软件演化的技术,目的是使错误降 为最小并最有效地提高生产效率,解决软件开发过程中的资源管理问题。根据 i e e e 7 2 9 一1 9 8 3 标准,软件配置管理活动包括: 1 ) 配置识别:识别产品的结构、产品的构件及其类型,为其分配惟一的标 识符,并以某种形式提供对它们的存取。 2 ) 变更控制:通过建立产品基线,控制软件产品的发布和在整个软件生命 周期中对软件产品的修改。 3 ) 状态统计:记录并报告构件和修改请求的状态,并收集关于产品构件的 重要统计信息。 4 ) 审计和评审:确认产品的完整性并维护构件间的一致性,即确保产品是 一个严格定义的构件集合。 5 ) 软件生产:对产品的生产进行优化管理,解决最新发布的产品应由哪些 版本的文件和工具来生成的问题。 由以上定义可以看出,一个完整的软件配置管理环境要具有版本管理、变更 管理、状态统计和配置审计功能。除此以外,产品构建,小组协作、异地开发等 复旦大学硕士学位论文6 基于构件的配置管理工具研究 也已经被纳入s c m 基本活动之中。s c m 工具所管理的对象就是软件开发过程中 产生的资料、各种版本文件、程序等所有资源。 1 2 配置管理的必要性 随着软件开发规模的不断增大,一个项目中的中间软件产品的数目也越来越 多,中间软件产品之间的关系也越来越复杂,对中间软件产品的管理也越来越困 难,有效的配置管理则有助于解决这一问题。现在人们逐渐认识到,配置管理是 适应软件开发需求的一种非常有效和现实的技术。 很多人都可能曾经遇到过这样的情况:在项目开发过程中,由多个软件开发 人员共同开发某一个功能模快。由于其中某一个人对源代码进行了修改,生成了 新版本,但是其他软件开发人员并不知道这个新版本的存在,以至于他们使用的 仍然是老版本的代码,造成了代码版本之问的差异。有时候也可能出现这样的情 况:由于新版本和老版本并没有采取一种非常有效的管理方式,在客户处出现系 统更新时,老版本覆盖新版本的情况。 最令人感到沮丧的软件问题通常都是由于对软件配置管理不够重视而导致 的。事实上,软件配置管理有助于协调同一项目中不同人员之间的工作而减少上 面问题的发生。另外,从单个软件项目中积累起来的有效经验,需要能够共享、 复用,逐步上升为软件企业的宝贵资源,进而能够指导整个软件企业的软件开发 和管理,也需要使用软件配置管理工具对此加以支持。 在c m m 中,它是从一级向二级转换的关键过程域;在i s o9 0 0 0 中,它也 扮演着非常重要的角色。目前,s c m ( 软件配置管理,s o f t w a r ec o n f i g u r a t i o n m a n a g e m e n t ) 几乎已经发展成为集成软件开发环境的最重要的组成部分之,它 与一个软件企业的软件过程乃至整个企业的工作流程密切相关。 由于配置管理对软件开发有着重要意义,配置管理在软件开发环境中有着重 要的地位。软件开发环境主要有两个重点:集成和管理。配置管理是软件开发环 境中管理部分的核心,有些管理功能( 比如过程管理) 在最初并不属于配置管理, 但随着配置管理的不断发展,也逐渐成为了配置管理的一部分。集成本是与管理 相对独立的另一部分,但人们现在也逐渐认识到,配置管理对于集成也有一定帮 助。大多数实现的软件开发环境中也都包含配置管理的功能,比如美国海军的 a l s n ,r a t i o n a l 的r 1 0 0 0 ,和国家八五重点科技攻关项目j b i i1 2 7 1 。 复旦大学硕士学位论文 基丁构件的配置管理工具研究 1 3 本文组织结构 当前,s c m 的重要性已经被大多数软件开发机构所认同,但是相对而言, 基于构件开发的配置管理工具方面的实践还比较少。本文提出了一个基于构件的 配置管理工具f d s c m ,给出其总体的结构,并对其中的几种关键技术进行研究。 本文的组织是这样的:第一章作为引言,介绍软件配置管理及其重要意义。 第二章介绍现有软件配置管理的系统功能要求、配置管理方法论、配置管理模型, 并简单概述现有的软件配置管理工具,讨论c b s d 对软件配置管理提出的新的 要求、软件配置管理应进一步研究的方向,并由此给出本文的研究意义与动机。 第三章讨论构件、构架与传统配置项的不同,给出了配置管理工具f d s c m 的总 体体系结构,以及f d s c m 版本管理、过程管理、变更管理的总体特点。第四章 介绍f d s c m 关键实现技术,包括构件与构架配置项的分类与描述、构件与构架 的版本演化、分支合并策略、基于工作流变更管理等内容。第五章是总结和展望。 复旦大学硕士学位论文8 基于构件的配置管理t 具研究 2 配置管理系统与基于构件的软件开发 2 1 软件配置管理系统 2 1 1 软件配置管理系统功能要求 最早出现的软件配置管理工具是为了解决版本问题而产生的,那时的配置管 理工具最根本和最主要的功能就是版本管理。后来随着软件配置管理研究的逐步 深入,软件配置管理工具的功能不断得到扩展:从起初只提供版本管理功能逐步 扩展到其它功能。时至今日,配置管理的功能域包括: 1 ) 组件:标识、分类、存取构成产品的组件。对于组件的要求而言, 用户需要:记录组件的版本、差异,以及产生差异的原因;确定构成配置及 配置版本的组件群;标识产品的基线及其外延产品,标识项目组件群及工作 产品的项目环境。同时,用户还需要使用库来存储组件、配置管理信息、资 源、对象编码、执行情况、图表、文档和基线等。 2 ) 结构:表示产品的构架。对于结构的要求而言,用户需要:通过表 示产品组件库的系统模型来模拟产品的结构:标明组件、版本、配置的接口 并且使之可以复用;确定、维护组件间的关系;选择兼容的组件使之形成有 效的、一致的产品版本。 3 ) 构造:支持产品及其制品的构建。对构造的要求而言,用户需要; 提供容易创建产品的方法;能随时静态分析产品的状态;提供通过减少组件 的重新编译、节省空问开销以优化系统构造的机制;进行变更分析以预测因 变更而导致的分支;随时都能对产品的任何部分、在任何阶段进行重建。 4 ) 审计:对产品及其过程的审核进行跟踪。对于审计的要求而言,用 户需要提供:所有变更的历史记蒙;所有与产品相关的组件及其演化的可追 溯性;完成任务的详细日志。 5 ) 统计:收集与产品、过程相关的数据。对于统计的要求而言,用户 需要:提供统计记录的机制,进行产品状态的检查,易于生成有关产品和过 程的所有方面的报告。 6 ) 控制:控制产品变更的方式及时问。对于控制要求而言,用户需要: 为避免不必要的变更或变更冲突,对系统中组件的存取应予以控制,对于变 更请求表格及问题报告的生成提供在线支持;提供错误跟踪的手段,能够报 告何时对何人会产生何种影响;在不同但相关的产品版本之间以受控的方式 复旦大学硕士学位论史 9 基于构件的配置管理工具研究 进行变更通知;提供将产品进行分割的手段以限制变更所产生的影响。 7 1 过程:支持产品演化的管理。对于过程要求而言,用户需要:对生 命周期模型及组织方针予以支持;确定需要完成的任务及如何完成、何时完 成的能力;具备将相关事件在适当的人员之间进行沟通的能力;提供将产品 的经验进行文档化的手段。 8 ) 团队:支持项目团队的开发、维护产品族。对于团队的要求而言, 用户需要:提供个人和团队的工作区;在分支合并时产生冲突解决方案;提 供对产品的构造及其维护予以支持的手段。 配置管理系统存在多个功能域,但是也应该意识到:配置管理系统的用户 是多种多样的。每一个用户都有自己特定的角色,并不是每个配置管理系统的使 用者所使用的功能都是一样的,都是上面提到的这八种功能。不同的用户所看到 的和所使用的软件配置管理工具,其功能通常是不一样的。为了能够满足不同用 户对于配置管理的不同要求,软件组织还应该提出不同层次的配置管理视角,这 些层次包括:公司级、项目级、程序员级和应用级。公司级视角提供组织的全貌 图和配置管理过程的描述;项目级视角是与项目相关的、各项目组可以使用的不 同的配置管理方案;程序员级视角是专门为程序员提供的,它具有某些特定的配 置管理功能:应用级视角关心的是配置管理如何应用到具体的问题中去。 2 1 2 软件配置管理方法论 s c m 方法论是为实现特定的s c m 机制提供自动化的支持的一套方法。方法 论描述软件开发人员、测试人员、文档编制人员、项目经理和发行经理如何管理 软件,软件怎样在生命周期中迁移,怎样控制软件的变更。方法论是s c m 的基 础。方法论在支持s c m 过程和s c m 系统中扮演重要的角色。s c m 过程必须能 随时间的推移而发展,系统本身应该为这种发展变化提供有利的条件。目前提出 的s c m 方法论主要包括: 1 ) 阶梯方法论 这种方法论认为,变更管理是软件配置管理的关键内容之一。变更管理可以 是简单的对文件的检入检出或者是将问题跟踪和s c m 结合在一起。“阶梯方法 论”指的是在各种不同的项目团队“梯级”向上提升软件版本。项目团队的每个 成员有一个关于他们正在工作的已发行的每个变体的个人配置( d e v e l o p e r s t r e a m ) 。另外,对于源对象生命周期的每个基本状态都有对应的配置。当软件 每前进一步,能见度和可靠性将会提高一级,软件好像在“攀登阶梯”。例如我 们可以定义工作、集成、发行三种生命周期状态,软件的版本将始于工作状态, 复旦大学硕士学位论文 1 0 基于构件的配置管理j 二具研究 “爬过”集成状态到达发行状态。 2 ) 变更集合方法论 变更集合方法论的基本概念是在高层次的对象上对变更进行分组,通常称作 “变更集合”,而不是对单个文件进行检入检出( c h e e ki n c h e c ko u tp a r a d i g m , c i c o ) 的操作。变更集合指实现一个特定的功能变更对文件所做的所有修改。 “变更集合”的方便之处在于它能够和基线结合在一起形成新的配置,能够保证 良好的一致性,而阶梯方法论不具有这方面的功能。 3 ) 变化跟踪方法论 “变化跟踪方法论”是“阶梯方法论”和“变更集合方法论”的结合。完全 实现变更跟踪方法论,可以很好地将问题跟踪能力和源码级s c m 集成起来。一 个变更集合代表了对项目组件( 例如源码、文档、测试用例) 所做的变更,一个 变更集的发起是由提交一个变更请求( c h a n g er e q u e s t ,c r ) 引起,然后再经过 批准。一旦批准同意了,开发员( 或文档编制员) 就根据c r 的内容进行修改, 这样就逐步积累成一个变更集。使用这种方法的s c m 系统,要在实现变更的过 程中,记录添加对象、修改对象、删除对象的事件。一旦变更测试通过,开发员 就提升其变更集,而不是单个的变更,这样,软件与变更集关联的结果是,软件 在生命周期中不断地移动。项目成员通过使用基于规则的配置定义和参考引用基 线来定义其配置。 4 ) 并行开发模型 大多数现代的s c m 系统支持并行开发。但是,并行开发的“粒度”却是多 种多样。可以将并行开发看作是一个范畴,一个极端是完全在一条单一的继承线 上串行化开发,另一个极端是流行的s u n 的n s e ( n e t w o r ks o f t w a r ee n v i r o n m e n t l 所提出的“开放”方案【5 】。许多技术落在两者之间。处理并行开发问题的一个 极端的方法就是强制实行串行化,也就是防止并行版本的出现。但是这样将导致 系统中先导出的那个版本成为一个瓶颈,即其他人无法从同一个配置项那里也导 出同样一个版本。最常见的并行开发是在主干的继承线上创建一个显式的分支, 以后需要时将并行版本进行显式的合并。并行开发的另一种途径是“丌放”方案, 这种方法是隐式地创建版本( 当新版本导出的时候,其创建者并不知道这是一个 并行版本) ,只有在提升时,用户才被通知是否有冲突存在,这时,用户就必须 进行一致性处理。 2 1 3 软件配置管理模型 根据配置管理系统提供的概念集,s e i 研究人员将配置管理系统分为以下五 复且大学硕士学位论文 基于构件的配置管理_ l 具研究 种类型: 1 1 检入,检出模型( c h e c ki n c h e c ko u tp a r a d i g m ,简称c i c o ) 检出检入模型是基于库概念的。这种模型主要关注的是单个文件的版本控 制,通过加锁方式实现多用户访问的并发控制以及修改的合并和分支。 检出检入模型涉及到库和文件系统。用户以读或写的方式从库中检出文件, 并且将其置于实际的工作区域文件系统中,文件修改完毕后再检入库中。此 时,系统产生该文件的一个新版本。如果是以写方式检出文件的话,文件将被上 锁,以确保互斥修改。配置管理系统可以对库施加存取控制,确定某用户是否 有权访问一个文件,以及访问的方式:而在用户工作区内,存取控制和锁机制就 完全取决于文件系统本身了。 r e v i s i o nc o n t r o ls y s t e m ( r c s ) 就属于这种类型的配置管理系统。国内的青 鸟软件配置管理系统( j b c m ) 也属于这种类型的软件配置管理系统。 2 ) 组成模型( c o m p o s i t i o np a r a d i g m ) 组成模型是由c i c o 模型自然导出的,建立于组件版本图的基础之上,同时 依赖于存储库和工作空间的概念,可以通过对组件加锁进行并发控制。该模式由 一个系统模型( s y s t e mm o d e l ) 和一套版本选择规则( v e r s i o ns e l e c t i o nr u l e ) 组 成。系统模型列出了组成系统的所有组件,可以用层次化结构来描述;版本选择 规则表明组成一个配置的每个组件的版本,例如选择最新的版本就属于一种版本 选择规则。组成模式通过两个步骤来创建配置:第一步是使用组件束描述系统结 构,第二步是选定每个组件的版本,即进行绑定( b i n d i n g ) 。 若选择规则可以唯一地决定每个组件的版本,即反复运用这个规则所得到的 组件版本是一样的话,称通过这种方式得到的配置为绑定配置( b o u n d c o n f i g u r a t i o n ) 。若在不同时刻运用选择规则,得到的组件版本并不一致,这样 所得到的配置则被称为部分绑定( p a r t i a l l yb o u n d ) 或配置模板( c o n f i g u r a t i o n t e m p l a t e ) 。 选择规则可以使用两种方式来描述。第一种是把选择规则看作带标签的版本 图的搜索路径,包括用户工作区、其他开发者的工作区、分支、版本等。第二种 是把组件看作带有属性( 如:版本标识,修改日期等) 的对象,用一阶谓词来描 述选择规则,如:w i n d o w s y s t e m = x 1 la n dw s r e l e a s e r 3 & f s t a t u s = t e s t e do r r e s e r v e d = m e ) 。 d o m a i ns o f t w a r ee n g i n e e r i n ge n v i r o n m e n t ( d s e e ) 是属于这种类型的配置 管理系统。 3 ) 长事务模型( t r a n s a c t i o np a r a d i g m ) 长事务模式是基于库、工作区、透明视图和事务概念的。该模式支持系统以 复旦大学硕士学位论文1 2 基于构件的配置管理丁具研究 一系列原子变化的方式进行演化,以团队的并发控制方式进行协调。与组成模式 相反,开发者首先选择系统的配置版本。选定的配置版本决定了组成该配置的组 件的版本。 在长事务模式中,修改是在一个事务中进行的。用户选定一个特定的版本标 志着事务的开始。在事务被提交之前,修改对外部是不可见的。系统使用并发控 制机制来解决多事务之间的协调问题。事务的提交生成一个新的配置版本。一系 列的修改产生一个配置版本序列,成为开发路径( d e v e l o p m e n tp a t h ) 。配置版本 也可以有分支,形成独立开发路径( i n d e p e n d e n td e v e l o p m e n tp a t h ) 。 n e t w o r ks o f t w a r ee n v i r o n m e n t ( n s e ) 是属于这种类型的配置管理系统。 4 1 变更集模式 变更集是基于库和变更集概念的,它着重于系统的逻辑变化。在这种模式中, 配置由基线和变更集共同组成。例如对系统发布版本的补丁程序就可以看成是一 种变更集。 变更集用来对逻辑变更进行跟踪,通过在逻辑变更的基础上定义新的配置。 变更集模式本身不提供锁机制来进行并发控制,而是通常与检出,检入模式共同 使用。 a i d e d e c a m p ( a d c ) 就是属于这种类型的配置管理系统。 5 ) 统一c m 模型:版本集模型 将s c m 工具集成到软件开发环境中,需要s c m 模型能通过一个统一的c m 模型来进行互操作。作为统一c m 模型的一种解决方案,a n d r e a sz e l l e r 博士提 出了一种基于特征逻辑的版本集模型。版本集模型包含并扩展集成了商业环境中 的4 种模型,提供了一个统一几种s c m 任务的方法。版本集是一系列对象的集 合,其特点是一个特征术语( f e a t u r et e r n l ) 一个布尔表达式通过( f e a t u r e :v a l u e ) 对的属性表示公共或独立的版本性质。遵循s c m 的惯例,版本集根据对象的属 性来描述对象的特征。版本集概括了常用的s c m 概念,例如构件、库、工作空 问、变种集、修订版历史。版本集使用特征逻辑,对版本集进行交、并、补等操 作,来表示概括s c m 模型的语义。 在s c m 工具增量配置引擎i c e 中以近实现了版本集模型,i c e 实用文 件来表示版本集,以文件访问来表示操作处理。 2 1 4 软件配置管理工具 按照软件配置管理工具实现的功能进行分类,可以将软件配置管理工具分为 三代。 复旦大学硕士学位论文 基于构件的配置管理工具研究 1 ) 第一代软件配置管理工具 r e v i s i o n c o n t r o ls y s t e m ( r c s ) 是w a l t e r e t i c h y 于1 9 8 0 年在i n d i a n a 的 p u r d u e 大学丌发的。r c s 是一个基于u n l x 的、简单的软件配置管理工具,提 供了版本控制功能。 r c s 最显著的特征是检入检出控制以及基线。其日志提供了简单的状态统 计功能,它还提供了a s c i i 码文件库的概念,文件所有的配置管理信息和文件 的内容都存贮在库中:库中不但存储了文件的不同版本,更改的理由,而且还存 储了何人何时替换了何种文件版本等文件历史信息。r c s 这种库的概念和库的 组织形式受到了当时技术因素的制约,显然与后来采用数据库技术的配置管理工 具在功能上和效率上相距甚远。 r c s 没有提供对于配置的管理而仅仅是依赖m a k e 来组织配置。m a k e 本 身就是一个简单的工具,是贝尔实验室s t u a r ti f e l d m a n 等人在2 0 世纪7 0 年代 开发的。m a k e 通常和其它软件配最管理工具一起使用,其最显著的特点是为 支持版本控制而采用软件结构标识( 软件项之间的相互依赖信息) 机制。一个软 件系统通常由一组有关联的计算机程序组成,m a k e 在一个名为m a k e f i l e 的文 件中维护了这些软件项的相关信息。在m a k e 中,系统被分解成子系统,存储 在系统目录下的子目录中。在创建系统的时候,执行一个激活文件( a c t i v a t i o n f i l e ) 来检索系统所有的组成项。 第一代软件配置管理工具是一种基于文件的、简单的版本管理工具,对于诸 如除版本管理之外的其它功能( 例如并发控制和审计等) 并不提供支持。 2 ) 第二代软件配置管理工具 d o m a i ns o f t w a r ee n g i n e e r i n ge n v i r o n m e n tf d s e e ) 由a p o l l o ( 现在的h e w l e t t - - p a c k a r d ) 公司在2 0 世纪8 0 年代后期开发,它是为管理大规模软件开发而设 计的。在这种大规模软件开发中,数据通常分布在许多不同的地方。d s e e 不仅 实现了版本控制、系统建模等功能,而且还能提供需要完成的任务的清单以及已 经完成的任务的清单,并且还能将特殊事件通知相关用户。 d s e e 中的版本控制置于资源文档库中。为了支持分布式网络计算环境, d s e e 提供配置管理( 系统创建) 和历史管理( 即源代码控制) 来满足并行环境 下的大规模编程。另外,d s e e 对于变更后系统重建提供了预警机制。 a l l c h a n g e 是由两个e x e t e r 大学的学生在8 0 年代开发的,在2 0 0 2 年4 月已 经发布了第六版。a l l c h a n g e 是一个全面的配置管理和变更控制系统。在比较成 熟的a l l c h a n g e 版本中,它包括:版本创建、变更、恢复;用户定义的、具有自 动过程活动触发的生命周期;变更请求,缺陷跟踪,对象活动和联接:工作区, 共享池,完全配置创建;基线、发布、管理、注册;查询,报告工具;客户服务 复旦大学硕士学位论文 基于构件的配置管理工具研究 器支持等多种功能。 第二代软件配置管理工具较之于第一代软件配置管理工具相比,其功能已经 得到了很大的加强:已经从简单的版本管理工具发展成为比较复杂的软件配置管 理工具。第二代软件配置管理工具将元数据和配置项分丌存储;除了版本管理功 能之外,还提供了项目组建功能,并且同时对并行丌发也提供了支持,但是此时 的软件配置管理工具却普遍缺乏对于软件过程的支持。青鸟配置管理系统j b c m 可以归为此类配置管理工具。 第三代软件配置管理工具 c l e a r c a s e 是r a t i o n a l 公司推出的产品,它是按照d s e e 的初始构架设计的, c 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 的版本管理对软件开发过程中的一个文件或一个目录的发展过程 提供了跟踪手段。 所谓的工作区管理即保证软件开发人员拥有自己独立的工作环境,同时也可 以访问成员间的共享信息。c l e a r c a s e 工作区管理采用一种称为视图( v i e w ) 的 新技术,通过设定不同的配置规格,帮助程序员选择特定任务的每一个文件或目 录的适当版本,并显示所选择的文件或者目录。 c l e a r c a s e 建立管理:c l e a r c a s e 构造软件的处理过程可以和传统方法兼容, 如使用本机提供的m a k e 程序,但也可以使用c l e a r c a s e 自身提供的构造工具 c l e a r m a k e ( 支持u n i x ) 和o m a k e ( 支持n t ) 。 c 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 特别设计用来支持并行开发,它对无论是想将自己的工作与其他 人员相隔离还是在多个团队之间并行开发多个版本,或者是在地理上分布的多个 团队之间共享同一个源代码库都提供了支持。c l e a r c a s e 家族的产品包括多种工 具:c l e a r c a s em u l t i s i t e 、c l e a r d d t s 、c l e a r g n i d e 等。c l e a r c a s em u l t i s i t e ( t m ) 即使在没有网络互联的情况下,也能为地理上分布的项目团队提供并行开发和软 件复用的支持:c l e a r c a s em u l t i s i t e 使得不同项目团队能够共享同一个版本对象 库,每个地方都有一个自己的版本;通过自动或者手工的同步过程,每个地方都 能够将变更传播到这个版本对象库家族的其他地方。c l e a r d d t s 提供了集成问题 管理功能,c l e a r g u i d e 则提供了软件过程管理功能。 c 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 的显著特点是它的过程控制, 复旦大学硕士学位论文 基于构什的配置管理t 具研究 这是以往的软件配置管理工具普遍缺乏的。当然,由此可以看出,软件配置管理 的概念以及软件配置管理工具也是随着其它工程领域或者管理领域的不断发展 而发展的。 各代软件配置管理工具都各具特色,却普遍存在版本管理对象单一,缺乏 对构架、构件进行管理或者未将过程管理与基于构件的软件开发技术进行集成, 未能对系统开发提供比较完整的支持等问题。 2 2 软件变更管理与工作流 2 2 1 软件变更管理的基本概念 软件变更管理是配置管理的一个组成部分,它通常由变更请求的输入、输出、 变更流转控制、结果分析、角色定义、变更过程描述这几方面组成,它们一起构 成了软件变更管理的一个基础和子集。软件的变更通常分为两种不同的类型:功 能变更和错误修 b ( b u g - f i x ) 变更。功能变更是为了增加或者删除某些功能、或者 为了改变完成某个功能的方法而需要的变更。错误修* b ( b u g f i x ) 变更是为了修复 漏洞而进行的变更。 软件变更管理必须满足变化控制和变化追踪这两方面的需求。一个变更从提 出到处理完毕包含了一系列的评估、批准、任务分配、实施、审核确认等步骤。 从配置管理的角度看,变更生命周期主要包括审核决策和实施两部分。审核决策 在开发小组外部进行,主要体现为一系列文档的处理过程。而实施部分则体现为 一系列开发活动和版本演化。 2 2 2 工作流简介 工作流的概念起源于生产制造业与办公自动化领域。工作流是一类能够完全 或部分自动执行的业务过程,根据一系列过程规则,文档、信息或任务在不同的 执行者之间传递、执行。工作流的目的是通过将工作分解成定义良好的任务、角 色,按照一定规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、 降低生产成本的目的。 工作流模型中一些重要的属性如下: 1 工作流的过程定义:是指对业务过程的形式化表示,它定义了过程运行 中的活动和所涉及到的各种信息。这些信息包括过程的开始和完成条件、构成过 程的活动以及进行活动间转移的规则、用户所需要完成的任务、可能被调用的应 复旦大学硕士学位论文1 6 基于构件的配置管理工具研究 用、工作流机的引用关系以及与工作流数据的定义。 2 活动:工作流中的一个逻辑步骤。 3 角色:把参与者与一系列活动相联系的机制。 4 工作流实例:指的是工作流的一次执行过程。 5 工作流机:是一个为工作流实例的执行提供运行服务环境的软件或“引 擎”,它是工作流执行服务的核心,负责对解释过程定义、控制过程实例的执行、 控制工作流中各个活动的执行顺序、并完成与其它工作流机的交互与通讯。 为了实现对业务过程的工作流管理,需要相应的软件系统的支撑。这种软件 系统称为工作流管理系统( w o r k f l o wm a n a g e m e n ts y m e m ,w f m s ) 。根据w f m c 的定义,工作流管理系统是“一种在工作流形式化表示的驱动下,通过软件的执 行而完成工作流定义、管理及执行的系统”,其主要目标是对业务过程中各活动 发生的发后次序及同活动相关的相应人力或信息资源的调用,进行管理而实现业 务过程的自动化。 2 3 基于构件的软件开发 随着软件产业的迅速发展,软件日益面临上市时间、开发效率、使用质量, 以及可持续更新维护等扰人的问题。软件复用成为提高软件生产力和质量的最有 效的手段之一。为了有效地实施复用,传统的软件开发的方式必须发生变化。基 于构件的软件开发( c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t ,简称c b s d ) 指使用 可复用软件构件设计和实现软件系统。c b s d 的理论建立在软件工程、软件复用 和分布式计算等基础之上,已经成为新一代的软件开发方法。 复旦大学硬士学位论文1 7 基于构件的配置管理工具研究 构件开发 软件开发 图2 ,l 基于构件开发的框架模型 基于构件开发的框架模型,可以主要抽象为两大过程和一个基础设旌。两大 过程是:开发可复用构件( d e v e l o p m e n tf o rr e u s a b l ec o m p o n e n t ) 年t 使用可复用构 件开发( d e v e l o p m e n tw i t hr e u s a b l ec o m p o a e r t t ) 。一个基础设施是指复用资源库 ( 简称构件库) ,是两大过程的集散点,对软件企业来说是长期积累的软件核心资 产管理设施。 c b s d 方法使软件开发从“工程”阶段演化到“生产”阶段。基于构件的软 件开发方法充分利用了软件复用技术,复用部分的开发成本可降至原有成本的 1 0 2 5 ;同时构件的规范性也相应提高了软件质量,使复用部分的软件缺陷 率下降了4 倍左右。c b s d 方法在c o r b a 、e j b 和d c o m 等构件标准的支持下 已经有了相当快的发展。 2 3 1 基于构件的软件开发对配置管理提出的新要求 软件企业逐步进入基于构件的软件开发时代。c b s d 使软件企业的开发方式 有较大的改变,主要为: 1 ) 软件的开发变为已有构件的集成,同时这些构件以及产品组成和产品演 化将成为管理的关键。 2 ) 由于产品本身存在演化,而构件本身也存在演化,构件本身在不同产品 中出现不同版本,而不同版本之间又存在兼容性问题。 以上两个方面都与配置管理有密切的关系。从配置管理的角度看,c b s d 目 复旦大学硕士学位论文 1 8 基于构件的配置管理j :具研究 前面临着以下这些问题: 1 ) 不同粒度构件、构架的管理问题。在c b s d 中,需要管理的配置项不仅 仅是以往的文件,还包括原子构件、复合构件、构架等不同粒度的配置项,即配 置项的粒度可大可小。以往的s c m 工具无法完全提供对这些可变粒度的配置项 的管理。 2 ) 对企业构件库的支持问题。企业构件库是软件企业开展c b s d 的核心, 如果没有相应的配置管理支持,企业构件库将很难在软件开发过程中发挥应有的 作用。以往的s c m 工具缺乏对构件库的持续支持,使实施c b s d 的企业无法充 分利用企业构件库资源。 3 ) 对基于c b s d 的软件开发过程的支持问题。软件开发方法的转变必然引 起相应的软件开发过程的转变。以往的配置管理支持的软件过程管理已经不能适 应c b s d 的需要。 4 ) 对新的产品发布形式的支持问题。以往的软件开发中,系统开发的目的 是以可运行产品的形式提交最终系统。而c b s d 面临新的构件和产品形式。例 如w e bs e r v i c e 技术使得w e b 服务和w e b 在线构件成为新的产品发布和构件发 布形式。这些产品和构件同样需要配置管理的支持。 在上海构件库项目进入领域工程实施时,很多企业就遇到了配置管理方面的 问题 2 2 】。因而有必要在以往配置管理的基础上进一步研究支持c b s d 的配置 管理及其工具。 从配置管理的角度考虑,c b s d 和以往的软件开发方法有很大的不同。其特 别体现在系统的构造方法不同: 以往的软件开发方法中,系统用编程语言实现。系统通常由一组源代码文件 实现,这些文件经过编译和链接构成最终系统。当系统发生变化时,一个或多个 源代码文件必须相应的作出修改。而在c b s d 中,编程语言用来实现原始构件, 构件描述语言和构架描述语言用来组装复合构件和系统。 由此,c b s d 对配置管理提出了五个方面的要求: 1 ) 配置识别:配置识别主要解决哪些可以成为配置管理中的管理对象( 配 置项) 和如何来选择配置项组成配置的问题。c b s d 中主要接触到的是构件和构 架,这时候的配置项就应该是原子构件、复合构件和构架。 2 ) 支持可变粒度的配置管理:以往的配置管理过程中,配置项在很大程度 上是一种物理单元,一般是在文件级上进行管理。对文件的管理是以字符集的管 理为基础的,比如文件内容的比较与归并。从本质上来说,这是一种非结构化的 配置管理方式。而c b s d 中系统构造是一个递归过程( 原始构件一复合构件一 系统) 。在这个过程中,任何一个抽象层次上的产品都应该作为配置项进行管理。 复旦人学硕士学位论文 1 9 基于构件的配置管理工具研究 这时的配景项有可能是一组物理单元的组合,是一个逻辑单元。因为配置项内部 具有逻辑结构,所以这是一种结构化的配置管理方式。因此,相应的配置管理也 应该由单一的文件粒度扩展为对可变粒度( 不同抽象层次上的逻辑单元) 配置管 理的支持。 3 ) 版本控制:版本控制可以说是配置管理中核心的部分,c b s d 要求对不 同的配置项有不同的版本控制策略,对于原子构件来说,物理上它是由一组文件 构成的,它的版本演化不能完全根据其组成的文件来,要有选择性。复合构件的 版本变化就要包括两方面,是构架本身的变化( 结构的改变和原子构件的替 换) ,二是组成成分( 原子构件) 的版本演化也要影响它的版本。 4 ) 支持基于c b s d 的软件过程管理:c b s d 使得以往的软件过程发生了很 大变化。构件、构架的设计、开发、测试等活动已不再局限于当前系统的开发, 而是要面向企业整个c b s d 过程。因此,配置管理中的软件过程管理必须体现 新的c b s d 特点。 5 ) 协同开发:在c b s d 中,开发人员被分为两类,构件生产者和构件消费 者,配置管理需要协调好构件生产者与构件生产者之间,构件消费者与构件消费 者之间,尤其是构件生产者与构件消费者之间的协同开发。 2 3 2 本文的研究意义与动机 软件开发方法发展至今,基于构件的软件复用已经成为提高开发效率、缩短 发布时间、减少维护费用密不可分的一种开发模式。正如2 1 4 小节所介绍的, 已有很多厂商和实验室推出了自己的s c m 产品或原型,如v s s ,c l e a r c a s e ,j b c m 等,但是这些工具对基于构件的软件配置管理的支持非常有限,很多系统只是简 单的定义配置项作为一组文件的集合,没有定义构件,尤其是复合构件内部的逻 辑结构和它们对外的接口,没有制定合理的构件版本演化规则。与此同时,大多 数系统只支持预定义的一个变更过程管理,软件按照这个过程的规定进行开发, 没有实现灵活的用户自定义的变更过程。 针对以上的情况,从企业的迫切需求和新技术的发展要求出发,在充分吸收 现有研究成果的基础上,本文提出了一个基于构件的配置管理工具f d s c m ,并 在文中给出了实现该工具的主要关键技术。 复旦大学硕士学位论文 基于构件的配置管理工具研究 3f d s c m 配置管理系统的设计 3 1 系统简介 从第二章的分析可以看出,c b s d 对配置管理提出五点新的要求。在此基础 上,我

温馨提示

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

评论

0/150

提交评论