(计算机应用技术专业论文)基于刻面分类模式的构件检索技术研究.pdf_第1页
(计算机应用技术专业论文)基于刻面分类模式的构件检索技术研究.pdf_第2页
(计算机应用技术专业论文)基于刻面分类模式的构件检索技术研究.pdf_第3页
(计算机应用技术专业论文)基于刻面分类模式的构件检索技术研究.pdf_第4页
(计算机应用技术专业论文)基于刻面分类模式的构件检索技术研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)基于刻面分类模式的构件检索技术研究.pdf.pdf 免费下载

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

文档简介

摘要 软件复用是目前解决软件危机比较现实可行的方法之一。构件及构件库的丌 发是软件复用的前提。实践中构件数量不断增加,构件也随技术发展而不断更新, 如何实现对构件库中大量的构件进行有效的检索就成为构件库和软件复用研究的 重点。 本文研究的课题来源于国家8 6 3 计划课题“基于高性能宽带通信网络的软件 支撑体系研究”( 项目编号:2 0 0 4 a a l1 6 0 1 0 ) 。主要研究基于刻面分类模式的构件 检索技术。本文通过对构件分类模式与检索技术的背景、研究现状及相关理论的 学习,指出了目前基于刻面分类模式的构件检索方法中存在的问题。针对刻面分 类模式的特点,通过借鉴树匹配模型,提出了一种新的基于刻面分类模式的构件 检索方法。这种方法能够兼顾构件检索的查全率和查准率,并且有较高的检索效 率。另夕 ,本文还给出了基于该检索方法的构件检索工具的设计,介绍了其中主 要功能模块的实现,并将其应用到大连构件库中,通过实验验证了该方法的可行 性和有效性。最后总结了本文所做的主要工作,并提出了下一阶段的工作重点。 本文的研究目的和意义在于:通过对构件分类检索技术的研究,提出了一种 有效的构件检索方法,对提高整个构件库系统的性能,降低复用成本,满足企业 用户复用行为的需要有一定的促进作用,使企业用户高效、高质量、节约成本地 进行软件复用,以达到提高产品质量和企业核心竞争力的目的。 关键词:刻面分类模式;树匹配;构件检索:查全率;查准率 r e s e a r c ho nc o m p o n e n tr e t r i e v a lt e c h n o l o g i e sb a s e do n f a c e t e dc l a s s i f i c a t i o ns c h e m a a b s t r a c t s o f t w a r er e u s ei so n eo ft h ep r a c t i c a la n df e a s i b l ea p p r o a c h e st h a tr e s o l v es o f t w a r e c r i s i sa tp r e s e n t t h ed e v e l o p m e n to fc o m p o n e n ta n dc o m p o n e n tl i b r a r yi st h ep r e m i s e o fs o f t w a r er e u s e i np r a c t i c e ,t h en u m b e ro fc o m p o n e n t si n c r e a s e sw i t hy e a r s ,t h e c o m p o n e n t sa l s oa r eu p d a t e dw i t ht h ed e v e l o p m e n to ft e c h n o l o l g i e s t h e r e f o r e ,h o wt o r e t r i e v eam a s so fc o m p o n e n t se f f e c t i v e l yi nt h ec o m p o n e n tl i b r a r yb e c o m e st h e e m p h a s i so ft h er e s e a r c ho nt h ec o m p o n e n tl i b r a r ya n dt h es o f t w a r er e u s e t h es u b j e c tr e p r e s e n t e di n t h i st h e s i ss t e m sf r o mn a t i o n a l8 6 3p r o j e c ts n b j e c t “r e s e a r c ho ns o f t w a r es u p p o r ts y s t e mb a s e do nh i 幽p e r f o r m a n c ew i d e - b a n d c o m m u n i c a t i o nn e t w o r k ”( n o 2 0 0 4 a a l l 6 0 1 t h e t h e s i s m a i n l y r e s e a r c h e so n c o m p o n e n tr e t r i e v a lt e c h n o l o g i e sb a s e do nt h ef a c e t e dc l a s s i f i c a t i o ns c h e m a b y s t u d y i n gr e l a t e db a c k g r o u n d ,c u r r e n tr e s e a r c hw o r ka n dt h e , o d e s ,p r o b l e m so ft h e c u r r e n tc 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 nf a c e t e dc l a s s i f i c a t i o ns c h e m aa r ep o i n t e d o u t an e wm e t h o do fc 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 nf a c e t e dc l a s s i f i c a t i o n s c h e m ai sp u tf o r w a r dw h i c hc o m b i n e st h ef e a t u r e so ff a c e t e dc l a s s i f i c a t i o ns c h e m aa n d t h et r e em a t c h i n gm o d e l t h i sm e t h o dc a ng i v ed u a la t t e n t i o nt ot h er e c a l la n dp r e c i s i o n o fc o m p o n e n tr e t r i e v a la n dh a sh i g h e rr e t r i e v a le f f i c i e n c y t h ed e s i g na n dr e a l i z a t i o no f ac o m p o n e n tr e t r i e v a lt o o lb a s e do nt h en e wr e t r i e v i n gm e t h o di sa l s or e p r e s e n t e di n t h i st h e s i s a n di ti su s e di nt h ed a l i a nc o m p o n e n tl i b r a r y t h ee f f i c i e n c ya n df e a s i b i l i t y i sp r o v e db yt h ee x p e r i m e n t s a tt h ee n do ft h i st h e s i s ,o u rm a i nw o r ki ss u m m a r i z e d a n do u rf u t u r ew o r ki sd i s c u s s e d t h eg o a lo fo u rs u b j e c ti st op r e s e n tam o r ee f f i c i e n tm e t h o df o rc o m p o n e n t r e t r i e v a lb yt h er e s e a r c ho nt h ek e yt e c h n o l o g i e so ft h ec o m p o n e n tr e t r i e v a l o u rw o r k w i l lb eb e n e f i c i a lt oi m p r o v et h ec a p a b i l i t yo ft h ec o m p o n e n tl i b r a r y , a n dt or e d u c et h e c o s to fs o f t w a r er e u s e t h ea p p l i c a t i o no fo u rr e s e a r c hw o r kc a nh e l pt h ee n t e r p r i s e s d o i n gs o f t w a r er e u s ew i t hh i 【g he f f i c i e n c y , h i g hq u a l i t ya n dl o wc o s t s ,a sw e l l a s i m p r o v i n g t h eq u a l i t yo fs o f t w a r ep r o d u c t sa n dt h ee n t e r p r i s ec o m p e t i t i v ec a p a b i l i t y k e yw o r d s :f a e e t e dc l a s s i f i c a t i o ns c h e m a ;t r e em a t c h i n g :c o m p o n e n tr e t r i e v a l r e e a l l :p r e c i s i o n 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本沦文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成博士硕士学位论文 :基士刻画坌耋攫式的捡佳捡墓挂丕盟塞:。除论 文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在 文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经 公开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:二孚觊勿彩年多月2 多日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于:保密口 不保密口( 请在以上方框内打“”) 论文作者签名 日期 历 “y 蝣多 ;乃虢 师年 导6知 第1 章绪论 1 1 选题背景及意义 随着计算机技术在各行各业中的迅速发展,软件开发的规模急剧增大,复杂 性增高,导致了“软件危机”的出现。所谓的“软件危机”就是指在软件开发中 存在的重大问题,如:开发周期长,效率低,可维护性差,适应性差,开发成本 高,不能满足用户的需求等【l 】。为了解决软件危机,人们不断地探索着各种方法。 近几年来,人们开始认识到要彻底解决“软件危机”,就应该真正实现软件的工业 化生产方式,这样,才能保证软件生产的高效率和高质量。以构件为基础的软件 复用技术为这一问题提供了新思路。 在1 9 6 8 年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 ,北大西洋公约组织) 软件工程会议上,m c ll r o y 在他的论文“m a s s p r o d u c t e ds o f t w a r ec o m p o n e n t s ” 中首次提出了可复用软件构件库的思想以及形式化软件复用的概念。所谓软件复 用就是指用已有的软件成分构造新的软件系统1 2 j 。即在开发新的应用系统时,重复 使用以前开发活动中曾经积累或使用过的软件资源。这些软件资源不仅包括源代 码,还包括软件开发方法、需求规格说明、设计结构、开发工具与支撑环境、测 试分析数据和维护信息等,这是软件复用最早的思想雏形。此后的三十多年时间 里,软件复用一直受到人们的关注。在9 0 年代发展起来的基于构件的软件工程 c b s e 3 】( c o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n g ) 成为现代软件工程进步中的一个 里程碑,它极大地促进了软件复用思想进入各行各业信息系统的开发中,并且产 生了大量的高质量的可复用构件。近年来,随着面向对象技术、i n t e r n e t 和w e b 技 术的成熟以及o l e ( o b j e e tl i n k i n ga n de m b e d d i n g ) 和c o r g a 等工业标准的出 现,都火大刺激了构件技术的发展。软件产业界的竞争日益激烈,缩短软件的交 付时间和提高软件质量已经成为决定企业生存的关键。如果不使用软件构件,就 会在竞争中失去时间优势和质量优势,这些情况都造成了对可复用软件构件的需 求。 随着软件复用实践的深入,企业内部将会积累大量自主开发的构件、购买的 商业构件和其他企业丌发的n d i ( n o nd e v e l o p m e n t a li t e m ) 构件。这些可复用构件 构成了庞大的企业资产,而构件库作为分类和管理构件资产的基础设施就变得十 分重要。实践中构件数量不断增长、构件也随技术和领域演化而更新,要在构件 库中众多的构件中寻找合适的构件必须借助于自动检索工具的支持。另一方面, 对单个构件的复用可以划分为构件的识别和检索、构件理解和适应性修改三部分, 其复用成本公式为:复用成本= 检索成本+ 理解成本+ 修改成本i 钔。有效的构件检索 机制能够大大降低构件检索和理解成本,而构件的分类正是为了实现高效方便的 检索。因此,管理构件库和降低复用成本两方面的要求都促进了对构件的分类和 检索机制的研究和评价,为实践中的复用项目提供技术支持。很难设想,缺乏充 足的可复用软件构件资源,没有精确的、丰富的构件检索手段,软件复用的实践 将如何实_ 施。 为了推动具有自主知识产权的软件开发与软件产业发展,国家科技部批准国 家8 6 3 项目“基于高性能宽带通信网络的软件支撑体系研究”( n o 2 0 0 4 a a l l 6 0 1 0 ) , 在大连建立国家级软件孵化器。该项目由大连市科技局、大连海事大学、大连软 件园等共同承担,其中大连海事大学计算机学院作为技术支撑单位。其主要研究 内容之一是建立面向软件开发的公共技术支撑体系。该技术支撑体系的核心是三 库三平台:开放源代码库、软件构件库、公共软件工具库、软件产业国际化技术 支撑平台、8 6 3 成果技术转化支撑平台、国际化软件人才培养支撑平台。本论文的 研究工作是基于其中的子课题“软件构件库”而进行的,主要研究基于刻面分类 模式的构件检索方法。 1 2 国内夕l t b 关研究现状 构件库作为软件复用的基础设施,成为近十年来软件复用的研究热点和重点, 国t 匈# 1 - 学术界对其进行了比较深入的研究吼为了进一步理解构件检索技术的研究 现状,以下简要介绍四种有代表性的构件库及其使用的构件检索技术。 r e b o o t 构件库及其检索技术 r e b o o t f r e u s eb a s e d0 1o b j e c o r i e n t e dt e c h n i q u e s ) 是欧盟信息技术计划 e s p r i t 中的一个项目,目标是研究、丌发以及推广重用驱动的和面向对象的软件 技术。r e b o o t 系统是9 0 年代初期国际上比较著名的构件库系统,e h 个存储构件 的复用库以及一组支持构件牛产、考查、分类、选择、评估和适配的复用工具组 成。它采用基于刻面分类的构件检索方法作为主要检索方法,定义了a b s t r a c t j o n 、 o p e r a t i o n s 、o p e r a t e so n 、d e p e n d e n c i e s 四个刻面来描述系统所存储的面向对象 的源代码构件。a b s t r a c t i o n 刻面常为类名,o p e r a t i o n s 刻面常是类的方法, o p e r a t e so n 刻面描述与之合作的其它构件,其术语空间与抽象刻面是基本一致的 从整体上看来,r e b o o t 的刻面分类模式主要针对的是源代码级别的构件,而且不 具备描述粒度较大、结构较复杂的构件如模式、框架等的能力。 c o d e b r o k e r 构件库及其检索技术 c o d e b r o k e r 是美国c o l o r a d e 大学所开发的一个构件库原型,其特点是构件库 与源程序编辑工具实现无缝集成,为用户提供主动查询服务。c o d e b r o k e r 存储的 构件是j a v a 的类和方法,辅助j a v a 程序员的开发。 系统通过三个a g e n t ( l i s t e n e r 、f e t c h e r 、p r e s e n t e r ) 实现构件的主动检索。 l i s t e n e r 在后台实时监控用户在编辑器中的输入,通过对输入文本( 注释、类名或 方法名) 的分析获得检索条件,交给f e t c h e r 处理。f e t c h e r 在构件库中检索满足 条件的构件通过p r e s e n t e r 在编辑器中动态显示出来,这样编程人员就可以及时 而自动地获取所需要的构件。c o d e b r o k e r 的检索条件完全依赖于用户在编写程序 过程中的文本输入,因此查准率较低,为此c o d e b r o k e r 提供了一套构件过滤机制 帮助用户快速删除不相关的构件。 a g o r a 构件搜索引擎及其检索技术 a g o r a 是c g us e i 开发的一个构件搜索引擎。s e i 的一些研究人员认为传统的 构件库是一种大型的集中式系统,库的可访问性和可扩展性都有限。随着 j a v a b e a n s 、a c t i v e x 、c o r b a 等商业构件标准的建立与发展,在i n t e r n e t 的各个 结点上分布着大量可复用的标准构件。因此,应该研究一种在i n t e r n e t 上搜索这 些构件的工具。 a g o r a 通过对w e b 页面的搜索来获取构件u r l 等相关信息,采用和普通搜索引 擎相同的方式管理构件信息。除了利用s p i d e r 技术在w e b 页面上搜索构件外, a g o r a 也允许构件开发者将他们开发的构件直接在a g o r a 服务器上注册。a g o r a 节 省了构件验证和构件库管理的成本,构件开发者无需提交构件,构件库的用户能 够相对及时地得到构件的最新版本。但是,其搜索的构件种类有限,由于构件模 型的差异,对j a v aa p p l e t 和a c t i v e x 的搜索效果比较好,而对其他种类的构件( 如 c o r b a 、e j b ) 搜索效果较差。而且构件的描述信息和分类信息不够充分。缺乏构件 功能的语义描述信息,用户只能通过方法、事件或属性名称进行检索,不便于用 户准确定位和使用构件。库中构件的唯一性和存在性也得不到保证。 青鸟构件库管理系统及其检索技术 青鸟构件库管理系统f 6 j ( j b c l m s ) 是国家“九五”重点科技攻关项目“软 件工程环境( 青鸟c a s e ) _ 1 2 业化生产技术及系统( j b s e i m s ) 的研究开发”中的核心 组成部分之一。j b c l m s 是一个基于i n t e r n e t 的软件资产库管理系统。它可以存储 和管理广义的构件。采用数据库管理系统存储构件描述信息,文件系统存储构件 实体。j b c l m s 提供以刻面分类为主,结合多种标准的分类方法对构件库中大量构 件进行有效的管理。选取使用环境、应用领域、功能、层次、表示方法作为基本 刻面,以满足多形态多层次构件的描述需求。 j b c l m s 使用者可以按刻面进行检索,即通过选择任意刻面的一个或多个术语, 就可以迅速限定构件的范畴。除了刻面检索外,使用者可根据构件的任意属性进 行辅助检索。使用者在检索构件过程中,可随时通过超文本浏览器对库中构件进 行有层次地浏览。j b c l m s 还提供了类似“服务台”的机制。使用者在检索构件过 程中,可以向“服务台”求助,也可以向它提出自己的意见和建议。使用者找到 一个构件时,j b c l m s 可毗显示出与该构件有某种关系的所有构件。较为熟练的使 用者可以用类似s q l 检索语句的形式,以构件的属性和刻面作为条件变量,并允 许检索条件进行与、或、非的任意组合。上面提到的检索方法可以任意组合,逐 步求精,并允许检索过程的回溯。j b c l m s 还提供了基于数据仓库技术的构件反馈 机制,为用户选取构件提供辅助分析。 j b c l m s 的体系结构如图l _ l 所示。 4 。 图1 ij b c l i s 体系结构 f i g 1 j 1j b c l m sa r c m t e c 4 u r e 应用层 系统服务 数据管理 数据存储 目前,构件库技术在商业界和学术界都得到广泛的研究,并且开发了不少的 构件库系统。除了以上介绍的四种构件库系统外,商、监界有r e u s er e p o s i t o r y 、 s a l m s ( 软件资产库管理系统) 、a s r r ( 自动软件复用库) 、t h eu n i v e r s a l r e p o s i t o r y ( 通用库) 、a i r s ( 基于a i 的软件复用库) 、r l t ( 复用库工具集) 和h s t x 复用库等构件库系统。政府级构件库有:d s r s ( 美国国防部软件库系统) 、l i d ( 构 件库互操作示范工程) 、i c a s e ( 计算机辅助软件工程集成环境) 、m o r e ( 面向多 媒体的构件库) 、s a i c a e e s t ( 面向软件工程的软件资产复用技术) 、p a l ( 公共a d a 库) 、c a p s 软件可复用软件构件库和d i s a ( a d a 库暨美国国防部信息系统代理复用 库) 等。表1 1 中列出了一些构件库及其使用的构件检索技术。 表1 1 部分构件库的构件检索技术 t a b + 1 1s o m ec o m p o n e n tl i b r a r yr e t r i e v a lt e c h n o l o g y 系统组织 表示和检索构件类型 状况 c a t a l o g b e l ll a b s 不受控关键词 c 函数、t r o f f 宏块已部署 l a s s l eb e l ll a b s a i 框架c 构件原型 b a u h a u s i n f e r e n c e 公司a t 框架a d a 构件 已部署 p 1 a n e t e x t f i g m c c 超文本c 函数原型 s e e ru n i v o fm a i n e超文本b o o c h 构件原型 r l f u n i s y s 语义网a d a 构件已部署 a s s e tl i b r a r yg t e刻面f o r t r a n 构件已部署 r s li n t e r m e t r i c s不受控关键词、a d a 构件已部署 枚举 m e sb e l ll a b s 基于规则p l t 构件 原型 r e u s e w e s t i n g h o u s e枚举和刻面a d a 构件 产品 c a m p p e s 美国空军枚举、属性a d a 包 已部署 通过对上述几种比较典型的构件库及其检索技术概述,可以看出构件的检索 效率与构件的分类结构及检索方法密切相关。首先,构件的分类结构一般被认为 是获得好的检索效果的关键。如果构件库的分类结构有问题,那么不管设计的匹 配算法有多么精巧,也很难获得好的检索性能。构件的分类结构应该能够为查找 构件过程尽可能地提供自然的线索。构件的分类方法有很多种,其中隶属信息科 学领域的刻面分类方法正逐步得到重视与应用。基于刻面分类的构件检索方法是 现在通用构件库系统中较为流行的一种分类检索方法。因为这种方法比较适合大 规模的构件管理,同时又是检索代价、复杂性和检索质量三者最为均衡的方法, 所以一直是研究的热点。北大西洋公约组织( n a t o ) 标准推荐在构件库中采用刻面 分类模式川。本文所提出的构件检索方法正是基于该分类模式的,在文中的第3 章 详细的介绍了该分类模式,并提出了具体的检索方法。 1 3 本文的主要研究工作 在基于刻面分类模式的构件检索方式的实现上,目前主要有两种方法:( 1 ) 采用传统的数据库检索技术为主并结合利用刻面术语空间的层次结构来实现构 件的检索,此种方式因为是用数据库中各个表的关系来实现对构件的刻面描述, 所以在查询时,数据库表的多层关联使检索效率难以保证。( 2 ) 采用基于x m l 的 查询语言x q t ,来实现构件的检索。例如,f o r b e sg i b b 在他们的可重用软件构件 研究项目1 8 l 中引进了x m l 作为构件刻面描述的标记语言,并应用x m l 检索语言 x o l 来实现构件的检索。但是,使用x q l 只能检索到与检索条件精确匹配的结果。 而构件的检索还需要兼顾对所查询构件的不完全描述,对查询的匹配应有_ ”定 的张驰能力【9 1 。所以该方法也不能很好地满足构件检索的要求。 针对上述情况,本文在将构件以刻面分类模式的基础上,借鉴树匹配模型, 提出了一种新的基于刻面分类模式的构件检索方法,这种方法既能检索到与检索 条件精确匹配的构件,又能兼顾对所检索构件的不完全描述,对构件的检索具有 一定的张弛能力。因此能够兼顾构件检索的查全率【2 3 】和查准率,并且有较好的检 索效率。这种方法为解决上述软件构件检索中所遇到的问题提供了一条切实可行 的途径。此外,本文给出了以该检索方法为核心的构件检索工具的设计与实现, 并通过实际应用和实验验证了该方法的可行性、有效性。 1 4 论文的组织与结构 本论文共分为五章,第一章为绪论,介绍本文的选题背景及意义、构件库检 索的国内外研究现状以及本文的主要研究内容和论文结构。 第二章主要介绍构件及其分类模式与检索相关理论。 第三章深入研究了刻面分类模式及其特点。针对基于刻面分类模式的构件的 特点,借鉴树匹配相关模型,提出了一种新的基于刻面分类模式的构件检索方法, 并给出了具体的匹配算法。 第四章论述了构件检索工具实现过程中所涉及到的构件存储方案和刻面分类 方案,给出了构件检索工具的设计,实现了第三章所提出的构件检索方法。介绍 了该检索工具中各功能模块的具体实现。 索工具的可行性和有效性。 第五章总结了本文所作的主要工作, 最后通过实际应用和实验,验证了该检 并提出了下一阶段的工作展望。 第2 章构件的分类模式及构件检索相关理论 2 1 构件的定义及特点 21 1 构件的定义 构件来源于英文的“c o m p o n e n t , ”,在有些文献中也称为组件。目前,对构件 的定义,软件产业界还未形成统一的认识。一般来说有广义与狭义之分,广义上 讲,构件是指可以被明确标识的软件制品,它可以是需求分析、设计、代码、测 试用例、文档或软件开发过程中的其它产品。狭义来说,软件构件是指可复用的、 提供明确接口完成特定功能的程序代码块( 源代码、二进制代码或可执行代码) 。 构件的发展经历了以下三个阶段: 2 0 世纪6 0 年代术n s o 年代初,结构化的软件开发思想开始占主导地位。构件 指的就是一些定义良好的方法包或者是功能模块。 8 0 年代起,面向对象的开发思想开始发展起来。构件指的就是类库。这时候 的类虽然具备了一定白钮封装、多态和继承性,但是还需要依赖具体的编程语言, 因此不能完全达到可移植性和互操作性的要求。 9 0 年代后,构件的内涵开始得到加强,聚合性、独立性和复用性得到进一 步提高。此时的构件软件的定义得到了完善。目前对构件有如下定义: 定义2 1构件是一个系统中最重要的,基本上独立的可替换的部分,在己定 义好的软件体系中执行很清楚的功能,适合提供一系列接口的物理实现1 3 】。 定义2 2 一个可运行的软件构件是一个或多个程序的动态捆绑包,它作为一 个单元进行管理,通过文档化的接口进行访问,这个接口会在程序运行时出现f 1 0 i 。 定义23 一个软件构件是明确规定的接口和环境附属物所构成的组合体的 一个单元,它可以独立的被调度,并可被第三方所组合0 1 。 定义2 4 构件是指语义完整、语法正确和有可复用价值的单位软件,是软件 复用过程中可以明确表示的系统构成【1 0 l 。 定义2 5 构件是个软件单元,具有姐契约或合同规定的接l j 。构件与它 所在的环境上下文有清晰的依赖关系,并且仅仅与此相关。构件可以被独立配置, 咀便由第三方进行合成( 新的软件) 【1 “。 定义2 ,6 构件在不同的抽象层次被定义和存储为规约、设计和实现每个 类是来自以前应用的某产品的工程化描述。规约知识开发知识被以复用 建议类的形式存储,它们包括对构件的描述为基础检索可复用构件及检索后组装 和剪裁构件的指导【1 2 j 。 定义2 7 构件是指在应用系统中可以明确辨别的构成部分,而可复用构件是 指具有相对独立功能和可复用价值的构件1 1 3 1 。 以上这些定义根据各自不同的目的从不同方面对构件进行了描述。在本文中, 一般认为构件是具有相对独立功能和具有可复用价值的软件构成成分。 2 1 2 构件的特点 一般来说,构件主要有以下几点: 独立性:构件可独立开发( 需求分析、设计、编码、测试) 、部署和发布。 有一组定义良好的接口:构件通过一组接口对外完成其功能,接口可分为对 外服务接口和服务请求接口。 封装性:构件是一个高内聚的软件包,通过接口对外交互,屏蔽了内部实现 细节,构件可通过独立开发封装为符合业界认可的模型标准的二进制代码。构件 封装采用的标准有: c o m c o m 十n e t j a v a b e a n e j b c o r b a v c l w e b s e r v i c e 可替换性:构件被组装到软件系统中后,可以用具有相同接口和相同封装标 准的其它构件将其替换下来,替换中无须任何编码工作,替换后该软件系统仍能 运行。 可组装可调整性:构件可在定义良好的体系结构下方便地组装到软件系统 中,也可与其它构件组装成为粒度更大的构件。一般情况f ,构件要有方便的可 调整机制以便于复用,即提供了多个可变点利于客户化。 2 2 构件库概述 构件库是可重用软构件的集合,是一个包括人员、工具和过程的组织,主要 目的是提供软件生存周期产品的重用机制以满足特定的软件代价效益和生产 率的目标,并作为开发可重用软构件和基于可重用构件开发这两令生存周期的联 系体系。具体地说,构件库就是类似于用来存储、检索和管理构件的数据库,是 开发可重用构件和使用可重用构件的中间媒介。 在软件技术的发展过程中,出现过多种不同形式的构件库,主要包括: ( 1 ) 子程序库和类库 高级程序语言编译器的开发商提供给用户的开发工具中一般都带有若干子程 序库,例如c 语言的库函数。类库是o o p l 中不可缺少的组成部分,例如i n p r i s e 的v c l 、微软的m f c 、s u n 的j a v a 类库等。一些面向某个领域的通用子程序库也发 挥了很大的作用,例如,数学程序库就是非常成功的子程序库,它们是最早出现 的构件库形式。 ( 2 ) 领域专用构件库 领域专用构件库用于存储和管理某一特定领域构件的构件库。例如商业领域 构件库、军事领域构件库等。 ( 3 ) 软件资产库 8 0 年代末9 0 年代初研究人员认为软件开发过程分析、设计、编码、测试阶段 一切有重用价值的软件成分都可以称为构件,构件也被称为软件资产。软件资产 库用于存储这些广义范围的软件构件。软件资产库是十余年来构件库领域的研究 重点,学界和业界对此做了大量的研究和实践工作,取得了相当的成果。 ( 4 ) 具有完备构件检索系统的构件库 检索构件和获得构件是构件库的重要功能,构件检索系统是支持可重用软件 构件分类和检索的自动化工具。软件搜索引擎是近年来c m u s e i 的s e a c o r d 等人 研究和开发的一种构件检索系统,能够在i n t e r n e t 上自动查找和搜集j a v a b e a n s 、 a c t i v e x 、c o r b a 、e j b 构件,获得构件的u r l 等相关信息,并为之建立索引。 构件库系统本身也是一类数据库管理系统,它具备数据库的基本特征和功能, 为了向基丁二构件的应用系统开发提供构件,构件库管理系统必须能够存储构件和 1 0 构件相关信息【1 4 】: 构件的语义描述( d e s c r i p t j o n ) :描述构件功能和用途,精确定义构件语义; 构件的分类( c l a s s i f i c a t i o i l ) :对构件相同特征的聚类; 构件的形态( f o r m ) :构件的类型,广义构件包括类、类树、框架、模块等; 构件的技术环境,包括构件的开发工具、配置方法和部署环境等;构件的形式, 包括源代码、二级制代码等; 构件的状态( s t a t u s ) :版本、历史等时间相关构件的属性。 为了能够管理和维护构件信息,构件库管理系统必须能够提供如下的操作: 构件的添加( i n s e r t i o n ) :主要是构件的测试和认证方法,只有合格的构件 才能添加到构件之中: 构件的检索( r e t r i e v a l ) :也就是构件的需求匹配,与一般的数据库不同, 构件匹配通常不能得到完全满意的构件,对与需求相关或相近的构件,需要通 过适配使之满足需求;由于构件的粒度不同,需求问题分解和构件合成是两种 配合检索的方法。 其他构件库管理手段:构件的删除、备份、用户登记和存取控制、使用跟踪 和统计分析、异构构件库的连接等。 由此可见,构件库理论研究的熏点是构件分类与检索,即研究构件分类策略、 组织模式、检索手段和构件相似性分析。有关构件库中构件的分类与检索机制将 在后面的2 3 节和2 4 节中做具体的介绍。 2 3 构件的分类模式 对大量构件进行分类有三个好处:便于组织管理、方便查询和辅助理解。构件 分类是建立( 生成) 和维护构件目录信息的活动,构件的检索方法依赖于构件的 表示和分类。从不同的角度可以对分类模式进行不同的划分。 im il i 根据构件检索的复杂度将构件分为基于文本的、基于词法描述子的和 基于舰约的编码和检索三类【1 5 1 。 基于文本的分类 构件的下文被当作种隐含的描述符( d e s c r i p t o r ) ,i f 文本身不需要任何分类处 理,检索时可以采用任意复杂的字符串当作描述符与构件正文匹配。这种方式的 优势在于分类检索的代价很低,容易实现。它的缺点是检索效率低,检索的结果 不完备也不可靠,需要人为的筛选4 可能找到相应的构件。 基于词法描述子的分类 这种分类检索方式就是在构件分类时,对构件赋予一组关键词短语,即添加 分类信息给每个构件,检索时利用这些分类信息来检索构件。这是现阶段构件库 管理系统常用的分类检索方式,关键词方式、枚举方式、刻面方式和属性值方式 都属于此种方式。其优点就在于分类时添加了分类信息,从而提高了构件检索效 率;缺点也存在于分类信息的制定和维护,以及用户的理解方面等。这种方法一 直是构件分类检索技术研究的重点和热点。 基于规约的编码和检索 这种分类检索方法实现的是构件的功能和它的分类( 编码) 的完全等价。规 约语言具有其自身的语义,可以形式化的建立构件与查询之间的匹配关系。a m i l i 等人使用关系规约和“精华”偏序关系来组织和检索构件;c h e n 等人提出了使用 抽象数据类型的代数规约及其之间的“实现”偏序关系,通过从代码中直接抽取 基调( s i g n a t u r e ) 和行为公理( b e h a v i o r a la x i o m ) 来进行构件检索,并设计了相 应的构件证明系统。基于规约的检索方法往往有很高的查准率,但当选用的规约 语言不当或规约语言的能力使用不完全时,会降低查准率。所以对于特殊领域中 的构件进行描述,选择一种合适的舰约语言很重要。基于规约的检索方法目前仍 然处于理论研究阶段,应用到的领域也基本限制在实时系统和交互系统领域。 w f r a k e s 从构件表示的出发将现有方法分为人工智能方法、超文本方法和信 息科学方法三类【1 6 l 。其中信息科学方法在实际构件库的项目中应用较为成功。如 图2 1 所示,信息科学方法又分为基于受控词汇表( 如枚举、刻面) 分类和基于 不受控词汇表( 如关键词) 分类两种形式。在信息科学分类方式中,基于受控的 词汇表方法为研究的重点,它的主要特点就是用柬进行分类检索的词汇表为有限 集合,主要包括枚举分类方式、刻面分类方式和关键词分类方式。基于不受控的 词汇表方法,一般是对构件描述信息的全文进行处理的方式,如从正文抽取术语, 词汇表是个无限集合。这里我们只介绍一些常用的分类方式。 图2 1 信息科学方法分类图 f i g 2 。li n f o r m a t i o ns c i e n c em e t h o dc l a s s i f i c a t i o n 枚举分类 通常将一个被关注的领域划分为多个不相交的子领域,依次构成层次结构。 该方法对领域进行清晰的高度结构化的划分,易于理解和使用;但是该方法有一 定的不足,很难解决同一个构件属于不同子领域的二义性问题,不易于随领域的 演变而演变。 属性值分类 构件是根据一组固定的属性和对应的值来描述的。与下面介绍的刻面分类相 似,所不同的是刻面对应的术语空间是有限的不确定空问( f i n i t ea n di n d e f i n i t e t e r ms p a c e ) ,而属性的值域往往是无限的确定空间( i n f i n i t ea n dd e f i n i t ev a l u e s p a c e ) ,刻面的选择也远比属性要慎重。 正文检索 从文档中自动地提取分类信息,可以实现自动编码分类,也可以与a i 方法结 合处理自然语言查询。其优点是无需编码,无需学习构造查询条件,因此具有成 本优势。缺点是必须与成熟的语言处理系统结合才能解决从复杂的f 文中准确抽 耿语法和语义信息。 关键词分类 每个构件用一组与之相关的关键词编目。一般,关键词取值是不受控的词汇 表,由于缺乏上下文语境导致检索的效率和精确度也得不到保证。 刻面分类 由一组描述构件本质特征的刻面所组成,每个刻面从不同的视角对构件库中 的构件进行精确的分类,每个刻面具有一组术语( 关键词) ,术语之间具有一般特 殊关系而形成结构化的术语空间。术语空间是可以演变的有限的不定空间。 在上述各种分类模式中,刻面分类方法从若干不同的维度描述复杂对象,具 有枚举、属性值和关键词分类几种方法的优点。也正是因为它的诸多优点,它被 n a t o 组织采纳和推荐使用,是一种目前使用最为广泛的分类模式。本文所研究的 构件的检索方法正是基于这种分类模式的。在本文的第3 章将详细介绍这种分类 模式的特性和优点。 2 4 构件检索 2 4 1 构件检索方法 构件检索方法主要归结为三类:基于外部索引的检索、基于内部静态索引的 检索和基于内部动态索引的检索1 1 7 i 。 基于外部索引的检索如常见的关键词检索、刻面检索和基于属性的检索等。 这类检索大多采用控制词典、属性等外部索引对构件进行检索。几乎所有的研究 都认为提供自动化支持是必要的,自动索引、分层浏览和查询条件的简单规约和 自动生成有助于提高效率、增加复用机会和提高复用质量。w f r a k e s 的研究实验 表明各种分类法基础上的检索在辅助不同用户的理解上并无太大差异,需要考虑 同一个系统中支持多种基于分类法的检索方法的组合使用。 基于内部静态索引的检索根据构件自身的结构元素进行检索构件,其中构 件规约的语法和语义匹配、结构匹配技术等是主要方法。到目前为止,规约的语 法匹配己研究的比较充分,语义匹配也形成了一般性的方法。 基于内部动态索引的检索利用构件的可执行特性( 如构件的输入与输出空 | h j ) 进行检索,基于行为的检索是目前这类检索中常见的方法。出于实际应用的 复杂性,基于行为的检索目前只停留在研究阶段。 2 42 构件检索过程模型 构件检索过程模型如下:重用者分析实际的需求,形成及提出查询条件:构 件库依据选择的分类方法对构件进行分类形成构件类,并对各个构件类进行编码 描述并建立索引;由匹配算法对查询条件及构件类的编码描述进行比较,找出精 确匹配或近似匹配的构件,其中,“查询条件”指的是重用需求的表达式,可以是 简单的字符串搜索命令,也可以是组合的s q l 查询语句,如图2 2 所示。 蕊难瓣裟陶丽硝朽嘲轩哑也 编码: 匹配算法 查询条件 编码: 分类索 图2 2 构件检索过程模型 f i g 2 2c o m p o n e n tr e t r i e v a lm o d e l 第3 章基于刻面分类模式的构件检索 3 1 刻面分类模式 3 1 1 刻面分类模式定义 一个刻面分类模式由一组描述构件本质特征的刻面所组成f 1 8 】,每个刻面从不 同的侧面对构件库中的构件进行精确的分类。例如,这组刻面可以是构件的应用 领域、功能、操作对象、使用环境等。每个刻面是由一

温馨提示

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

评论

0/150

提交评论