已阅读5页,还剩48页未读, 继续免费阅读
(计算机软件与理论专业论文)基于cbr和xml的构件检索模型研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 论文题目:基于c b r 和x m l 的构件检索模型研究 学科专业:计算机软件与理论 研究生:孟丽签名:垂亟 指导教师:姚全珠教授 签名:盘扯鳞 摘要 软件复用技术是软件工程研究的重点之一,作为提高软件生产率和软件质量的有效方 法己日益受到软件工程师们的重视。基于构件的软件开发( c o m p o n e n t b a s e ds o f t w a r e d e v e l o p m e n t ,c b s d ) 因其能够降低软件成本、提高软件质量和编程效率等优点及其对软 件复用的支持,逐渐被越来越多的开发组织所采用。 基于构件的软件开发面临的一个技术问题是构件库所提供的对具有可重用价值的构 件的检索能力不足。高效的构件检索技术将使用户能够快速定位到所需要的构件,从而达 到使用户能够快速利用现存构件进行软件开发的目的。 本文在研究不同的构件模型表示方法的基础上提出了一种基于x m l 描述的刻面表示 模型,和基于该模型的构件检索方法。该方法将人工智能领域的基于案例的推理方法与 x m l 技术结合起来,把构件作为知识库中的案例,并且用x m l 描述,同时运用基于案例的 推理技术( c a s e b a s e dr e a s o n i n g ,c b r ) 和) ( m l 检索方法来对构件的检索结果进行评估。 该方法能够向用户提供改进的经过评估后的构件解决方案,以避免软件开发者凭经验主观 决定构件的复用程度所带来的错误和偏差。 最后,在理论研究的基础上,开发了一个具有构件的发布,浏览,检索和相关功能的 构件库系统。 关键词:基于构件的软件开发;构件检索;构件模型;基于案例的推理;x m l a b s t r a c t t i t l e :r e s e a r c ho nc o m p o n e n tr e t r i e v a lm o d e lb a s e do n c b r a n dx m l m a j o r - c o m p u t e rs o f t w a r ea n dt h e o r y n a m e :l im e n g s i g n a t u r e :壁堕坚 s u p e r v i s o r = p r o f q u a n z h uy a os i g n a t u r e : a b s t r a c t t h es o f t w a r er e u s et e c h n o l o g y , w h i c hi so n ee m p h a s e so f s o f t w a r ee n g i n e e r i n gr e s e a r c h ,i s r e g a r d e dh i g h l yb ys o f t w a r ee n g i n e e r sg r a d o a n ya st h ee f f e c t i v em e t h o do fe n h a n c i n gt h e s o f t w a r ep r o d u c t i v i t ya n dq u a l i t y 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 ) w i mt h e a d v a n t a g eo f r e d u c i n gs o f t w a r ec o s t ,i m p r o v i n gs o l , r a r eq u a l i t ya n dp r o g r a m m i n ge f f i c i e n c y a n ds u p p o r t i n gt os o f t w a r er e u s e ,i sa d o p t e db ym o r ea n dm o r es o f t w a r ed e v e l o p m e n t o r g a n i z a t i o n s a n i m p o r t a n tp r o b l e ma s s o c i a t e dw i t hc b s d i st h a tt h ea b i l i t yo f r e t r i e v i n gr e u s a b l e c o m p o n e n t so f h i 曲v a l u ew h i c ht h ec o m p o n e n tl i b r a r yp r o v i d e di si n s u f f i c i e n t t h eh i 曲l y e f f e c t i v ec o m p o n e n tr e t r i e v a lt e c h n o l o g yc a nm a k et h eu s e r st ol o c a t et h e i rn e e dc o m p o n e n t r a p i d l y , s ot h eu s e r sc a nd e v e l o pt h en e w s o f t w a r eq u i c k l yu s i n gt h ee x t a n tc o m p o n e n t s b a s e do na n a l y z i n gt h ec u r r e n td i f f e r e n tc o m p o n e n tr e p r e s e n t a t i o nm o d e l s ,af a e e t e d c o m p o n e n tr e p r e s e n t a t i o nm o d e lb a s e do nx m l a n dac o m p o n e n tr e t r i e v a lm e t h o db a s e do n t h i sm o d e li sp r o v i d e d t h i sm e t h o du n i f i e st h ec a s e - b a s e dr e a s o n i n g ( c b r ) m e t h o do f t h e a r t i f i c i a li n t e l l i g e n c ed o m a i na n dt h ex m l t e c h n o l o g y i tr e g a r d st h ec o m p o n e n t sa st h ec a s e s i nt h ek n o w l e d g eb a s ea n du s e sx m lt od e s c r i b et h e m ,s i m u l t a n e o u s l yu t i l i z e sc b r t e c h n o l o g ya n dt h ex m l r e t r i e v a lm e t h o dt or e t r i e v et h ec o m p o n e n t sa n de v a l u a t et h er e t r i e v a l r e s u l t s t l l i sm e t h o dc a l lp r o v i d eu s e r st h ei m p r o v e da n de v a l u a t e dc o m p o n e n ts o l u t i o n st o a v o i dt h em i s t a k ea n dd e v i a t i o nw i t l lt h es o f t w a r ed e v e l o p e r sd e c i d i n gt h ec o m p o n e n tr e u s e d e g r e ed e p e n d i n go nt h e i re x p e r i e n c es u b j e c t i v e l y f i n a l l y , i nt h ef u n d a m e n t a lo f t h e o r yr e s e a r c h ,ac o m p o n e n tl i b r a r yw h i c hh a st h ef u n c t i o n s o f b r o w s i n gc o m p o n e n t s ,r e t r i e v i n gc o m p o n e n t sa n dt h ec o r r e l a t e df u n c t i o n si sd e v e l o p e d k e yw o r d s :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 o m p o n e n tr e t r i e v e ;c o m p o n e n t m o d e l ;c a s e b a s e dr e a s o n i n g ;x m l i 独创性声明 秉承祖国优良道德传统和学校的严谨学风郑重申明:本人所呈交的学位论文是我个 人在导师指导下进行的研究工作及取得的成果。尽我所知,除特别加以标注和致谢的地 方外,论文中不包含其他人的研究成果。与我一同工作的同志对本文所论述的工作和成 果的任何贡献均已在论文中作了明确的说明并已致谢。 本论文及其相关资料若有不实之处,由本人承担一切相关责任 论文作者签名:k 西p 年j 月印日 学位论文使用授权声明 本人篷竖在导师的指导下创作完成毕业论文。本人已通过论文的答辩,并 已经在西安理工大学申请博士硕士学位。本人作为学位论文著作权拥有者,同意授权 西安理工大学拥有学位论文的部分使用权,即:1 ) 已获学位的研究生按学校规定提交 印刷版和电子版学位论文,学校可以采用影印、缩印或其他复制手段保存研究生上交的 学位论文,可以将学位论文的全部或部分内容编人有关数据库进行检索;2 ) 为教学和 科研目的,学校可以将公开的学位论文或解密后的学位论文作为资料在图书馆、资料室 等场所或在校园网上供校内师生阅读、浏览。 本人学位论文全部或部分内容的公布( 包括刊登) 授权西安理工大学研究生部办 理。 ( 保密的学位论文在解密后,适用本授权说明) 论文作者签名:盘互导师签名:珊;月锣日 f 绪论 i 绪论 1 1 课题背景和意义 i i i 背景 软件复用是目前解决软件危机的一条现实可行的途径。基于构件的软件开发 ( 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 构件信息的表示形式缺乏统一可行的标准 现有的构件库管理系统在构件信息的表示形式上缺乏统一的标准。有的采用自由文本 格式,有的采用h t m l 文本格式。这些表示方法本身存在着诸多缺陷。譬如采用自由文本 格式来表示构件,虽然形式简单、表示方法灵活,但是缺乏标准,既不便于管理又不利于 交流。采用h t m l 文本格式虽然页面表现力强,特别适合于在网上发布,但是h t m l 规范本 身不提供对格式化数据的支持,用h t m l 文本格式表示的构件信息不是自描述的,这样的 信息很难整合到数据库中,难以在各种应用中实现交流、共享。 2 构件信息的表示与检索缺乏统一的模型 现有的构件库管理系统各自采用不同的数据模型、分类模式和术语,妨碍了构件库之 间软件资产的共享,无法实现库的共享。如果用户想要从多个构件库搜索一个合适的构件, 或者是想在多个构件库中比较选择一个最佳的构件,这时就需要用户对各个构件库进行逐 个检索,然而由于各个库之间的交互和共享非常困难,会令用户对多个库检索的过程变得 相当困难。原因在于:用户不可能对各个构件库的分类方法都非常熟悉,对复用者来说构 件库的各种检索方法的理解成本非常高昂。 3 检索方法智能化程度低 现有的构件库管理系统所提供的检索方法比较单一,通常提供一种刻面检索方法,或 者提供以刻面检索方法为主的几种检索方法,提供的几种检索方法只能进行简单的顺序组 合,通过对不同的检索方法的顺序组合来精化检索的结果,多种检索方法不能自动地相互 转换。由于非专业检索者不可能对各种检索方法都了解和熟悉,用户往往只会使用自己熟 西安理工大学硕士学位论文 悉和掌握的那一种检索方法来检索构件,这样用户就不能充分利用多种检索方法并存的优 越性来检索其所需的构件。 i i 2 意义 基于x m l 的构件表示技术充分利用了x m l 规范对数据表示技术的内在支持。系统运用 此技术就能以一种统一的、结构化的形式来准确地表示构件,同时借助x s l 规范对x m l 文件输出格式的控制和转换,我们还能定制检索结果。此外,现今的大型数据库系统如 s q ls e r v e r ,o r a c l e 等均支持) 【m l 规范,这样就能够将构件信息整合到数据库中,也能 根据需要随时从数据库中提取构件信息导入构件库中。 基于案例的推理( c a s e - b a s e dr e a s o n i n g ,c b r ) 是一种开发基于知识系统的方法, 它能利用以前所经历的具体问题答案( 案例) 和特定知识进行推理,即新问题的解决是通 过发现一个过去的相似案例并在新问题中复用它的答案。另外c b r 是一种增量型、可持续 的学习方法,由于每次一个问题被解决的时候,新的经验就被存储下来,能很快被应用于 将来的问题。这种方法的过程和构件检索过程相类似,可以将构件的描述理解为问题描述, 构件实体作为问题的解决方案。当开发人员需要复用构件时,他可以首先在案例库中寻找 过去相似问题在案例库中的解决方案,找到相同的构件描述,并复用前人所编写的构件, 或者找到相似的构件描述,将找到的构件进行改写以适于复用,这都比重头开始写构件要 来的简便些。 因此本文提出将c b r 和x m l 技术同时应用到软件构件检索,详细介绍了应用此方法的 检索模型框架及其中的关键实施技术。此方法采用x m l 语言来描述构件,由于x m l 可以充 当不同数据源之间交换数据的媒介,可以用来解决同一领域不同c b r 系统的案例资源共享 问题,从而可以实现分布式的案例存储与检索,为建立分布式构件资源库和与其它构件库 的互操作打下良好基础。同时x m l 处理过程与数据可以分离,使案例成为只是一种数据描 述形式。这样案例可以被其他x m l 应用程序所处理,而不管其是否属于c b r 系统,从而完 成c b r 系统与其他应用系统之间的信息流重组。此模型将c b r 过程中的最相邻检索方法和 x m l 检索方法相结合,用于构件的检索,并且给出了具体的检索结果评价方法,不仅返回 给用户与问题需求描述相似的解决方案,并且给出了需求构件与检索结果的相似度,将检 索结果按相似度值降序排列输出给用户,为用户的复用决策提供支持。 1 2 国内外研究现状 针对不同的构件描述形式,研究人员己提出了许多相应的检索方法。例如a n d y p o d g u r s k i 等人针对构件的行为表示提出的基于构件行为采样的检索“1 ;a m ym o o r m a n n 等 人针对构件的形式化规格说明提出的基调匹配( 接口规约) 。1 和规约匹配( 功能规约) f 3 l 。 2 绪论 针对传统的构件文献编目描述,许多研究学者还提出了将神经网络、模糊数学、关联传动 等方法应用于构件的检索“1 。 目前,构件的刻面描述是一种正逐步得到重视与应用的描述方法“j ,r e b o o t 、n a t o 提 出的构件分类方法都是基于刻面的。青鸟构件库的构件也是采用以刻面分类为主、多种分 类模式相结合的方法对构件进行分类描述的呦。 其中,r e b 0 0 t ( r e u s eb a s e do no b j e c t o r i e n t e dt e c h n i q u e s ) 是一个包括储存可 复用构件的数据库和一组产生、认证、插入、提取、评价和适配可复用构件的工具的环境。 其中在对构件进行分类时采用了刻面的分类策略,这个分类策略主要针对面向对象的构 件。r e b o o t 定义了四个刻面:抽象、操作、操作于、依赖。使用这四个刻面为面向对象 构件分类时,抽象刻面常为类名,操作刻面常是类的方法,操作于刻面描述与之合作的其 它构件,其术语空间与抽象刻面是基本一致的。从整体上看来,r e b o o t 的刻面分类模式 主要针对的是源代码级别的构件,而且不具备描述粒度较大、结构较复杂的构件( 如模式、 框架等) 的能力。 n a t o ( n o r t ha t l a n t i ct r e a t yo r g a n i z a t i o n ) 峨”提出了一种刻面分类模式,其中的 刻面不必是彼此独立的,也不必适用于所有的构件。一组典型的刻面可能包括:对象、功 能、算法、类型、语言和环境。在对一个构件进行分类时,不一定所有的刻面都出现。刻 面术语具有同义词关系,一组同义词表达一个概念,术语空间由这些术语构成,术语之间 没有一股特殊关系,即术语空间是非结构化的。 此外,国内对构件库的研究也有了相应的成果。 其中,以我国北京大学的青鸟工程为软件复用及相关技术的研究工作水平的代表。青 鸟工程在“九五”期间开发了基于异构平台、具有多信息源接口的应用系统集成( 组装) 环境青鸟型( j b 3 ) 系统。在相应构件模型的基础上,建立了青鸟构件库数据模型,并与 其它c a s e 工具相结合,支持对构件的描述( 使用青鸟构件描述语言j b c d l ) 、分类、管 理、存储,检索和复合,满足了基于“构件一构架”复用的软件开发过程的需要。 上述的各种方法,都是针对检索构件本身的。然而在实际的软构件复用过程中,构件 的检索不仅应该能够高效检索出相关的构件集,关键是如何使复用者快速地在所检索到的 构件集中找到自己的真正所需,这是一个复杂的决策过程,一般都依赖于复用者的复用经 验以及通过浏览构件描述信息对构件的理解和主观评判。利用人工智能领域的案例推理技 术可以在构件检索的同时对检索结果进行评估,向用户返回问题需求和检索构件结果集中 构件的符合程度,向用户提供经过改进后的解决方案,可以为用户的决策提供支持。 1 3 主要研究内容 本课题的研究主要包含以下内容: 1 分析不同领域中构件模型,包括构件的本质特征及构件间的关系。 3 西安理工大学硕士学位论文 2 研究构件的描述语言,它以构件模型为基础,解决构件的精确描述、理解和组装 问题,为检索服务,重点研究分析国内外比较典型的复用库系统的构件描述策略、组织模 式及检索策略,。 3 研究案例推理技术、x m l 技术及其应用于软件构件检索的可行性。 4 提出新的基于案例推理和x m l 技术的构件检索模型,给出其工作过程。 5 重点讨论构件检索模型的重点和核心问题,包括构件的生产,构件的表示,构件 的组织和存储,构件的检索和结果评估。 ( 1 ) 构件的生产。在本系统中主要以虚构件( 只有构件的定义、描述、服务策略,没 有具体细节) 或第三方提供的现有构件为主。根据研究的领域和所需构件的类型适当采集 一些现有的构件作为实验模型。 ( 2 ) 用x m l 语言表示构件。x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) ,可扩展标记语言, 是由w 3 c “”( w o r l dw i d ew e bc o n s o r t i u m ) 的x m l 工作组定义的。因为它结合h t m l 了和 s g m l ( s t a n d a r dg e n e r i cm a r k u pl a n g u a g e ) 的优点,比它们更方便、简洁、易读,成为了 互联网时代的数据标准。用x m l 语言表示构件,更能适合i n t e r n e t 的应用要求。 ( 3 ) 构件的组织存储方式。设计较优的构件表示信息的存储结构,使其在进行构件检 索时速度更快、结果更有效。 ( 4 ) 构件的检索及评估。借鉴基于案例推理技术中的最相邻检索算法,同时结合x m l 检索技术对构件库中的构件进行检索,并进一步提出构件检索结果评价。 6 利用以上的理论基础开发一个构件库原型系统,能够支持该模型,能够为基于构 件的软件开发提供构件检索发布和检索平台。 1 4 本文的组织安排 本文共有六章内容,各部分安排如下: 第一章:绪论部分,主要介绍了论文的选题和意义、国内外的研究现状和本文的研究 内容和主要工作。 第二章:本章介绍了构件库及构件检索相关技术。本章第一节介绍了构件技术,包括 构件的定义、构件的特点述、可复用构件应具备几个基本要求;第二节介绍了构件库技术, 包括构件库的基本概念和功能,构件库的存储与检索;第三节简单介绍了构件描述所应遵 循的基本原则,及国内外提出的几个构件描述模型:第四节介绍了构件的分类与检索技术, 主要包括构件分类与检索的必要性,并且分析了现有的分类和检索方法的优缺点。 第三章:本章重点讨论了基于c b r 和x m l 的构件检索模型c x c r m 。本章首先介绍了c b r 的基本思想、c b r 的实施过程、c b r 系统实现的关键技术,然后介绍了x m l 技术规范及其 优越性、使用删l 技术表示构件信息的基本准则,最后提出了案例推理技术和x m l 技术及 将二者结合起来应用于软件构件检索的可行性及方法模型。 4 绪论 第四章:本章是全文的核心内容之一,重点针对第三章提出的c x c 附模型中如何将 c b r 和x h l 应用于软件构件检索作了详尽的阐述,详细分析了实现此模型的关键技术:如 何用x m l 对构件案例进行知识表示、案例的组织和存储,构件的检索方法和检索结果评估 方法,针对构件的x m l 表示提出了一种基于递归的案例相似度递归算法。 第五章:本章实现了应用此检索方法的一个构件库原型系统。首先对该系统从功能和 用户两方面进行了分析,给出了系统的用例图,接着对系统进行了设计,给出了系统类图 和时序图及活动图,最后给出了系统整体框架,运行环境及具体实现。 第六章:对全文的工作进行总结,并对将来的研究工作进行了展望。 1 5 本章小结 本章首先提出了论文的选题背景和研究意义,其次分析了国内外关于软件构件表示和 检索技术、可复用软件构件库系统、构件库的标准化及构件表示模型等方面的研究现状, 随后介绍了本文的研究内容和主要的工作,重点介绍了构件检索的研究实施计划,最后介 绍了本文的组织和安排。 构件库及构件检索理论 2 构件库及构件检索理论 2 1 构件技术 2 1 1 构件的定义 构件来源于英文的“c o m p o n e n t ”,在有些文献中也称为组件。目前,对构件的定义, 软件产业还未形成统一的认识。下面是许多大型公司对构件的定义”: r a t i o n a ls o f t w a r e 公司的p h i l i p p ek r u t c h e n 将构件定义为一个非平凡的、几乎独 立的和可替换的系统组成部分,它在个定义完善的体系结构环境下完成一个清晰的功 能,构件提供了一组接口的物理实现“4 。 g a r t n e rg r o u p 是这样定义的:运行时构件是一个动态可绑定程序包,内含一个或多 个程序作为整体来管理,通过在运行时文档化接口存取其中的信息“”。 c o m p o n e n ts o f t w a r e 公司的c l e m e n ss z y p e r s k i 将软件构件定义为一个仅带特定契 约接口和显式语境依赖的结构单元,软件构件可独立部署,以易于第三方整合“”。 o m g 在m o d e l i n gl a n g u a g es p e c i f i c a t i o n 中写到:构件是指系统中可替换的物理部 分,该系统封装了实现并提供了一组接口的实现,构件表示系统实现体的一个物理片断, 包括软件代码( 源代码、二进制代码或可执行代码) ,或者等同体,例如脚本或命令文件 n 幻 。 北京大学的杨芙清教授将构件定义为应用系统中可以明确辨识的构成成分,而可复用 构件是具有相对独立的功能和可复用价值的构件“”。 以上这些定义根据各自不同的目的从不同方面对构件进行了描述。在本文中,一般认 为构件是具有相对独立功能和具有可复用价值的软件构成成分。简单地说,构件是具有独 立的功能,能够独立工作或者同其他构件装配起来协调工作的程序体。构件的使用与其开 发无关。 构件是组成软件的基本单位,它包含以下三个内容: 1 软件是可复用的、自包含的、独立于具体应用的软件对象模块; 2 对构件的访问只有通过其接口进行; 3 构件不直接与另1 j 的构件通信。 2 1 2 构件的特点 总的说来,软件构件具有以下特点“”: 1 以二进制形式存在,软件构件一般不再以源代码方式实现复用; 7 西安理工大学硕士学位论文 2 可以与其它独立开发的软件构件协同工作,经过少量的修改,软件构件可以很容 易地移植到其它构件生产商所生产的构件中; 3 软件构件具有相对独立的功能,可以顺利地将软件构件组合成一个应用系统; 4 程序设计语言无关,软件构件不依赖于任何一门编程语言,这便于软件开发人员 与别的软件构件组装; 5 成为其它软件构件的生成模块,软件构件和一般的对象相比,可大可小; 6 存储在构件库中的长久实体,软件构件是一种带有插件的静态抽象; 7 有提供和请求服务的插件,插件是构件与外部世界( 如消息、端口等) 通信的渠道: 8 具有良好定义的接口; 9 属于某种构件模型; 1 0 有充分的自容性。 软件构件是可被用来构造其他软件的软件组成成份,它可以是被封装的对象类、类树、 一些功能模块、软件框架、软件构架( 或体系结构) “”、文档、分析件、设计模式等。广义 上讲,只要是软件系统中可以明确识别的、可被他人复用的成分,就可以称为软件构件。 一般来说,具有相对独立的功能和可复用价值的软件成分都可被称为可复用构件,可复用 构件不但包括源程序而且还包括在软件生产过程中各个阶段的成品,如项目计划需求定义 分析模型、设计模型、文档、测试案例和数据以及其它对开发活动有用的信息等,它可以 是从旧的软件中提取的也可以是专门为了复用而开发,可复用构件应具备几个基本要求: 1 有用性( u s e f u l n e s s ) :构件必须提供有用的功能; 2 可用性( u s a b i l i t y ) :构件必须易于理解和使用; 3 质量( q u a l i t y ) :构件及其变形必须能正确工作; 4 适应性( a d a p t a b i i i t y ) :构件应该易于通过参数化等方式在不同语境中进行配置; 5 可移植性( p o r t a b i l i t y ) :构件应能在不同的硬件运行平台和软件环境中工作。 2 。2 软件构件库 2 2 1 构件库的基本概念和功能 软件构件库是一种组织、收集、访问与管理若干构件的手段,它由构件库数据和构件 库系统组成。构件库数据包括构件本身及其描述性信息和组织性信息。这些信息总称为构 件目录,其中描述性信息称为构件描述,组织信息称为库信息模型。构件库系统由构件库 框架和构件库工具组成。构件库包含了大量信息,包括构件,构件描述信息,构件库数据 模型和描述数据模型的模型。构件库可以在数据库管理系统( d a t ab a s em a n a g e m e n t s y s t e m ,d b m s ) 之上实现其目录,在一个形式化的配置管理系统中保存构件。 基于构件、构架的开发是以构件库为中心的开发模型,而构件库是领域工程和应用工 构件库及构件检索理论 程开发过程的桥梁,它具备数据库的基本特征和功能,为了向基于构件的应用系统开发提 供构件,构件库管理系统必须能够存储构件和构件相关信息:构件的语义描述 ( d e s c r i p t i o n ) ,构件的分类( c l a s s i f i c a t i o n ) ,构件的形态( f o r m ) ,构件的状态 ( s t a t u s ) 。 从可复用构件库中存储、查询、获取构件是复用技术的关键技术之一为了能够管理 和维护构件信息,构件库管理系统一般应提供如下的操作: 1 构件库定义功能 对构件库的结构进行描述;构件库完整性的定义;安全保密定义( 如用户口令、级别、 存取权限) ;存取路径的定义。这些定义存储在数据字典中,是构件库管理系统运行的基 本依据。 2 构件存取功能 提供用户对构件的基本操纵功能,实现对构件库构件的插入、修改和删除。一个好的 构件库管理系统应该提供功能强且易学易用的构件操纵语言、方便的操作方式和较高的数 据存取率。 3 构件的检索功能 即构件的需求匹配,与一般的数据库不同,构件匹配通常不能得到完全满意的构件, 对与需求相关或相近的构件需要通过适应使之满足需求。由于构件的粒度不同,因此需求 问题分解和构件合成是两种配合检索的方法。不一定一味地追求近自动化的查询过程,而 应允许人工介入内部的查询过程。 4 构件库运行管理功能 这是构件库管理系统运行时的核心部分,包括构件提取、构件识别、构件执行、构件 库内部的维护( 如索引、构件字典的自动维护) 等等。所有构件库的操作都要在这些控制程 序的统一管理下进行,以保证系统的正确运行和构件库的正确有效。 5 构件组织、存储和管理功能 构件库管理系统要分门别类的组织和管理各类构件,要确定以何种结构和存储方式在 存储级上组织这些构件,如何实现构件之间的联系。构件组织和存储的基本目标是提高存 储空间利用率,选择合适的存取方法提高存取效率。 6 构件库的建立和维护 与数据库类似,包括构件库的初始建立、构件库的转储和恢复、构件库的重组织与重 构造以及性能监测分析等功能。 构件库的作用除了存储和管理构件之外( 普通数据库的作用) 关键是在构件的生产者 和使用者之间架起一座理解构件含义的桥梁,因此构件库的本质问题是如何建立构件的智 力模型、用精确的方法表达构件的语义和提供何种高效的构件检索方法,使基于构件构架 的开发过程中的构件能够得到正确的理解和复用并且软件开发人员可以快速而准确的定 位到所需的构件,以达到利用现有构件快速开发的目的。 9 西安理工大学硕士学位论文 2 2 2 构件库的存储 构件库的存储方式的选择极大影响着构件库的检索方式和效率。构件库的构件存储系 统可以采用多种方式:面向对象数据库o o d b m s 、关系数据库r d b m s 和文件系统f i l e s 。 o o d b m s 具有存储量大、易于维护、易于扩充、易于格式动态变动等优点,但它目前 尚无成熟产品,尤其在标准化和性能上令人不满意,并且有些构件又不支持o o 技术,因 而o o d b m s 不能完全满足构件库对构件的存储要求。 文件系统的存储特点是存储容量大,对存储的数据体积无限制,且可以存储多种不同 形式的构件。这点刚好符合对构件存储的要求。但文件系统不利于大量数据的存储,因为 它的查询效率低,缺少有效快捷的检索途径,查找构件不方便。同时,由于文件系统操作 的基本单位是文件,文件与文件之间不能建立复杂的关系,文件管理困难。显然,这与对 构件检索高效率的要求也不符。因此,文件系统也不完全符合对构件存储的需要。 最近发展较快的x m l 文件数据库则提供了许多数据库中所需要的部分:存储( l 文 件) 、结构( d t d ,x m ls c h e m a 语言) 、查询语言( x q l ,x m l - q l ,q u i l t 等) 、编程接口( s a x , d o m ) 等等。但是,它还缺少很多在传统的数据库中所必备的内容:有效的存储、索引、 安全、数据完备性、多用户访问、触发、多文件查询等。由于大型构件库环境要求允许多 用户并发使用和需要严格的数据完整性并对性能有很高的要求,所以单以x m l 系统还不能 胜任。 关系数据库r d b m s 具有储存和管理大量数据的高效性、理论的严密性和技术的成熟 性,它不仅可以支持存储不同的数据类型和复杂的数据结构,而且能够表示结构化的数据, 可以方便地表达出数据之间的关系,并且还可以提供多中线索进行查询,具有很高的查询 效率,所以是构件存储系统的首选。但是,在实际应用中,构件的结构及其复杂,存在形 式多种多样,其描述一般为复杂的层次结构,与关系性结构之间的转换在实现上存在一定 的难度。 针对复杂的层次性结构与关系性结构之间的转换存在一定的难度,微软公司推出了一 系列组件( 如s q l x m l 等) ,较好的解决了层次性结构与关系性结构之间的转换问题。 2 2 3 构件库的检索 可复用构件库的存储和检索是软件复用研究的一个重点,它伴随着复用实践的深入和 新技术的出现而不断取得进展。构件的检索过程即匹配的过程。一般的领域构件库检索均 采用刻面检索为主,辅以其他检索机制,如关键词检索、内容检索、条件检索等。一般来 说,首先根据刻面检索得到范围较小的构件集合,然后复用者根据检索分类模式给出查询 关键字用a n d 和o r 组成查询条件。根据查询条件在构件库中寻找匹配记录。在查找中可 能会有两种情况:根据用户提供的术语可直接找到匹配记录;若不能根据用户提供的描述 1 0 构件库及构件检索理论 找到匹配记录,则查询刻面的术语空间找出同义词,再次寻找匹配记录。根据以上情况存 在两种查找方法:首先按照用户提供的关键词寻找匹配记录,如果未找到匹配记录,则查 询刻面的术语空间找出同义词,提供给用户,让用户进行二次查询;根据用户提供的描述 词首先查找其同义词,然后根据同义词和关键词对构件进行查找给出匹配记录。 通过比较实现代价和检索效率可对不同方法进行评价:实现代价包括编码机制和分类 索引的建立、部署和维护代价,对检索质量和效率的传统评价指标是查全率( r e c a l l ) 和查 准率( p r e c i s i o n ) 及搜索和精化时间、易用性和辅助理解效果。在具有多种分类方法的构 件库中,需要考虑不同检索方法,查到的构件集合间的关系,即交迭率( 0 v e r l a p s ) ,可以 用查全率、查准率和交迭率来定义检索效果“”。具体计算公式定义如下: 查全率:墼耋型竺堡萋馨箕叁剿 ( 2 。) 障中所有相关构件集合i 雠弘篙器 c z z , 交迭率= 酉i m 阅, a m 2 ( 2 3 ) 其中:ixi 表示集合中的元素个数,m 。和分别为两种不同检索方法查到的构件集 合。 由此可见如果用户比较熟悉待查构件提供的关键字,则第一种方法查询速度较快查准 率比较高,而第二种查全率比较高。如果用户对相关情况不很了解则两者查询结果相同, 只是前者需要用户进行二次查询,因此具体查询中应该让用户选择查询方法。图2 - 1 给 出可复用构件的检索模型“”。 问题空间 复用者理解后 查询空间索引空间 类空间实例空间 的问题 编码: 查询条件匹配算法熬引 图2 - i 可复用构件的检索模型 ( f i g 2 - 1r e t r i e v a lm o d e lo f t h er e u s a b l ec o m p o n c m ) 构件库的检索与一般的数据库或文献库中的检索不同,构件的检索需要一定的模糊匹 配能力,在保证一定的查准率的情况下提高查全率。另外,构件库的检索需要兼顾对查询 的构件的不完全描述,对查询的匹配应有一定的张弛能力,不仅要求能给用户返回匹配的 结果还要求能返回相应的匹配程度,为用户复用构件提供有意义的参考信息。另外,各构 件库的刻面分类方案可能完全不一样,为了查到合适的构件,用户可能需要跨越多个构件 西安理工大学硕士学位论文 库,如何实现跨构件库的构件检索,对用户有效地屏蔽异质构件的刻面描述间的差别,这 也是一个亟待解决的有意义的研究课题。 2 3 构件的描述 构件的描述方法是构件检索技术的基础,构件描述模型是关于构件本质特征的抽象描 述。个构件描述模型应该满足一些基本原则: 1 表达能力足够强:模型是对客观对象的抽象,合适的抽象层次十分重要,必须既 能抓住本质,又不陷入细节,既要有足够的表达能力,又不能过于复杂。 2 简单性:简单性是各种模型必须赋予考虑的重要性质,简单意味着易于掌握和理 解。简单性和较强的表达能力是一对矛盾,必须合理权衡。 3 一致性和完备性:模型必须具有对内的移植性和对外的完备性。一致性是指构件 作为一个封装体必须具有一致的对外接口、一致的组成结构以及一致的交互方式。完备性 是指不存在模型所不能描述的构件。 4 适用性:构件模型应易于理解,方便分类和检索。 5 扩展性:是指在保持模型本身一致性和完备性的前提下,模型可以随着应用需求 的增长而演化。 目前国内外研究界已经提出了数个构件模型,包括3 c ,r e b o o t ,n a t o ,s t a r ,青鸟 等。3 c 模型认为一个理想的构件的描述应当涵盖三个方面的内容:概念、内容和语境。 r e b o o t 的构件采用了刻面描述策略,包括抽象、操作、操作对象、依赖四个刻面,主要 针对源代码级的构件。n a t o 提出了一种刻面描述模式,刻面之间不存在正交关系,也不 要求每个构件在每个刻面中有描述。美国军方发起的s t a r s 项目主要考虑开发体系结构的 构件库之间资源共享和无缝互操作问题。北京大学青鸟构件模型采用刻面分类的策略,定 义了使用环境、应用领域、功能、抽象层次、表示方法等五个刻面。 下面对3 c 、r e b o o t 构件模型作较为详细的介绍。 1 l l a t o u r 等专家在1 9 8 9 年的“r e u s ei np r a c t i c ew o r k s h o p ”提出的3 c 模型, 认为一个理想的构件的描述应当涵盖概念、内容和语境三个方面。 1 ) 概念是关于“构件做什么”的抽象描述,通过概念可以了解构件的功能。概念包 括接口规约和语义描述两个部分; 2 ) 内容是概念的具体体现,描述构件如何完成概念所刻画的功能。内容对用户是隐 蔽的,只有那些要修改构件的人才需要了解这些信息; 3 ) 语境是描述构件和外围环境在概念级和内容级的关系,它刻画构件的应用环境, 为构件的选用和适应性修改提供指导信息。 2 r e b o o t 模型是e v e n a n d r ek a r l s s o n 等人在r e b o o t 项目中总结提出的。该模型 实质上是一个刻面分类模型。在描述构件时,根据领域对它进行分析,得到一组基本的描 1 2 构件库及构件检索理论 述特征,这些特征称为刻面。刻面可以描述构件执行的功能、被操作的数据、构件应用的 语境或其他特征。r e b o o t 项目提出的刻面包括抽象、依赖、操作和操作对象。 1 ) 抽象:对构件概念的抽象性描述。 2 ) 依赖:描述构件与外界的依赖关系。 3 ) 操作:对构件所提供的操作的描述。 4 ) 操作对象:描述构件操作的对象。 2 4 构件的分类与检索 2 4 1 构件分类与检索的必要性 软件复用技术,是软件工程研究的重点之一,作为提高软件生产率和软件质量的有效 方法已日益受到软件工程师们的重视。当前许多软件机构和组织正在构建自己的可复用软 件库,他们面临的主要技术问题是如何有效检索库中大量的可复用资源。 构件的查询过程就是定位类似的构件,使用者只需理解查询得到的少数构件就可以决 定是否直接重用构件。查找软构件的传统方法,如查看一个用户手册,使用浏览器检查源 代码等,不仅花费大量时间,而且对理解构件帮助不大。通常,在本地较小的软件库中的 构件检索是比较简单的,用户能够很容易地检索到所需的构件,并可通过它们的名字或通 过浏览库来选择它们;但在一个大的软件库中检索可复用的构件就没有这么简单,存在很 多影响检索效率的因素,一般包括- 1 用户的请求与所需构件信息的相近程度; 2 检索和索引策略: 3 索引方法的详尽性和具体性; 4 使用的匹配和相似分析机制。 实践中构件数量不断增长,构件也随技术和领域演化而更新,构件的数量只有达到一 定程度后才能满足复用要求,而要在众多构件的库里中找到所需的构件需要对大量构件进 行分类并借助自动检索工具的支持。构件的分类是建立和维护构件目录信息的活动,构件 的检索方法依赖于构件的标识和分类。对构件进行分类有三个好处:便于组织管理、方便 查询和辅助理解。图2 - 2 是构件分类存储示意图,图2 - 3 是构件检索复用示意图。 图2 - 2 构件分类存储示意图 ( f i g 2 2c o m p o n e n tc l a s s i f i e sa n ds t o r ed i a g r a m ) 西安理工大学硕士学住论文 图2 - 3 构件检索复用示意图 ( f i g 2 - 3c o m p o n e n tr e t r i e v a la n df e u s ed i a g r a m ) 对单个构件的复用可以划分为构件的识别和检索、构件的理解和适应性修改三部分, 复用成本公式为“: 软件复用的成本= 检索成本+ 理解成本+ 修改成本 ( 2 4 ) 有效的检索机制能大大降低构件的检索成本和理解成本,对构件的分类就是为了高效 方便的检索,而构件的分类最终体现在构件的分类描述上。因此,一个好的描述是有效检 索机制的基础。良好的描述可以使检索者容易获得真正需要的构件;而不好的描述则容易 导致两个结果:检索结果中包含许多不需要的构件;检索结果中不包含真正需要的构件。 这样将大大增加复用成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行 抵押合同
- 贷款车没有合同
- 托管服务合同
- 滨州租房合同
- 晚签无固定期限合同
- 朴邻租房合同
- 变更英语合同
- 宝马530订车合同
- 一般电竞合同
- 平场承包合同
- 2025北京市尖垡留置管理中心招聘事业单位6人考试参考试题及答案解析
- 检验科知识技能培训课件
- 少儿足球培训总结
- (2025年)册人力资源管理试题及答案
- 2025年河北邯郸市第一医院公开招聘控制数管理人员150名考试参考题库及答案解析
- 纪委监委试题题库及答案
- 蛋糕营养科普知识培训总结课件
- 考点解析-人教版八年级《力》专题攻克试题(详解版)
- 2025年考编护理解剖学题库及答案
- 2025年丽水市属企业面向残疾人公开招聘工作人员7人考试参考试题及答案解析
- 火锅底料安全知识培训课件
评论
0/150
提交评论