已阅读5页,还剩66页未读, 继续免费阅读
(计算机应用技术专业论文)基于xml和tamino的软构件管理与检索技术.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 软件复用能有效地解决软件危机,提高软件开发的效率和质量,降低 开发和维护成本。其中构件技术是支持复用的核心技术。为在软件开发过 程中复用已有的软构件,必须进行可复用构件的积累,并将其组织成可复 用构件库。构件的管理和检索就成为一个重要问题。 本文介绍了构件复用和构件库管理系统的概念,通过对构件库管理的 分析,指出了恰当的构件描述方法对于构件检索的重要性。通过对各种基 于刻面的构件描述语言的研究和对x m l 技术的探讨,结合刻面树构件分 类方法,提出了一种新的领域无关的基于x m l 的刻面树构件描述方法。 本文通过对典型刻面描述模型的比较综合,确定了新的刻面树分类方 案。本方案包括五个一级刻面:依赖、适用性、质量、构件形态和构件功 能,其中以构件功能为主要刻面。这些一级刻面又分别包括一些子刻面, 更详尽的描述了构件的特征。同时,本文中也指出了这些刻面的术语空间 和术语辞典。 文章就构件功能刻面在本分类方案中的重要性和复杂性,分析了以往 构件描述语言中描述构件功能的方法的欠缺,然后从简单的自然语言命令 出发,确定了新的构件功能刻面的予刻面。基于实际应用角度的考虑,指 j 出构件功能刻面应该由若干功能项组成,每一个功能项由予刻面来描述。 本文提供确定这些子刻面值的方法。 文章针对本方案的构件描述数据具有的层次性和结构性,结合x m l 语言的特点,确定以x m l 作为方案的描述语言,并且给出构件刻面树的 x m ls c h e m a 和术语空阈、辞典的x m ls c h e m a 。同时,在本构件刻面分 类方案基于x m l 描述的基础上,引入t a m i n o 数据库系统利用其x m l 数 据存储、管理和检索功能,采用基于c o r b a 分布式面向网络的应用结构, 开发了一个构件库应用系统。通过把t a m i n o 数据库系统弓 入到构件库应 用中,来验证我们分类方案的实用性,并体现了构件库应用系统向跨平台、 跨语言和分布式的发展趋势。 关键词:软件复用;构件树;构件库管理系统;x m l 数据库;t a m i n o t e c h n o l o g y o f c o m p o n e n tm a n a g e m e n t a n dr e t r i e v a l b a s e do nx m la n dt a r a i n o a b s t r a c t s o f t w a r er e u s ei sa l le f f e c t i v es o l u t i o nt oo v e r c o m et h es o f t w a r ec r i s i s , p r o m o t ee f f i c i e n c ya n dq u a i l t yo f s o f t w a r ep r o d u c t i o na n dd e c r e a s et h ec o s to f 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 t e c h n o l o g y o f c o m p o n e n t i st h ec o r e t e c h n o l o g yf o rs u p p o r t i n gs o f t w a r er e u s e t or e u s et h ed e v e l o p e dc o m p o n e n t d u r i n gs o f t w a r ed e v e l o p m e n t ,w em u s ta c c u m u l a t er e u s a b l ec o m p o n e n t sa n d o r g a n i z et h e mi n t oac o m p o n e n t b a s e a tt h es a m et i m e ,i ti sai m p o r t a n t q u e s t i o n t om a n a g ea n ds e a r c ht h ec o m p o n e n t b a s e t h i st h e s i si n t r o d u c e st h ec o n c e p t i o n so f c o m p o n e n t b a s em a n a g e m e n t s y s t e m a n ds o f t w a r e r e u s e b ya n a l y z i n gc o m p o n e n t h a s em a n a g e m e n t s y s t e m ,w ei l l u m i n a t e t h a tt h ep r o p e r d e s c r i p t i o n o fc o m p o n e n ti s v e r y i m p o r t a n tf o rc o m p o n e n tr e t r i e v a l i nt h i sp a p e r ,w es u m m a r i z ef a c e tt r e e c o m p o n e n tc l a s s i f i c a t i o na n db r i n gf o r w a r dan e w c o m p o n e n td e s c r i p t i o n b a s e do nx m la n df a c e tt r e ew h i c hi sd o m a i ni n d e p e n d e n t b yr e s e a r c ho f a l l k i n d so f f a c e t c o m p o n e n td e s c 啦t i o na n dx m l t h i st h e s i se s t a b l i s h e st h en e wf a c e t t r e ec l a s s i f i c a t i o n s c h e m e ,b y c o m p a r i n ga n ds t t m m a r i z i n gt y p i c a lf a c e td e s c r i p t i o nm o d e l t h i ss c h e m e i n c l u d e sf i v ef i r s tl e v e lf a c e t s :d e p e n d e n c e ,s u i t a b i l i t y ,q u a l i t y ,c o m p o n e n t f o r ma n dc o m p o n e n tf u n c t i o n f u n c t i o ni st h em o s ti m p o r t a n tf a c e ta m o n gt h e f a c e t s t h e s ef a c e t si n c l u d es o m es u b f a c e t sw h i c hd e s c r i b em o r ep a r t i c u l a r i n f o r m a t i o no f a c o m p o n e n t a t t h es a r n et i m e ,t e r m s p a c ea n d t e r mt h e s a u r u s o f t h e s ef a c e t sa r e p o i n t e d o u ti nt h et h e s i s s i n c ec o m p o n e n tf u n c t i o nf a c e ti sv e r yi m p o r t a n ta n d c o m p l i c a t e d i no u r c l a s s i f i c a t i o ns c h e m e ,w ea n a l y z et h e c o m p o n e n tf u n c t i o nd e s c r i p t i o no f e x i s t i n gc o m p o n e n td e s c r i p t i o nl a n g u a g ea n dt h e ne s t a b l i s hs u b f a c e bo ft h e f u n c t i o nf a c e t sw h i c hc o m ef r o mn a t u r a ll a n g u a g ec o m m a n ds e n t e n c e o nt h e p o i n to fp r a c t i c a lu s e ,a r u l ei ss e tu pw h i c he x p l a i n st h a tc o m p o n e n tf u n c t i o n f a c e ti sm a d e u p o f f u n c t i o ni t e m sa n df u n c t i o ni t e mi sd e s c r i b e db ys u b f a c e t s b e s i d e s ,m e t h o dt oa s c e r t a i nt h ev a l u e so f s u b f a c e t si sp r o v i d e di nt h i st h e s i s c o n s i d e r i n g t h eh i e r a r c h ya n ds t r u c t u r ep r o p e r t yo f c o m p o n e n t d e s c r i p t i o nd a t aa n dt h ec h a r a c t e r i s t i co fx m l l a n g u a g e ,w em a k ec e r t a i nx m l a s d e s c 邱t i o nl a n g u a g e o f o u rc l a s s i f i c a t i o ns c h e m e ,a n d p r o v i d ex m l s c h e m a s a sc o m p o n e n tf a c e tt r e ex m ls c h e m a 、t e r ms p a c ex m ls c h e m aa n dt h e s a u r u s x m ls c h e m a a tt h es a m et i m e ,c o n s i d e r i n gt h a to u rc o m p o n e n tc l a s s i f i c a t i o n s c h e m ei sb a s e d0 nx m l d e s c r i p t i o n ,ac o m p o n e n t b a s ea p p l i c a t i o ns y s t e m i s d e v e l o p e db yu s i n gt h ef u n c t i o n so ft a m i n od a t a b a s es y s t e ma sx m ld a t a s t o r a g e 、m a n a g e m e n t a n dr e t r i e v a la n d b yu s i n g d i s t r i b u t e d a p p l i c a t i o n s t r u c t u r eb a s e do nc o r b a f a c i n go ni n t e m e t t ot e s tt h ep r a c t i c a l i t yo fo l a f c o m p o n e n tc l a s s i f i c a t i o ns c h e m e ,w e 。b r i n gt a m i n od a t a b a s es y s t e mi n t o c o m p o n e n t b a s ea p p l i c a t i o n b e s i d e s ,o u rc o m p o n e n t b a s ea p p l i c a t i o n a l s o a d e q u a t e l y m a n i f e s tt h et r e n d so ft h e c o m p o n e n t b a s ea p p l i c a t i o n d e v e l o p m e n t ,f o re x a m p l ep l a t f o r mc o m p a t i b i l i t y 、l a n g u a g ec o m p a t i b i l i t ya n d d i s t r i b u t i n g k e y w o r d s 】 s o f t w a r er e u s e ,c o m p o n e n tt r e e ,c o m p o n e n t b a s e ,x m ld a t a b a s e , t a m i n 0 l 、“密级请根据论文的实际情况在“无、密级、机密、绝密”中根据导 师的意见选择填写。 2 、原创性声明论文使用权说明格式如下: 基于x m l 和t a m i n o 的软构件管理与检索技术 第一章引言 1 1构件复用与软件构件 近年来在软件开发中已经大量地采用了基于构架和构件的开发方法, 形象地讲,就是采用类似工业化生产的方式,将适当的构件按照给定的架 构,按照特定的相互关系组装在一起,形成一个新的软件系统,从而避免 一切从零开始的低效率开发方式,其中蕴涵的思想即为软件工程中的一个 研究热点软件复用思想。 ( 1 ) 软件复用的概念 软件复用的概念是在1 9 6 8 年n a t o 软件工程会议上m d l r o y 在名为 “大量生产的软件构件”的论文中提出的1 1 j 。所谓软件复用( s o f t w a r e r e u s e ) ,就是利用某些早先开发的对建立新的软件系统有用的软件元素来 生产新系统【”。它是一项活动,而不是一个对象。软件元素可以包括需求 规格说明、设计过程、设计规格说明、程序代码、测试用例、度量方法、 各种文档等等。对于新的软件开发项目而言,它们或者是构成新软件系统 的构件,或者是软件开发过程中发挥作用。通常将这些软件元素称为可复 用构件。软件复用在提高软件生产率与质量,以及减少软件开发的时间和 成本中已经成为一个关键的因素。当前,美国、日本些大公司的资料表 明,软件复用率最高可望达到9 0 1 s l ,而且软件复用使得企业在缩短产品 上市时间、提高软件质量、降低软件开发费用和维护费用等方面获得显著 的效果。使用复用技术可以减少软件开发活动中大量的重复性工作,这样 就能够提高软件生产效率,降低开发成本,缩短开发周期。同时,由于可 复用构件大都经过严格的质量验证,并在实际运行环境中得到检验,因此, 复用软件构件有助于改善软件质量。此外,大量使用可复用构件,软件的 灵活性和标准化程度也可望得到提高。 软件复用的范围可以非常广泛,c a p e rj o n e s 定义了十种可能复用的软 件要素 基于x m l 和t a m i n o 的软构件管理与检索技术 项目计划:软件项目计划的基本结构和许多内容都可以跨项目复 用。这样可以减少制定计划的时间,也可以降低与建立进度表、风险分析 及其他特征相关的不确定性。 成本估计:由于不同项目中常包含类似的功能,所以有可能在极少 修改或不修改的情况下,复用对该功能的成本估计。 体系结构:即便应用领域千差万别,但程序和数据体系结构往往大 同小异。因此,可以创建一组通用的体系结构模板( 例如事务处理结构) , 将这些模板作为可复用的设计框架。 需求模型和规格说明:类和对象的模型和规格说明显然可以复用。 此外,用传统软件工程方法开发的分析模型( 如数据流图) 也可以复用。 设计:用传统方法开发的体系结构、数据、接口和过程化设计,以 及面向对象方法中对类和对象的设计都可以复用。 源程序代码:验证过的程序构件( 用兼容的程序设计语言书写) 可 以复用。 用户文档和技术文档:即便特定的应用不同,也经常有可能复用用 户文档和技术文档中的大部分内容。 用户界面:这可能是最广泛被复用的软件元素。如经常复用g u i 的软件构件,因为它可占到一个应用的6 0 的代码量,所以复用的效果最 明显。 数据结构:经常被复用的数据结构包括:内部表、列表和记录结构, 以及文件和完整的数据库。 测试用例:只要将设计或代码构件定义成可复用构件,相关的测试 用例就应当成为这些构件的“从属品”。 软件复用可以区分为横向复用( 也称水平复用) 和纵向复用( 也称垂 直复用) 。横向复用是复用不同应用领域中的软件元素,例如数据结构、 算法、人机界面构件等。标准函数库是一种典型的原始的横向复用机制。 纵向复用是在一类具有较多公共性的应用领域之间复用软件构件。由于在 两个截然不同的应用领域之间进行软件复用的潜力不大,所以纵向复用受 到广泛关注。 基于x m l 和t a m i n o 的软构件管理与检索技术 纵向复用活动的主要关键点在于领域分析:根据应用领域的特征和相 似性,预测软件构件的可复用性。一旦根据领域分析确认了软件构件的可 复用价值,即可进行软件构件的开发,并对具有可复用价值的软件构件做 一般化处理,使它们能够适应新的类似的应用领域。然后将软件构件和它 们的文档存入可复用构件库,成为可供未来开发项目使用的可复用资源。 这些步骤构成软件构件的构造活动。这是一个不断积累、不断完善软件构 件的渐进过程。 ( 2 ) 构件与构架技术: 关于构件理论学术界有许多的归纳和表述,北京大学杨芙清院士等在 软件复用与软件构件技术中作了较为全面的总结 8 】:构件( c o m p o n e n t ) 是指应用系统中可以被明确辨识的构成成分,可复用构件( r e u s a b l e c o m p o n e n t ) 是指具有相对独立的功能和复用价值的构件。 可复用构件应具备以下属性:( 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 l i t y ) : 构件应该易于通过参数化等方式在不同语境中进行配置;( 5 ) 可移植性 ( p o r t a b i l i t y ) :构件应能在不同的硬件运行平台和软件环境中工作。 软件构件技术是支持产品复用的核心技术,其主要研究内容包括: 1 构件的获取:有目的的构件生产和从已有系统中挖掘、提取构件; 2 构件模型:研究构件的本质特征及构件间关系; 3 构件描述语言:以构件模型为基础,解决构件的精确描述、理解 及组装问题( 构件的描述涉及到内部特性即实现方式的描述和外 部特性的描述) ; 4 构件分类与检索:研究构件分类策略、组织模式及检索策略,建 立构件库系统,支持构件的有效管理; 5 构件复合组装:在构件模型的基础上研究构件组装机制,包括基 于源代码的组装和基于构件对象互操作性的运行级组装。 6 标准化:构件模型的标准化和构件库系统的标准化。 软件构架是软件系统的体系结构”0 1 。它指的是软件系统中软件成分 基于x m l 和t a m i n o 的软构件管理与检索技术 ( 元素) 的组织结构、约束和关系,是对系统的组成、结构及如何工作的 较为宏观的描述。通常涉及的问题包括:系统的整体组织,全局的控制结 构,通信、同步和数据访问的协议、元素的功能分配,元素的构造、伸缩 和性能设计,以及对多种设计方案的合理选取。同时还包括了系统元素的 描述,元素之间的交互,用于指导元素构造的模式和这些模式的约束等。 软件构架研究如何快速、可靠地从可复用构件构造系统的方式,着重 于系统自身的整体结构和构件间的互联,其中主要包括【l o 】:软件构架原理 和风格、软件构架的描述和规约、特定领域软件构架、构件与软件构架间 的集成机制等。 研究软件构架对于进行高效的软件工程具有非常重要的意义:通过对 软件构架的研究,有利于发现不同系统在较高级别上的共同特性;获取正 确的构架对于进行正确的系统设计非常关键;对各种软件构架的深入了 解,使得软件工程师可以根据一些原则在不同的软件构架之间作出选择; 从构架的层次上表示系统,有利于系统较高级别性质的描述和分析。 在基于复用的软件开发中,为复用而开发的软件构架可以作为一种大 粒度的、抽象级别较高的软件构件进行复用,而且构架还为构件的组装提 供了基础和语境,从而使基于构件库系统和构架风格的可复用软件构件的 组装能够以类似工业生产的方式进行,极大地改进软件开发方法。 1 2 构件库管理系统概述 为了能够在软件开发过程中复用现有的软件构件,必须在此之前不断 地进行可复用构件的积累,并且将它们组织成可复用的构件库。在基于构 架和构件的开发方式中,构件是一个非常重要的方面,必须有数量充足的 构件可供选择,才谈得上维装,尤其是随着面向对象技术的发展,使构件 的开发也越来越简便,因此在开发过程中会积累起不计其数的构件,可复 用构件库的规模不断扩大。 在构件数量很大并且构件间相互关系也比较复杂的情况下,如何进行 管理就成为个很重要的问题,必须考虑如何组织库的结构以保持较高的 检索效率。构件必须被准确地描述、妥善地存储以及能够方便地检索到, 基于x m l 和t a m i n o 的软构件管理与检索技术 才能有利于复用。可供选择的软件构件从库中被检索出来之后,用户还必 须理解它的功能或行为,以判定它是否真正适合于当前的应用。必要时, 可考虑对某个与期望的功能或行为匹配程度最好的可复用构件进行少量 修改,还可以将修改后的构件再加到可复用构件库中。为完成对庞大且复 杂的构件库的管理,需要有一种作为基础设施的系统软件完成所有管理功 能,我们将之称为构件管理系统 1 9 1 ( c o m p o n e n t b a s em a n a g e m e n ts y s t e m c b m s ) ,这与数据管理系统的出现是类似的情况,d b m s 也是为了管理 海量数据以及数据间的关系和检索数据而产生的。 构件库管理系统是位于构件库与用户之间的一层系统软件,能够支持 对构件的描述、存储、管理,提供良好的检索手段,提供对构件复用度的 度量及对构件质量的评估。其最高目标是提供对代码级、设计级、分析级、 测试级等各抽象层次的复用的支持。 构件库管理系统使用过程当中,常遇到的问题有如下几个方面: 1 检索构件时,用户通常是通过刻面、属性、关键词、关系等来表 达所需构件的特征。然而,访问构件库的用户具有不同的层次, 有些用户并不熟悉构件的分类模式,对构件的理解也就比较困难; 2 在查询过程中,可能有多个满足用户查询条件的构件,如何快速 有效地从众多的候选构件中准确地判断并选取所需的构件,这是 一个复杂的决策过程,一切都赖于用户的复用经验以及对构件的 理解和主观评判: 3 用户通常只能使用“合法”的术语对构件进行检索,也即术语空 间提供的术语。而随着构件库的不断演化,术语空问相应地也会 增大,用户要迅速找到所需的术语可能会比较困难; 4 用户查询前也许并没有一个明确的目标,只是想通过查询构件库 看是否有能够复用的构件,因而如何通过构件的复用历史和其他 用户的复用经验为用户提供一定程度的帮助是很必要的; 5 对需求规约、设计、模式、测试计划等文档知识的构件复用与直 接用于系统开发的构件的直接复用不同,属于间接复用,需要复 用者首先进行分析和理解。而且,在大多情况下,对这些构件的 基于x m l 和t a m i n o 的软构件管理与检索技术 复用均是白盒复用,即需要根据构件复用者的反馈,对构件进行 适应性修改。如何跟踪软件复用的经验和构件的使用历史,辅助 用户选取相应的分析、设计件以及改动最少的构件是关键的。 要解决上述问题,就要求构件库管理系统不能是一个仅有构件列表, 只能进行插入、删除操作的构件存储器,它要能有效地组织和管理大量的 可复用构件,并提供相应的工具支持开发者在开发过程中方便地查询、理 解和选取构件,使得基于构件复用的软件开发成为现实。一个成功的构件 库,应满足以下几点要求: 1 拥有大量的构件。这是构件库的物质基础。一般来说,构件的收 集来自以下几个方面:由领域再生工程从已有系统中提取; 自行编制;向专门的生产机构购买。 2 有好的分类方式。分类方式的好坏直接影响构件库系统的易用性。 3 科学的管理机制。 4 动态的构件评测模型。 5 用户界面友好的检索手段。 6 能支持构件、构件库的演化。 7 能与其它构件库交换和共享构件。 在构件库管理系统中,构件描述和构件检索是两个重要组成部分。对 软构件的适当描述有助于有效的表示、开发、理解、修改和复用软构件。 同时,适当的描述对软构件的分类、编目、存储和检索起关键性的作用【鄂, 是构件库管理系统中的基础和核心。软构件描述方法影响可复用软构件的 生成、检索和修改。有了恰当的描述,开发人员才能从构件库中抽取到所 需的构件,才能对收集和开发的软件构件进行分类,然后把它们放入到可 复用构件库的适当位置。 本文利用x m l 语言的描述特性和t a m i n o 数据库的x m l 数据管理功 能,提出了一种新的基于x m l 的刻面树构件描述方法和基于t a m i n o 数 据库的软构件管理与检索方法。文章在第二章介绍了各种构件描述模型和 分类机制以及它们的优缺点,并着重介绍了基于刻面的构件描述方法的优 点和典型刻面描述模型。第三章提出了基于x m l 的构件刻面树描述方法, 垂王茎塑生型曼竺坐! 塑丛塑堡笪堡量垫茎垫查 介绍了x m l 特点和应用及其s c h e m a ,比较分析了典型刻面描述模型和 构件库e r 模型并结合刻面树理论,提出了新的构件刻面树描述模型,分 析了刻面树的组织及各个刻面的作用,提出了领域无关的功能刻面。在此 基础上,给出了基于x m l 的刻面树描述x m ls c h e m a 。第四章阐述了基 于t a m i n o 的构件库应用系统,介绍了p u r ex m l d b m s 的概念和x m l 数据库管理系统t a m n o ,讲述了t a m i n o 的功能模块和主要技术优势;着 重阐述本构件库应用系统结构及其各个功能和实现。第五部分是总结。 基于x m l 和t a m i n o 的软构件管理与检索技术 第二章构件的描述与分类 2 1 软构件描述模型 构件描述模型是关于构件本质特征的抽象描述。一个构件描述模型应 该满足一些基本原则: ( 1 ) 表达能力足够强:模型是对客观对象的抽象,合适的抽象层次 十分重要,必须既能抓住本质,又不陷入细节,既要有足够的 表达能力,又不能过于复杂。 ( 2 ) 简单性:简单性是各种模型必须予以考虑的重要性质,简单意 昧着易于掌握和理解。简单性和较强的表达能力是一对矛盾, 必须合理权衡。 ( 3 ) 一致性和完备性:模型必须具有对内的一致性和对外的完备 性。一致性是指构件作为一个封装体必须具有一致的对外接 口、一致的组成结构以及一致的交互方式。完备性是指不存在 模型所不能描述的构件。 ( 4 ) 实用性:构件模型应易于理解、方便分类和检索。 ( 5 ) 扩展性:指在保持模型本身一致性和完备性的前提下,模型可 以随着应用需求的增长而演化。 目前国内外研究界已经提出了数个构件模型,包括3 c 、r e b o o t 、 n a t o 、s t a r s 、青鸟构件模型等。 3 c 模型认为一个理想的构件描述应当涵盖三个方面的内容:概念 ( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 。 r e b o o t 是一个包括存储可复用构件的数据库和一组生产、认证、 插入、提取、评价和适配可复用构件的工具的环境。它对构件采用了刻面 分类策略,包括抽象、操作、操作对象、依赖四个刻面,主要针对源代码 级别的构l 牛1 3 s 】。 n a t o 提出了一种刻面分类模式,刻面之间不存在正交关系,也不要 基于婴和t a m i n o 的软构件管理与检索技术 求每个构件在每个刻面中有描述【2 4 】。 美国军方发起的s t a r s 项目主要考虑开放体系结构的构件库之间资 源共享和无缝互操作问题”。 北京大学青鸟构件模型采用刻面分类的策略,定义了使用环境、应用 领域、功能、抽象层次、表示方法等五个刻面。 下面将对3 c 、1 l e b o o t 和青鸟构件模型作较为详细的介绍。 1 3 c 构件模型 3 c 构件模型f 2 3 堤在1 9 8 9 年的“r e u s ei np r a c t i c ew o r k s h o p ”中由一 些系统工程领域的专家( l l a t o u r 等) 提出的,它是关于构件的一个指导 性模型。该模型由构件的三个不同方面的描述组成: 概念( c o n c e p t ) 关于“构件做什么”的抽象描述,可以通过概 念去理解构件的功能。概念包括接口规约和语义描述两个部分,语义描述 和每个操作相关联; 内容( c o n t e n t ) 概念的具体实现,描述构件如何完成概念所刻 画的内容。在本质上,内容是对一般用户隐蔽的信息,只有那些要修改构 件的人才需要了解这些信息; 语境( c o n t e x t ) 描述构件和外围环境在概念级和内容级的关系。 语境刻画构件的应用环境,为构件的选用和适应性修改提供指导信息。 语境可进一步分为: 概念语境( c o n c e p t u a lc o n t e x t ) :描述构件间接口和语义方面的关系; 操作语境( o p e r a t i o n a lc o n t e x t ) :刻画构件中被操作数据的特征( 如 类型和操作) ; 实现语境( i m p l e m e n t a t i o nc o n t e x t ) :描述构件间在实现方面的依赖 关系。 2 r e b 0 0 t 模型 r e b o o t 模型【1 6 1 ( 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 o l o g y ) 是 e v e n a n d r ek a r l s s o n 等人在r e b o o t 项目总结中提出的,它实质上是 个刻面分类模型。在描述构件时,首先对领域进行分析,并得到一组基本 的描述特征,这些特征称为刻面。刻面可以描述构件执行的功能、被操作 基于x m l 和t a m i n o 的软构件管理与检索技术 的数据、构件应用的语境或其它特征。描述构件的一组刻面称为刻面描述 子( f a c e td e s c r i p t o r ) 。通常刻面描述限制在不超过7 或8 个刻面。该模型 认为可以用有限维信息空间的术语组合,从若干个刻面的综合角度来刻画 一个构件,每个刻面描述构件在某个领域内的一些特征。r e b o o t 中采 用的刻面包括: ( 1 ) 抽象( a b s t r a c t i o n ) :对构件概念的抽象性描述。 ( 2 ) 操作( o p e r a t i o n ) :对构件所提供的操作的描述。 ( 3 ) 操作对象( o p e r a t eo n ) :描述构件操作的对象。 ( 4 ) 依赖( d e p e n d e n c y ) :描述构件与外界的依赖关系。 3 c 与r e b o o t 侧重角度不同,不应截然分开。3 c 模型是一个高抽 象层次的、可裁减的、可扩展的一个构件描述的指导性模板,它主要用于 对构件的可复用信息的描述。而r e b o o t 模型则主要用于对可复用构件 进行分类及检索。因此,可复用构件的3 c 模型描述主要由构件生产者提 供,而其r e b o o t 的描述则应由构件库的管理者提供。 3 青鸟构件模型 青鸟构件模型【2 6 堤一个与具体实现和实用性紧密联系的描述系统。青 鸟构件模型从九个方面来描述构件,更多地关心构件的易理解性、封装性 及构件间关系,通过给构件提供明确的对外接口实现服务提供者和其服务 请求者的分离,该模型更多地关心构件及其使用者间的交互,特别是对构 件使用者有意义的部分。 ( 1 ) 概念:对构件功能的抽象描述,多采用名词来表示,这类名词 应尽可能采用领域内的公认词汇,以便于直观地了解和相互交 流。 ( 2 ) 操作规约:用来指称构件对外提供的可被请求的服务。 ( 3 ) 接口:接口给出了构件的对外行为描述,分入接口和出接口两 种。 ( 4 ) 类型:类型用于定义可作为操作参数的值的特征和范围。 ( 5 ) 实现体:是构件的具体实现部分,是实际完成被请求服务的系 统。不同层次的构件有不同的实现方式,具有不同实现体的构 基于x m l 和t a m i n o 的软构件管理与检索技术 件可能具有相同的接口和操作规约。 ( 6 ) 构件复合:构件通过复合组成系统。模型中的复合关系仅限于 可表示为程序代码的构件,复合的方式是服务请求( 消息传递) , 构件间出、入接口的关联建立起构件的复合关系。 ( 7 ) 构件性质:指明构件的形态、层次和表示。 ( 8 ) 构件注释:描述和构件库相关的其他性质,这些性质是构件库 管理所必需的信息,如构件作者、制作时间、修改时间、修改 影响等。 ( 9 ) 构件语境:描述构件的软、硬件使用环境和实现依赖。 在构件描述模型的基础上可定义出构件描述语言,对构件库中的每个 构件都产生一个描述实例。除了构件描述语言之外,构件的另一种描述手 段:分类模式( 分类机制) ,与构件库的联系则更为紧密。构件库必须通 过一定的组织方式来将各构件置于适当位置,便于对构件的管理和检索, 这样的组织方式称为分类模式1 2 7 】,通过分类模式将构件按照某些标准进行 分类,然后再描述构件在每个类别中的特征,使得构件库呈现出层次壮、 树状或网状结构,从而在检索时可迅速探测出检索路径,进而定位到具体 构件。在下一节中,将对常用的分类机制进行介绍。 2 2 软构件分类机制 对构件库中构件的合理分类和组织,将有助于软件开发人员从构件库 中迅速找到所需要的构件。现有的构件分类和检索方法很多,一般的基础 都是图书馆与信息科学分类【l 引,即依据一定的分类模式将构件划分为许多 范畴。在实际复用中应用较为成功的是枚举、属性值、正文检索、关键词 和刻面等几种1 1 9 ) 。其中又以关键词( k e y v c o r d ) 分类和刻面分类( f a c e t e d ) 两种应用最多。这些方法各有优点和使用范围。 枚举分类通常将一个被关注的领域严格划分为不相交的子领域,构 件按照某些性质分成若干大类,每个大类又可分为若干小类,经过若干次 分解形成构件的层次结构,实际的构件位于层次结构的最低层,其它层次 基于x m l 和t a m i n o 的软构件管理与检索技术 则表示构件的类或子类。该方法对领域进行清晰的高度结构化的划分,概 念清晰,易于理解和使用。但是该方法过于严格,只提供了一种角度下的 视角,使得分类模式难以伴随领域的变化而演化,所能够表示的关系也受 到限制。枚举结构的创建者必须具有完整的领域知识,在建立层次结构之 前,必须进行领域分析寻找合适的供分类的性质,因此建立合适的枚举结 构是比较难的。 属性值分类该分类方法为所有构件定义一组属性,每个构件都具 有一组属性一值,开发人员通过指定一组属性值对构件库进行检 索。属性一值分类方法与刻面分类方法非常类似,不同的是:刻面对应 的术语空间是有限的不定空间( f i n i t ea n di n d e f i n i t et e ms p a c e ) ,而属性 的值域往往是无限的确定空间( i n f i n i t e a n dd e f i n i t ev a l u es p a c e ) :刻面的 选择也远比属性要慎重;对可使用的属性数量没有限制,而刻面一般不超 过7 个;属性没有优先级,刻面则可设置优先级;属性值方法中不使用同 义词功能,而刻面的术语可定义同义词关系。 正文检索该方法从文档中自动地提取分类信息,可以实现自动编码 分类,也可以与a j 方法结合处理自然语言查询。正文检索依赖于每个构 件的文本类信息,这些信息可以是源程序,文档或特别为正文检索所编写 的描述。正文检索基于文本中特定模式的识别。这些模式可以是单个词或 者词组。比如:名词+ 动词或功能名( 参数) 等。也可以有更复杂的模式, 但这有赖于自然语言处理技术的提高。 正文检索方法的优点是:与形式化的分类方法比较,它是全自动的, 无须编码,无需学习构造查询条件,因此具有成本优势。缺点是不精确性, 有检索出一堆垃圾的危险,所以必须与成熟的语言处理系统结合才能解决 从复杂的正文中准确抽取语法和语义信息的问题。 关键词分类每个构件以一组与之相关的关键词编目,用主题进行 描述,主题多为短语。每个主题下可有多个描述子,多为单词。查询者给 出关键词来描述所需的构件并由此获得构件。该方法能够根据构件文档自 动抽取术语补充到术语空间中,可节省人力。其难点在于抽取术语的精确 度,例如出现频率高的术语不一定是描述构件的本质术语。对术语的抽取 基于x m l 和t a m i n o 的软构件管理与检索技术 一般需要人力进行判断,但工作量巨大。如果采用人工智能方法则需考虑 语意,目前仅处于研究阶段。 刻面分类将术语置于一定的语境中,并通过特定的反映构件本质 特征的视角( 刻面) 进行精确的分类【2 5 】。刻面可以理解为某个领域的基本 描述特征。每个刻面从不同的侧面对构件进行分类,一个构件可以用多个 刻面以及每个刻面中的多个术语来刻画,不同的刻面从不同的角度对构件 进行描述。每个刻面具有一组术语,术语之间具有一般一特殊关系而形 成结构化的术语空间。术语仅限于在给定的刻面之中取值( 受控的词汇 表) 。在术语空间中游历可以帮助复用者理解相关领域。术语空间可以演 化。刻面的选择和术语空间的建立依赖于不同构件的角色和复用组织的需 求。刻面分类模式具有较好的灵活性,可以容易地增加新的刻面,因此刻 面分类模式比枚举模式易于扩展和修改。 刻面描述方法中允许术语之间有近义词关系。术语的同义词、近义词 定义在同义词典中。同义词指同一个术语的不同表达方式,近义词指语义 上具有相似关系的术语。刻面描述方式中增加术语较为方便,术语空间易 于修改和维护,但术语空间的确定是巨大的知识工程。在构件库建立初期, 术语空间会迅速增大,到一定阶段后稳定下来,术语的变化将成为偶然事 件。对用于描述的对象越少,其精确度就越高,就越能体现一个对象的特 征。 2 3基于刻面的构件描述 一个刻面分类模式由一组描述构件本质特征的刻面所组成,每个刻面 从不同的侧面对构件库中的构件进行分类【1 8 1 。例如,这组刻面可以是构件 的应用领域、功能、操作对象、使用环境等。每个刻面是由一组基本的术 语( 即关键词) 所构成的( 称为术语空间t e r ms p a c e ) 【2 “。一个构件可以 被每个刻面中的一个或多个术语所刻画( 刻面术语是个确定的集合) , 而每个刻面则反映了对库中构件的一种划分,因此用户可以通过指定一组 刻面的术语值对构件库检索,寻找匹配的构件。为了解决用户指定的术语 基于x m l 和t a m i n o 的软构件管理与检索技术 值与库中构件所对应的术语值之间的不致问题,可利用软件工具分析同 义词,以提高查全率。 刻面分类方法具有下列特性: ( 1 ) 刻面必须充分并明确地描述构件库中全体构件,即每一个构件都可 以用该刻面来分类。 ( 2 ) 一个刻面与一个术语空间相关联。任意两个刻面的术语空间是正交 的,即一个刻面的术语发生变化不会影响到另一个刻面的术语空 间。 ( 3 ) 一个刻面的术语空间为有限的不定空间( f i n i t e & i n d e f i n i t es p a c e ) , 即可以随时间的演进而动态地增加和删除术语。 ( 4 ) 每一个构件的所有刻面必须予以定义,不允许在对构件分类时有未 定义的刻面;但查询时,用户可以利用任意数目的刻面来查询”1 。 ( 5 ) 构件库管理者对构件进行分类时,应该针对每一个刻面,从术语空 间中选择适当的( 多个) 术语,以完成构件的封装工作。 ( 6 ) 在一个术语空间中的术语按一般特殊关系形成树状的层次结构, 每一个术语附带有不定数目的同义词( 术语间可以具有同义词关 系) 。 在刻面分类策略中,构件库管理者通过将刻面与对应的术语相联结, 可以在构件间建立复杂的联系。比一般的层次分类策略更易于修改,更富 有弹性,因为对一个刻面的修改不会影响到其它的刻面。同时,每个刻面 对应一个结构化的术语空间,避免了般的关键词分类策略的杂乱无章, 使得对关键词的管理更为方便和有序。 2 4 典型刻面描述模型 当前有很多成功的基于刻面的构件描述模型,我们选择有代表性的模 型加以介绍,并在下一章比较它们之间的差异。 1 r e b o o t 模型 r e b o o t ( r e u s eb a s e do no b j e c l o f i e n t e dt e c h n o l o g y ) 构件模型认 为一个构件通常包括以下刻面1 3 5 1 1 1 :抽象( a b s t r a c t i o n ) 、操作( o p e r a t i o n ) 、 基
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 48267-2026温室气体产品碳足迹量化方法与要求汽车驱动电机
- 山东省护士资格考试ICU患者护理评估专项练习题及答案
- 2026年无人机驾驶员执照考试无人机维修与保养知识点巩固习题及答案
- 物业管理投诉处理与客户关系维护专项习题集及答案
- 2026年心理咨询师考试心理诊断技能冲刺练习及答案
- 四川省护士资格考试ICU护理操作专项训练习题及答案
- 建筑工程施工合同验收管理考试模拟试卷及答案
- 无人机驾驶员执照考试实践考试技巧与备考及答案
- 统计师资格考试统计实务模拟试卷及答案
- 2026年高考化学有机化学备考习题及答案
- 甘肃张掖市肃南裕固族自治县马蹄学校2026-2027学年度第一学期七年级英语课后综合作业(一)(含答案)
- 2026年第一季度家庭医生签约服务培训试卷及答案
- 2026“弘扬长征精神 奋进新征程”知识竞赛题库(含答案解析)
- GB/T 47962-2026移相变压器的应用、规范和试验导则
- QC/T 901-2026汽车发动机产品质量检验评定方法
- 医疗器械生产质量手册
- 银行信访维稳工作方案
- 中信金融资产笔试题
- 四川省水利工程设计概(估)算编制规定2025
- 胃穿孔课件教学课件
- 五级护工考试试题及答案
评论
0/150
提交评论