基于刻面分类的构件检索

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于刻面分类的构件检索

袁冬娟,周晓峰

河海大学计算机及信息工程学院,江苏南京(210098)

摘要:构件库是软件复用技术的核心,而如何有效检索到可复用的构件是关键。在众多的构件检索方法中,刻面检索是一种得到广泛应用和高效的检索方法。这方面的研究和实践也一直是构件检索的重点,并且结合新技术而不断发展着。本文介绍了构件刻面检索的现状,并对其未来的发展进行了展望。

关键词:软件复用,构件检索,刻面

1引言

软件构件技术是影响整个软件产业的关键技术之一[1]。它被认为是有效提高软件生产率、缩短软件产品交付时间和提高软件质量的新途径。近年来,构件技术的发展和基于构件的软件工程(Component - Based Software Engineering,CBSE)[2]的提出,使得构件库的建立成为发展的必然趋势, 因为基于构件的软件开发需要具有大量可供选择的可复用构件,提供验证合格的构件就必须通过构件库来实现,但如何有效地从构件库中准确地检索到所需要的构件是构建构件库的关键技术问题。有效的构件检索机制能够降低构件查找和理解的成本,软件构件的分类和检索方法决定了构件库的组织、管理,以及构件库的查询和用户对软件构件的理解,是软件复用的基础性问题,也是近来软件复用研究的一个热点。基于刻面分类的构件检索方法以其能够较大地提高检索效率,而且有助于复用者理解构件和目标领域的优点得到广泛的应用。

2构件检索的现状

随着软件复用实践的深入和构件库规模的扩大以及新技术的不断发展,出现了很多构件检索方法。目前的构件分类和检索方法有两种:一是W. Frakes从构件表示出发分为的人工智能方法、超文本方法和信息科学方法三类。信息科学方法是目前实际复用项目中应用较为成功的一类, 又分为基于受控词汇表(枚举、刻面)分类和基于不受控词汇表(如关键词)分类两种形式,其中以枚举、刻面、属性值、关键词和正文检索几种方法较为常见;另外就是H. Mili按照复杂度和检索效果的递增将其分为基于文本的、基于词法描述子的和基于规约的编码和检索方法[3]。构件检索方法又可以归结为三类:基于外部索引的检索(如关键词、刻面、属性值)、基于内部静态索引的检索(基于规约的构件检索)和基于内部动态索引的检索(基于行为的检索)[4]。具体的研究和实际应用例如Prieto-Diaz提出的基于刻面分类的检索[5],Andy Podgurski等人提出的基于构件行为采样的检索[6],Merkl D.[7]等人首次将神经网络用于构件检索,Penix J.[8]等人提出利用语义特征对构件进行分类检索;到对构件的形式化表示和检索,在文[9]中作者提出对构件的基调匹配和规约匹配;1999年Damiani E.

在文[10]将模糊数学用于构件的检索。构件搜索引擎是近年来CMU/SEI的Seacord等人研究和开发的一种构件搜索系统[11],能够在Internet的各个节点上自动寻找和搜集JavaBeans、Active X、CORBA、EJB等构件,获得构件的URL等相关信息,并为之建立索引。随着www 和Internet技术的发展,出现了xml、Web Services等技术以及本体的理论都为构件检索提供更为广阔的前景。在文[12]中将xml结合刻面分类方法来对构件进行表示和检索。李玉山等人在文[13]中介绍了在刻面分类的检索的基础上采用Web Services技术对构件进行封装实现

了构件库的互操作功能。近年来随着本体的理论研究和应用的发展,本体在信息检索特别是

基于知识检索中得到广泛的应用[14,15]。Ruben PrietoDiaz在他的文章[16]中给出了一种基

于方面(Facet)的本体构建方法。目前基于刻面分类的构件检索以其能够丰富表达构件,

较大的提高检索效率而且有助于复用者理解构件功能而得到了广泛的重视和应用,被视为是

一种比较理想的构件库分类和检索策略,被众多构件库管理系统所采用。

3基于刻面分类的构件检索

3.1刻面分类的特点

刻面(facet)[17]这个术语最早使用是在50年代,分别出现在Ranganathan的图书馆分类

系统中和Guttman的一项社会调查中。但是那时的刻面概念还比较模糊,刻面之间也存在着

语义上的交迭等诸多不合理因素。然后Prieto-Diaz[18]将刻面分类方法应用于GTE公司的构

件项目时,发现该方法能够提高检索效率,而且有助于构件使用者理解构件和目标领域。刻

面是一个单词或短语的固定集合,用于描述构件的某个方面或视角(viewpoint)。每个刻面具

有一组术语,术语之间有类层次关系和同义词关系而形成结构化的术语空间。不同的刻面(刻面,术语)构成分类中子集合中元素的满足条件。构件的描述术语仅限在给定的刻面之中选取,在术语空间中游历可以帮助复用者理解相关领域。

刻面具有下列特点[19]:

(1) 刻面必须充分明确地描述构件库中全体构件,即每一个构件都可以用该刻面分类。

(2) 每一个刻面与一个术语空间相关联。任意两个刻面的术语空间是正交的,即一个刻面的术语发生变化不会影响到另一个刻面的术语空间。

(3) 一个刻面的术语空间为有限的不定空间,即可以随时间的演进而动态地增加和删除术语。

(4) 每一个构件的所有刻面必须予以定义,不允许在对构件分类时有未定义的刻面;

但查询时,用户可以利用任意数目的刻面来查询。

(5) 构件库管理者对构件进行分类时,应该针对每一个刻面,从术语空间中选择适当的术语可以是多个术语,来完成构件的封装工作。

(6) 在一个术语空间中的术语按一般/特殊关系形成树状的层次结构,每一个术语附带有不定数目的同义词(术语间可以具有同义词关系)。

F1F2 ………… F i

图1刻面及其术语空间的关系

F1 F2…F i是描述构件特征的刻面,{ F1;T11,T12 …T1j } { F2;T21,T22 …T2j }…{ F i;T i1,T i2 …T ij }是一个分类子集合中元素的满足条件。其中T11,T12 …T1j;21,T21,T22 …T2j ;

T i1,T i2 …T ij分别是F1 F2…F i中的术语集合。

相关文档
最新文档