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

(计算机软件与理论专业论文)基于构件的可变粒度配置管理方法研究.pdf.pdf 免费下载

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

文档简介

论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取褥的研究成果。论文中除 了特别加阻标注和致谢的地方外,不包含其他人或其它机构已经发表或撰写过的 研究成果。其他同志对本研究的启发和所做的贡献均己在论文中作了明确的声明 并表示了谢意。 作者签名:秀褊髻日期: 论文使用授权声明 ,口商胁膳 本人完全了解复旦大学有关保留、使用学位论文韵规定,即:学校有权保留 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内 容,可以采用影印、缩印或其它复制手段保存论文。保密的论文在解密后遵守此 规定。 作者签名:薹鱼咝丝 导师签名:日期:! 型l 型! 基于构件的可变粒度配置管理研巍 【摘要】 基于构件的可变粒度配置管理方法研究 软件配置管理是贯穿于整个软件过程的软件质量保证活动。在软件开发的诸 多质量保障活动中,配置管理处于核心地位。基于掏件的软件开发 ( c o m p o n c n t b 船e ds o 觚,a f ed e v e l o p m e n t ,简称c b s d ) 能够在很大程度上提高 软件企业的开发效率和产品质量。然而c b s d 在软件开发实践中并没有如期望 的那样得到广泛应用。其中很重要的一个原因是现有的软件开发环境和c a s e 工具不能很好地支持c b s d 这一新的开发模式,例如配置管理工其。本文的主 要目标是解决现有软件配置管理工具对基于构件的软件开发( c b s d ) 的支持不 足的闻题。 本文通过比较传统配置管理与c b s d 开发之间裂痕,给出了一个基于构件 的配置管理方法和模型( 文中简称为f d 模型) ,提出了一个符合c b s d 要求的 可变粒度的版本管理模型以及流程可订制的变更管理模型。并通过构件管理模型 管理c s b d 中构件的其他部分( 除版本管理,变更管理外) ,来解决传统配置管 理方法对新出现的软件开发方法支持不足的问题。 文中对配置管理的配簧痒设置技术,并行开发管理及变更控制与变更流程等 技术进行了实现。 关键词:构件,软件开发方法,基于构件开发方式,软件配嚣管理,可变粒度 复旦人学硕+ 学位论文 4 一 一。墨主丝堡堕要奎婆崖墼笪笪堡堡壅 【a b s t 懵c t l s o f 细a r cc o n f l g i l 越t i o nm a n a g e m e n t ( s c m ) 咎a f a n t e e st h eq u a l i | yo ft l l e s o f 澌a r et h u g h o u ti t sw h d ep m c c s s i nm 锄yq u a h t yg u a r a r t t e e 耐t h es o 胤噔悖 d e v e l o p m e m ,t h es c mi s 咖em o s ti m p o n a n t 。c o m p o n e n t b a s e ds o 行w a t ed e v e l o p m e n t ( a b b r c v i a t c da s ( 、b s 【) ) c 柚m p i d l yr a i s cas o f t w a r eo 唧o m t i o n sd c v e l o pe f f i c ! i e n c y 柚dt h es o f t w a r c sq u a i i t y b u tt h ec b s di sn o t w i d e l yu s e di l lt l l es o f t w 盯e d e v c 】o p m e n t 1 1 l em o s ti m p o n a mr e a s o nj sm a h es c mc a n7 ts u p p o nm ec b s d v e r yw e l l s o t h i s p a p e r w 越t 协k t l d d u c ca s c m m o d e 王w h i c h c a ns 印p o f t t h e c b s d v e r yw e l l w ea n 盆l y z et h cg 印o ft h et i a d i t i o n ss c ma n d 蜘ec b s d t h e ni n 拄0 d l 批a c o m 护n e m - b a s e ds c mm o d e l ( a b b f c v i a t c d 船f dm o d c l ) 。sp a 附i l l t 刚u c e s & m o d e io ft h cc o m p o n e n t _ b a s e ds o f 研a r cc o n f i g i l r a t j o nm a n a g e m e n t i tp u t sf b n a r da m o d e lo fv e 商o na n dc o n e g u f a t i o nm a n a g e m e n tw j t hi t s o 醐c h 封a c t e f j s t i ci n a o c o r d a i l c ew i t ht t l ed e n l a n d so ft h ec o m p o n e n t - b a s e ds o f t w a r ed e v e l 叩i n gm e t h o d s m e a n w h i i ei n r c s p o n s et ot h en e wd e m a n d so ft h ec o m p o n e n t - b a s e ds o f w a r e m e 幽o d s ,t h i sp a p c r 以s op f o p o s e san e wm o d e 卜c o i n p o 珏如tm a n a g e m c n t ,t 0s o l v 。 t h ei n c o o 删n a t i o nb e 研e c nt h el r a d 主t i o n a lc o n 蠡g u r a t i o nm a n a g e m e n tm e 维o d sa n dt h e n e ws o f w a r ed e v e l o p 妇l gm e t l l o d s w ej m 纠e m e n t e dl h et e c 呐o j o g yo ft h es c m sd a t a b a s es e 挂i n 岱p a r a f | e i d e v e l o p m e n ta n dt h ec h a n g ef i o ws e t t i n g s k e yw o r d s :c o m p o n e n t ,f l l n c t i o no fs o f t a r cd e v e l o p ,c o m p o n e n tb a s e ds o f c w a r e d e v e l o p m e n t ,s o f t w a r ec o 耐i g u r a t i o nm a n a g e m e n t ,c a nc h a n g es c a l e 复日大学烦十学位论文5 基于构件的可变粒度配置管理研究 第一章引言 配置管理是一门雳来记录并控制产品数据的管理科学。软件配置管理 ( s o n w a f cc o n a g u r a 畦o nm a 舱g e m e n t ,以下简称s c m ) 相对于广义的配置管理 有其特殊的意义。s c m 活动的目标就是为了标识变更、控制变更、确保变更正 确实现并向其他有关人员报告变更。从某种角度讲,s c m 是种标识、组织和 控制软件演化的技术,目的是使错误降为最小并最有效地提高生产效率。s c m 是软件过程的关键要素,是控制软件系统演化的规程。它包括标识给定时间点上 软件的配置、控制配置更改、维护配置在整个生命周期中的完整性和可跟踪性。 软件复用已经成为提高软件生产力和质量的最有效的手段之一。为了有效地 实施复用,传统的软件开发的方式必须发生变化。基于构件的软件开发 ( c c l m p o n e n t b a s e ds o f 咐a f ed e v e l o p m e m ,简称c b s d ) 指使用可复用软件构件设 计和实现软件系统。c b s d 的理论建立在软件工程、软件复用和分布式计算等基 础之上,已经成为新一代的软件开发方法。e b s d 是一种围绕软件构件库,包含 构件的开发和复用,以及构件和应用系统的演化的全新开发方式,因此相应的配 置管理模式和方法也与传统的配置管理有很大不同。 本章将首先介绍软件配置管理以及基于构件的软件开发方法,然后对面向 c b s d 的配置管理的新特性和新需求进行了分析。 1 。1 软件配置管理 软件配鬣管理是贯穿于整个软件过程的软件质量保证活动。它是一种对软件 系统的修改进行标识、组织和控制的技术。其作用是协调软件开发,减少由变更 而引起的混乱,从而提高软件生产效率,确保软件质量。随着软件开发规模的日 益扩大,软件配霞管理目益成为软件开发过程中的关键要素。它是c 涮二级( 可 重复级) 的一个关键过程域,面i s o i e c1 2 2 0 7 国际标准也把它作为软件生命周 期过程中基本过程的重要支持过程。软件配置管理的实施,保证软件开发实施过 程中依据项霸进度和要求,适时调整软件配置管理系统,保证软件开发有序进行, 保证开发过程版本和最终发布版本正确、统一。为了开发出满足用户需求的、高 质量的软件产品是其追求的目标,而实现这一目标的关键是建立起一个稳定、可 控、可重用的软件开发过程。 另外如果要持续的改进软件开发过程改进,就需要有明确的、量化的对现状 的分析和对未来的预期,这些数据来源于对软件过程的度量,丽进行度量的前提 和基础就是软件配置管理。所以,软件配置管理工作是以整个软件过程的改进为 复q 大学硕十学位沦文 基于构件的可变粒度配置管理研究 目标,是为软件项目管理和软件工程的其他领域打好基础,以便于稳步推进整个 软件企业的能力成熟度。而做好软件配置管理是迈向软件开发规范化管理的第一 步。 软件配置管理对于软件开发管理是如此重要,它的主要思想和具体内容在于 版本控制。版本控制是软件配置管理的核心思想之一,是指对软件开发过程中各 种程序代码、配置文件及说明文档等文件变更的管理。版本控制最主要的功能就 是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地 记录下来。任何对文件的改变,都会引起文件的版本号的增加。除了记录版本变 更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作战, 版本控制可以有效地解决版本的同步以及不同开发者之间的开发通讯问题,提高 协同开发的效率。并行开发中最常见的不同版本软件的b u g 修正问题,就可以通 过版本控制中分支与合并的方法有效地解决。有效地记录并控制软件开发过程产 品版本演化进程,是过程控制的基础。软件配置管理体系的有效实施,使软件开 发活动合理有序,为进一步提高软件项目管理和开发管理奠定了基础 根据m e e 7 2 9 1 9 8 3 标准,软件配置管理活动包括: 1 配置识别:反映产品结构,标识产品组件及类型并提供唯一标识,并以 某种形式提供对它们的存取。 2 变更控制:通过设置基线等方式,控制软件生命周期中软件产品变更。 3 状态统计:记录报告产品组件及变更请求状态,收集组件的重要数据。 4 审计和评审:确认产品的完整性并维护产品组件间的一致性。 配置管理活动经拓展后,产品构建、过程管理、小组协作也被纳入了s c m 的基本活动中。s c m 工具管理的对象是软件开发过程中产生的资料、各种版本 文件、程序等所有资源。在c m m 中,它是从一级向二级转换的关键过程域:在 i s o9 0 0 0 中,它也扮演着非常重要的角色。目前,s c m 几乎已经发展成为集成软 件开发环境的最重要的组成部分之一,它与一个软件企业的软件过程乃至整个企 业的工作流程密切相关。 软件配置管理是对一个软件系统整个生命周期的管理,是一种强制性手段, 它利用了工程上已经成熟的方法,对丌发进行全方位的管理。实施s c m 有很多 好处,软件开发人员、测试人员、项目管理者、质量保证人员和用户都能从中获 得益处。下面是s c m 的一些优点: 1 通过把程序及所有文档作为配置项,并进行统一标识管理,有效维护了 软件的一致性。 2 具有在并行或串行发展过程中跟踪各种变化的能力。 3 具有在从需求到结果的过程中跟踪所有流程的能力。 复旦大学硕十学位论文 基于构件的可变粒度配置管理研究 4 为将要被定义、重复和改进的软件开发流程提供一个稳定的环境。 5 提供一个可臣收集产品统计信息的环境,允许快速方便地审计。 6 为各个小组之间的通信提供通道,有助于团队开发。 7 它通过有效的入员组织和权限控制很好地解决了开发及维护过程中人员 的变更控制。 总的来说利用软件配置管理能够降低开发成本,加快开发周期,提高软件的 质量,降低风险等。正因为如此,软件配置管理成为软件开发过程的必要环节和 软件开发管理的基础,支持和控制着整个软件生命周期。若要有效的实施软件配 置管理,除了培养软件开发者的管理意i 外,更重要的是使用优秀的软件配置管 理工具。 本文面向构件化开发的配置管理模型中,版本管理主要考虑了构件、体系结 构等新的软件制品的演化需求。面向c b s d 的配置管理新特牲在1 6 节中给出, 而面向c b s d 的版本管理模型将在第三章中进行讨论。 1 2 软件配置管理基本概念 软件配置管理的相关活动以及在软件开发实施过程涉及的相关概念以及人 员角色很多,这里加以简单的介绍。 配置顼:可独立演化的开发制品基本实体,是配置管理的基本对象,具有版 本以及独立的演化历史。配置项可以是软件开发过程中产生的任何制品,包括源 文件、目标文件、文档、脚本文件、数据等。配置项可以存在于多种粒度和抽象 层次上,包括文件、模块、构件等。 配置:配置是配置项的有机组合,往往构成了更大粒度上的配置单元,例如 从文件到模块或构件、从原子构件到复合构件。配置的版本演化体现在两个方面: 配置组成成分的变化以及某些配置成分的版本变化。 基线:綦线是一个配鹫,通常是当开发工作达到一个里程碑时,由项目经理 确认产生作为f 个阶段开发基础的一个总的配置。产品从设计开始到交付使用过 程中盎若千基线组成。 检入,j 佥出;又称为上传下载,是本地工作区与配置管理服务器进行交互的 基本过程。根据开发的属性,检出又分为排他式检出与共享式检出,当使用排他 式检出时,其他用户不能再对该文件作检出操作。共享式梭出则允许其他用户对 该文件作检出操作。 交更管理:变更管理也是配置管理的重要组成韶分之一,比我们一般说的 b u g 管理的范围要更加广泛。b u g 只是变更来源的种。其他的来源有:客户修 改需求,切换产品平台等等。 复日大学硕士学位论文 8 基于构件的可变粒度配霹管理研究 版本控制:是配置管理的核心部分,是对开发过程中配置的版本进行记录和 保存,通过合适的规贾4 来创建新舨本,删除暇版本,合并已有版本等,提供种 策略来选择版本创建基线。 配置管理系统的角色:通过对配置管理系统角色的分析,可以更加明确配置 管理系统的需求,从而明确配置管理的目标和要求。一般软件配置管理过程中涉 及的人员角色主要包括: 项目经理:项目经理在配置管理方面的职责是依靠配置管理员、系统管 理员和系统体系结构设计人员的帮助,制定项目的组织结构和配置管理 策略。这些工作包括:定制开发子系统,定制访目控制,制定常用策略, 制定榘成里程碑,以及进行系统集成。 配置管理员:配置管理员的职责是根据项目经理制定的开发组织结构和 策略,实施、维护配置管理的环境。其主要职责如下;创建配置管理库, 对存储库进行日常备份和恢复,维护配置管理环境,及管理配鬻管理相 关的用户。 软件开发入员:软件开发人员依据项目的开发和配置管理策略,仓4 建、 修改和测试开发配置顼。 集成入员:对软 牛进行归并,形成相应的基线或发布版本。 质量管理人员:需要对软件配置管理有较深的认识,其主要工作是跟踪 当前项目的状态,测试,报告错误,并验证其修复结果。 配置管理权限:权限用于控制软件配置管理系统用户的操作。与过程相关的 权限有:建立过程模型,建立角色模型,定义项目过程( 过程例化) ,定义项目 角色,为角色分配实施者,定义角色权限,建立配置,确立基线,审核基线,变 更审批等。这些权限应授予相关的角色,代表了角色的职责和权力。权限设置也 是在企业级的角色建模和项目级的角色例化过程中完成的,用户同样具有极大的 自主权。 配置管理流程:配置管理实施的一个重要阶段就是制定配嚣管理的流程,其 主要目的是根据项目开发的需要,制定相应的配置管理流程,以更好地支持开发, 主要活动包括: 定制并行开发策略:合理的并行开发策略应该具有以下特点:协调项目的复 杂性和需求,统一宦建分支类型和元数据 2 3 】,为开发过程中的变更集成制定有 效的规范,适时反映开发过程中方法和需求的变化。 发布版本管理:软件开发过程中的一个关键活动是提取配置项的相关版本, 以形成软件系统的阶段版本或发布版本,我们一般将其称为稳定基线。个稳定 基线代表新丌发活动的开始,而系列定制良好的活动之后又会产生一个新的稳 复旦大学硕十学位论文 9 基于构件的可变粒度配置管理研究 定基线。有效地利用此项功能,在项目开发过程中可以自始至终管理、跟踪配置 顷版本问的关联。 1 3 配置管理模型 早期的配置管理工具采用的都是基于文件检出,梭入的开发模型,不能很好 地支持并行开发以及变更管理。因此,后续的许多商l k 配置管理工具中陆续采用 了一些新的配置管理模型,主要包括以下五种: 1 c i c o 摸型( c h e c ( o u 状、h e c ki np a f a d i 舯) c l c o 模型是基于库概念的。这种模型主要关注的是单个文件的版本控制, 通过加锁方式实现多用户访闻的并发控制以及修改的合并和分支。c i c o 模型涉 及到库和文件系统。用户以读或写的方式从库中检出文件,并且将其置于实际的 工作区域文件系统中,文件修改完毕后再检入库中。此时,系统产生该文件 的一个新版本。如果是以写方式检出文件的话,文件将被上锁,以确保互斥修改。 配置管理系统可以对库施加存取控制,确定某用户是否有权访问一个文件,以及 访闯的方式;而在用户工作区内,存取控制和镄机制就完全取决于文件系统本身 了。r e v i s i o n c o n t f o l s v s t e m ( r c s ) 就属于这种类型的配置管理系统。 2 组成模型( c o m p o s i t i o np a r a d i g m ) 组成模型是有c i c o 模型自然导出的,建立于组件版本图的基础之上,同时 依赖于存储库和工作空间的概念,可阱通过对组件加锁进行并发控制。该模型由 一个系统模型( s v s t e mm o d e l ) 和一套版本选择规赂( v e t 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 dc o f i g u r a t i o ) 。若在不同时刻运 用选择规则,得到的组件版本并不一致,这样所得至0 的配置则被称为部分绑定 ( p a n i a l l yb o u d ) 或配置模板( c o n 逝m r a t i o nt e m p l a t e ) 。选择规受q 可以使用两 种方式来描述。第一种是把选择规贝口看作带标签的版本图的搜索路径,包括用户 工作区、其他开发者的工作区、分支、版本等。第二群是把组件看作带有缓性( 如: 版本标识,修改日期等) 的对象,用一阶谓词来描述选择规则。d o m a i n s o f 咐a r e e n g i n e e r i n ge n v i r o 舯e n t ( d s e e ) 是属于这种类型的配置管理系统。 3 长事务模型( b n gt r a i l s a c t i o np a r a d i g r n ) 长事务模型是基于库、工作区、透明视图和事务概念的。该模式支持系统以 墓旦大学硕士学位论文 1 0 基于构件的可变粒度配置管理研究 系剜原予变化的方式进行演化,以团队的并发控制方式进行协调。与组成模型 相反,开发者首先选择系统的配置版本。选定的配置版本决定了组成该配置的组 件的版本。在长事务模型中,修改是在一个事务中进行的。用户选定一个特定的 版本标志麓事务豹开始。在事务被提交之前,修改对外部是不可见的。系统使用 并发控制机制来解决多事务之间的协调问题。事务的提交生成一个新的配置版 本。系歹| j 的修改产生一个配置舨本序列,成为开发路径( d e v e i o p m tp a t h ) 。 配置版本也可以有分支,形成独立开发路径( k d e p e n d e md c v e l o p m e mp a t l l ) 。 n e t w o r ks 磕w a f ce n v i m n m e n t ( n s e ) 是属于这种类型蟾配置管理系统。 4 变更集模型 变更集是基于库和变更集概念的,它着重于系统的逻辑变化。在这种模型中, 配置由基线和变更集共同组成。例如对系统发布版本的补丁程序就可以看成是一 种变更集。变更集用来对逻辑变更进行跟踪,通过在逻辑变更的基础上定义新的 配置。变更集模式本身不提供锁机制来进行并发控制,而是通常与c i c o 模型共 同使用。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 f c a sz c u e r 博士提 出了种基于特征逻辑的版本集模型。舨本集模型包含并扩展集成了商业环境中 的4 种模型,提供了一个统一几种s c m 任务的方法。版本集是一系列对象的集 合,其特点是一个特征术语( f e a t u r et e h n ) 一个布尔表达式通过( f c a t u r c :v a l u e ) 对的属性表示公共或独立的版本性质。遵循s c m 的惯例,版本集根据对象的属 性来描述对象的特征。版本集概括了常用的s c m 概念,例如构件、库、工作空 间、变种集、修订版历史。版本集使用特征逻辑,对版本集进行交、并、补等操 作,来表示概括s c m 模型的语义。 1 4 变更管理 软件变更管理必须满足变化控制和变化追踪这两方面的需求。一个变更从提 出到处理完毕包含了一系列的评估、批准、任务分配、实施、审核确认等步骤。 从配置管理的角度看,变更生命周甥主要包括审核决策和实施两部分。审核决策 在开发小组外部进行,主要体现为一系列文档的处理过程。而实施部分则体现为 一系列开发活动和版本演化。 传统的变更管理系统只关注于变更请求的生命周期管理( 体现为变更管理模 型中一系列的变更处理流程) ,并未将版本管理与变更管理相结合。通过这样的 处理流程,每一个变更从提出到结束的处理信息、文档都可以得到控制和追踪 复目;l 学硕士学位论文 1 1 基于构件的可变粒度配置管理研究 但用户往往还特别关心另一个问题:变更处理过程中产生了哪些新版本、工作羹 魏谤、是否能够建立舨本与变更请求之阈靛追踪关系等。由此可见,这样变更请 求的处理结果无法体现出版本的实际演化情况,因此无法体现出变更处理的实际 结果| 三f 及基予变更请求的配置状态分析。在本文提出的配置管理模型中,交更管 理通过活动与舨本管理进行无缝集成,从而使相应的舨本管理活动有了明确的目 标和过程( 满足变更请求) ,而另方面。交觅管理相关内容将在第殴章中介绍。 1 5 基于构件的软件开发方法介绍 构件技术就是种类似于“零部件组装”集成组装式的软件生产方式。它把 零件、生产线程装配运行的概念运用在软件产业中,彻底嚣破了手工俸坊式的软 件开发模式。构件是软件的构成元素,均件具有一定的功能和结构,弗符合一定 的标准,可以完成一个或多个特定的服务,构件隐藏了具体的实现,通过接口对 步 提供服务。 般而富,构件是软件系统中具有相对独立功能,可以明确辨识、接口由契 约指定、和语境有明显依赖关系、可独立部署、可组装豹软释实体,并且可l 美重 复使用。广义上讲,构件可以是数据,也可以是被封装的对象类、软件构架、文 档、测试用侧等。随着对软件复羽理解酹深入,构件的概念已不再局限于源代码 构l 牛,蠢是延 串到篙求,系统和软件的需蕊规约,系统和系统的架构,文档,测 试计划,测试案例和数据以及其他对开发活动有用的信息。这些信息都w 以称为 是可复用豹构件f 6 】。旗软件开发流程来浼,代码的编写工作大约只占整个流程 的1 6 的时问。如果把构件的概念局限于其中的话,构件的效能就受到了严重的 制约。 构件库是支持基于构件的软件开发( c b s d ) 的基础设旖。在构件复用的过 程中需要一个实用有效的工具来支持构件的管理、存储和检索。对于开旋人员来 说一方蘑需要有一个构件提交的场所用以发秘自己开发的构 孛,另方巍需要在 软件开发的过程中尽快检索到自己所需的构件,这两方面都需要有一个强有力的 构彳孛痒的支持。构件痒中构件豹管理具有较大醣灵活性,小规模企业内部的构件 库可以是集中式的系统,并且可以在一定程度上促进企业软件复用。但是,由于 构件数量的有限,软件开发的效率提高必然会受到很大的局限。只有众多软件企 业联合,形成一个统一的软件构件库,采用基于网络的分布式管理方式,不同的 构件库之间在物理上呈分布结构,在逐辑上形成一个整体,为不同领域构件提供 一个发布、管理、检索、交易的场所,才能真正为软件开发效率带来质的提商。 撼于构件的软件开发方法所涉及到的主要概念如下: 1 构件 复疑大学碗= b 学位论文 1 2 基于构件的可变粒度配置管理研究 通常可以认为:“构件是可以被多个软件系统复用的具有独立功能的系统构 成成分” 4 。现在有很多种构件的标准如:m i c r o s o f t 的c o m d c o m 、s u n 的 j a v a b e a n e j b 、w e b s e r v i c e 、c 0 r b a 等。从物理上来看构件就是一组文件的集合, 从逻辑上来看构件就可以分为两类,原子构件和复合构件。 2 原子构件 是配置管理中最小的逻辑单位,通常由一组文件组成,它们之间没有关系, 只是简单的叠加构成一个集合,对外提供服务的同时也可以请求其它构件的服 务。 3 复合构件 是由原子构件或复合构件组成的构件,组成它的构件之间有较强的联系,在 不同的系统中,复合构件可以有也可以没有实体。 4 构架 是构件的组合方式的一个描述,仅仅是一个描述,不存在实体。 5 。可复用构件 是指具用相对独立的功能和可复用价值的构件。可复用构件应该具备以下属 性: 1 1 有用性:构件必须提供有用的功能; 2 1 可用性:构件必须易于理解和使用: 3 ) 质量:构件及其变形必须能正确工作; 4 1 适应性:构件应该易于通过参数化等方式在不同语境中进行配置: 5 ) 构件应能在不同的硬件运行平台和软件环境中工作。 1 6 基于构件的配置管理的新特征 软件企业已经逐步进入基于构件的软件开发时代。c b s d 使软件企业的开发 方式有较大的改变,主要为: 1 软件的开发变为已有构件的集成,同时这些构件以及产品组成和产品演 化将成为管理的关键。 2 由于产品本身存在演化,而构件本身也存在演化,构件本身在不同产品 中出现不同版本,而不同版本之间又存在兼容性问题。 以上两个方面都与配置管理有密切的关系。从配置管理的角度看,c b s d 目 前面临着以下这些问题: 1 不同粒度构件、构架的管理问题。在c b s d 中,需要管理的配置项不仅 仅是传统的文件,还包括构件、复合构件、子构架、构架、系统等不同粒度的配 置硕。即配置项的粒度可大可小。这些可变粒度的配置项的管理是传统的s c m 复目大学顺十学位论文1 3 基于构件的可变粒度配置管理研究 工具所无法解决的。 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 曲s e n ,i c e 技术使得w 曲服务和w b b 在线构件成为新的产品发布和构件发 布形式。这些产品和构徉同样需要配置管理的支持。 从配置管理的角度考虑,c b s d 和传统的软件开发方法有很大的不同。其特 剐体现在系统的构造方法不同: 传统的软件开发方法中,系统用编程语言实现。系统通常由一组源代码文件 实现,这些文件经过编译和链接构成最终系统。当系统发生变化时,一令或多个 源代码文件必须相应的作出修改。而在c b s d 中,编程语言用来实现原始构件, 构件描述语言和构架描述语言用来组装复合构件和系统。 由此,a 於d 对配置管理提出了新豹需求: 1 支持c b s d 中涉及到的新的配置管理对象 c b s d 围绕的中心就是复再,可复用资源的范围涵盖了软件开发的各个阶 段。c b s d 使得配置管理的对象有了新的内容。除了原始构件本身,原始构件构 成的复合构件、系统构架都应该成为配置管理的对象。 2 支持可变粒度的配援管理 传统的配置管理过程中,配置项在很大程度上是一种物理单元,一般是在文 件级上进行管理。对文件的管理是以字符集的管理为基础的,比如文件内容的比 较与归并。从本质一匕来说,这是一种非结构化的配置管理方式。而c b s d 中系 统构造是一个递归过程( 原始构件一复合构件系统) 。在这个过程中,任肖一 个抽象层次上的产品都应该作为配置项进行管理。这时的配置项有可能是一组物 理单元的组合,是一个逻辑单元。因为配置项内部具有逻辑结构,所以这是 一种结构化的配置管理方式。因此,相砬的配置管理也应该由单一的文件粒度扩 展为对可变粒度( 不同抽象层次上的逻辑单元) 配置管理的支持。 3 支持基于c b s d 的软件过程管理 c b s d 使得传统的软件过程发生了很大变化。构件、构架的设计、开发、测 复日大学硕十学位论文 1 4 基于构件的可变粒度配置管理研究 试等活动已不再局限于当前系统的开发,而是要面向企业整个c b s d 过程。因 此。配置管理中的软件过程管理必须体现新的c b s d 特点。 4 支持w 曲服务发布和在线构件配置管理 w c b 服务和在线构件是产品发布和构件发布的新形式。配置管理必须针对新 的构件和产品形式的特点提供相应的配置管理支持。 另外为了有效支持对构件的管理,基于构件的配置管理正具还应该提供下列 构件相关的基本功能: 1 构件豹获取 构件的获取,应该有多个渠道,必须能提供连接到标准构件库的接口。通过 该接口,可以方便获取构件,并对获取构件进圣亍配置管理。 2 构件的共享 构件开发完成后,可以让开发者或者其他相关人员。通过共享接口,上传到 标准构件库供其他用户使用。共享方式可以是收费的,免费的及开源的等等。 3 构件的检索 提供检索功能,方便用户在海量的构件库中找到自己需要的构体,为了提供 构件的检索功能,必须有特定的方式和方法对构件进 亍描述。这在以后章节会详 细描述。 4 构件标准化 即对构件有一定的描述技术和规范,标准化包括构件架构的标准化与构件库 的标准化,即各级构件库都有统一的接口,方便用户接入。各类不同的构件具用 统一的架构,这样做的好处是可以提高构件的复用性。因为构件就是为了复用而 开发的。 配置管理的粒度 传统的软锫:配曼管理工具如c v s ,v s s ,c l e a f c a s e 等等都是以文件作为其最小的 管理粒度的。但是基于构件的开发,构传可以是一系列文件的组合也可以是文件 和构件的混合体,也可以是不同的构件组成的复合构件。对于构件的消费者来说 单个的构件中的文件对其来说没有太多的意义,所以也不必要再对这实行版本管 理。其粒度完全可以是整个构件乃至整个构架,子系统。但是对于构件开发者而 言其内部文件的演化对其来说是必须进行管理的内容所以这个时候配置管理的 粒度还应该是文件缀的。基予通常的开发单位般同时为构件的消费者和开发者 所以配置管理盛须提供可变的粒度以适应c b s d 。 为了有效的支持基于构件的软件开发过程,我们提供了对基于构件开发过程 中的可变粒度的版本控制,支持对构件库的管理,对构件视图分为开发视图与复 用视图两类,这样能更加有效的复用和维护构件。同时提供相应的过程管理,与 复旦大学硕七学位论文 基于构件的可变粒度配置管理研究 变更管理。在第二章中具体介绍这些。 复旦大学预 j 学位论文1 6 基于构件的可变粒度配置管理研究 第二章f d 版本管理模型 在介绍版本管理模型之前我们先来了解下f d 模型的整体 2 1f d 整体模型 第一章中我们提到了,基于构件的软件开发过程与传统的软件开发过程相 比出现了很多新特征。那这些特征在具体的软件开发过程中是如何表现出来的 呢? 从配置管理的角度考虑,c b s d 和传统的软件开发方法有很大的不同。其 特别体现在系统的构造方法不同: 传统的软件开发方法中,系统用编程语言实现。系统通常由一组源代码文 件实现,这些文件经过编译和链接构成最终系统。当系统发生变化时,一个或 多个源代码文件必须相应的作出修改。而在c b s d 中,编程语言用来实现原始 构件,构件描述语言和构架描述语言用来组装复合构件和系统。在文件与最终 系统之间多了构件这样一个中间体。下图用来描述c b s d 中的基本元素。 如卜图所示 图1 :基于构件的软件开发活动图 复e 【人学硕i + 学位论叟 1 7 基于构件的可变靛度配置管理研究 跟传统的开发活动相比,基于构件软件开发活动主要有2 类开发活动与2 类与外部交互的活动组成。健们分别是; 1 构件生产活动 生产出初始构件的活动,从事这一活动的人员在系统中也称为构件生产 者。其主要目的是开发出在一定领域类具有复用价值的构件。 2 构l 牛消费活动 构件消费活动是指开发人员运用构件库中的构件开发出针对一定客户群 体的产品。从事这一类活动的人员在系统中被称为构件生产者。 3 构件下载活动 构件的最基本的概念楚复用,所以任何企业公司都不可避免的会从外部寻 找适合自己的构件。以提高产品开发速度。所以就会从外面的构件库下载构件。 下载构件这个活动必须被严格的管理起来。不然会造成构件来源,构件版本, 版权等等的混乱。 4 构件上传活动 本企业公司内开发出来的成熟的具有较高复用价值豹构件,也可以上传到 外部构件库供其它企业或个人有偿( 无偿) 的使用。甚至允许他们更改,二次 开发等等。 原来的开发人员被分为构件生产者与构件消费者两类,构件消费者也就是 构件生产者的用户。所以冀必然会对其提出相应的变更需求。另外一方面构件 的消费者是产品的开发者他们与产品的使用者之闻弼样存在着这种交互关系。 构件的分类,从上图我们可以看到,构件可以是自己开发的,也可以是从 外部构件库下载得到的,从外部下载得到的构件由于版权的问题有些是可以修 改的,有些是不能修改的所以系统的内的构件可以分为三类 1 内部构件 自己公司内部开发人员开发的构件。 2 外部可修改构件 从外部构件库下载得到的构件,构l 牛的拥套人同意该构件的修改操作。 3 外部不呵修改构件 从外部构件痒下载缛到的构件,构件的拥有人不同意该构件的修改操作。 之所以这样分类是因为这三类构件在版本演化,变更管理等等内容上都有 不同的表现。 针对这些新出现的特点我们对配置管理中的变更管理与版本管理都作了 相应的部署。另外新增管理模块:构件管理。如图2 所示; 复臣大学硕士学位论文 1 8 基于构件的可变粒度配置管理研究 图2 :f d 配置管理部署图 为了支持c b s d 开发,各个模型应该具用如下特点: 1 版本管理 从传统的基于文件的版本管理,变成基于文件或构件的可变粒度的版本管 理。版本管理的内容不但包括基本文件的版本管理。还包括构件库中的构件的 版本管理,产品库中的产品的版本管理以及基线库中的基线的版本管理。对于 这些新出现的特征,本文在第三章中提出适应于基于构件开发模式的版本管理 模型。具体的演化过程与技术在那边详细讨论。 2 变更管理 有开发活动就必然会有相应的变更活动。如上图所示在构件生产与构件消 费这两类活动当中必然会产生构件生产变更与构件消费变更的变更活动。所以 在基于构件的开发活动中变更变得更加复杂与频繁。针对这些特点,本文的第 四章详细讨论了变更模型,针对这些问题提出了新的变更管理流程。 3 构件管理 如上图所示,传统的软件开发活动中没有构件l 二传和下载的活动。对这些 活动我们必须加以管理。以免构件的来源,版本,版权引起混乱。这些活动的 管理我们称为构件管理。另外构件管理还包括,构件库的创建,构件的检索等 复日大学硕士学位论文 1 9 基于构件的可变粒度配置管理研究 等。在传统软件丌发过程中不存在的活动。在本文的第五章我们提出了相应的 构件管理模塑来管理这些活动。 2 2 版本管理模型结构 版本管理是配置管理工具的核心功能与基础。它保存软件开发过程中待开 发系统的各种中间状态,控制辩软件系统的修改,记录软件系统的变化过程, 提供标识、组织、存储、提取软件资源历史状态的功能,为配置管理的其它部 分据供基础信息。版本管理是针对软件开发过程中涉及到的各种软件资源进行 的管理。有效的版本管理有助于对软件开发过程中产生的各种中间产品进行有 效的管理,有助于选择合适版本的构件组成软件的发布版本。因此,能否实现 有效的版本管理,现在已经成为判断软件企业是否专业化和正规化的重要标 准。 版本管理应该具备以下的基本功能; 1 建新版本; 2 透过某种选择机制来访f i j j 特定的版本; 3 对版本添加用户定义的名字或标识; 4 维护版本间的关系: 5 修改己存在的版本,这个操作一般是不允许的,至少不能是直接的; 6 锁定特定版本; 7 版本合并; 8 赋给版本状态值和属性值; 9 允许用户自定义数据对象问的关系。 为支持版本管理,需要一个合适的版本模型。该模型需要定义进行版本化 的元素,版本的标识及其组织,版本的查询,版本的创建等等。版本模型可因 版本化的元素,版本的组织结构、版本的粒度、面向状态的版本或者面向变更 的版本、版本的选择规则的不同而不同。【9 】中定义了组成版本模型的基本术语, 如图3 所示: 复旦大学颀十学位论文 基于构件的可变粒度配置管理研究 图3 版本模型基本术语 图4 版本管理模型结构图 2 2 1 版本管理中各要素说明 多级构件库包括:公司构件库,行业构件庠,区域构件库等筹。都包括一 定数曩的相对开发成熟的构件。 项目构件库就是指开发项目所使用的构件,包括两类:第一类,是从多级 构件库中下载来的,第二类,是自己开发的。 构件关系库用来记录项目构件之问的相互的接口连接关系,是跟项目构件 库相对应的项目和基线是等项目构件库开发到一个标志性的阶段的时候,通过 选择构件版本生成系统。可能是完成的版本,妊有可能是作为下一个阶段开发 的起点的基线。 复且大学硕 :学位论文 2 1 基于构件的可变粒度配置管理研究 构件版本管理用来管理多级构件库和项目构件库中的构件的版本演化,对 于某个特定的项目丽言,构件版本管理就是管理项目的组成构件在各个构件瘁 中的版本演化。 项目版本管理用来项目版本的演化和管理构件关系库。并能根据构件关系 库生成最新的项目版本,还包括发布基线,提交项目等等。 2 2 2 模型的特点 因为瑗目是基于构俘开发的,所以构件的开发和维护是项妥开发的基础与 起点。由于构件是一个复用的概念所以构件的开发跟维护的范围就不局限在一 个项目。有可能会跨项目,如何来维护这个过程是以往的配置管理工具所没有 涉及的。本摸型对基于构件的项目的版本管理也提出了新的解决方案。有利于 软件提高软件的复用度和控制项目进程。另外通过两级版本管理实现了版本管 理粒度的可变性。 在多级构件库和项目构件库中,构件的物理存在应该适当加密以保证安 全,并且有对应数据库保存相关版本树信息。在构传关系痒中保存豹是所有构 件版本之间的关系。以a l - o o r ( 需求接口) 卜 b 1 o l p ( 供威接口) 这样的形式 表示,意思为:a 构件的1 0 0 版本中的p 接口调用了b 构件1 0 1 中的r 接口,既构 件之间的关系总归为一个构件的需求接口调用另一个构件的供应接口。我们把 一个构件的版本升级情况归结为下面三类情况: 第一类( 不修改构件的任何对外接臼) :如果修改了构件内容,丽没有改 构件接口形式,则我们称销售构件的这次升级是独立升级( 即不会影响到其他 构件) ,比如说:修正b u g ,功能调整等等修改部属于这类修改在这类修改。处 理:新构件版本加入到相应的构件库中,并把相应构件版本信息加入到构件版 本树中。另外把新版本构件与各个构件之间的关系加入到丰句件关系库当中去。 第二类( 修改了构件的供应接口) :如果销售

温馨提示

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

最新文档

评论

0/150

提交评论