Вы находитесь на странице: 1из 3

一个支持构件库动态演变的构件检索系统

张 辉 徐 玮
北京航空航天大学计算机系 (北京 $"""HC)
QR.)3+:S@)0T@’3!U)(3)30V-#9-.

摘 要 在基于构件的软件开发 ,=? (9-./-0&01R*)(&E B-V1F)2& E&:&+-/.&01)中,随着可重用构件库的不断增长,构件


的分类和检索技术一直是软件重用组织十分关注的问题。文章提出了一个支持构件库动态演变的构件检索系统;为了
改进该系统的检索性能,还采用了多种构件检索方法。

关键词 构件 构件库 构件分类 构件检索

! "#$%#&’&( )’(*+’,-. /01(’$ /2%%#*(+&3 (4’ 5,#.2(+#& #6


"#$%#&’&( )’%#1+(#*+’1
74-&3 82+ 92 :’+
(=&3W30T K03:&2(314 -V 8&2-0)’139( )0E 8(12-0)’139(,
=&3W30T $"""HC)
!;1(*-<(: 70 1@& 9-./-0&01X*)(&E (-V1F)2& E&:&+-/.&01,8( +3*2)23&( -V 2&’()*+& (-V1F)2& 9-./-0&01 9-0130’& 1- T2-F,
1@& 3((’& -V 2&123&:30T 9-./-0&01( V2-. (-V1F)2& 9-./-0&01 2&/-(31-23&( @)( 9)/1’2& 1@& )11&013-0 -V 1@& (-V1F)2& 2&’(&
9-..’0314Y J@& )2139+& /2&(&01( ) 9-./-0&01 2&123&:)+ (4(1&. 1@)1 (’//-21( 1@& 9-0(12’913-0 )0E &:-+’13-0 -V 9-./-0&01
2&/-(31-24,1@& (4(1&. )+(- (’//-21( E3VV&2&01 2&123&:)+ .&1@-E( V-2 (-V1F)2& 9-./-0&01#
=’0>#*?1: 9-./-0&01,9-./-0&01 2&/-(31-24 ,9-./-0&01 9+)((3V39)13-0,,-./-0&01 2&123&:)+

$ 简介 息,为构件的检索提供支持。构件的分类体系应该能够为查找
利用软件重用的思想来开发软件可以大幅度地提高软件 构件过程提供自然的线索。由于人们往往按照重用的要求来查
开发效率和软件质量。目前软件重用所使用的技术很多,但是 找所需的构件,因此构件的分类体系是根据构件的可重用属性
用 的 比 较 多 的 还 是 基 于 可 重 用 构 件 库 (%&’()*+& ,-./-0&01 来建立的。构件的可重用属性是指在重用活动中可以标识构件
2&/-(31-24 )的方法 。构件库是存储和检索构件的数据库,是开
5$6 的特性。例如,功能类型(指构件具有的功能)、系统类型(构件
发可重用构件和使用可重用构件的中间件。通过对遍布于网络 能够运用于其中的计算机软件系统类型)、应用领域(适合构件
上的构件库的访问,可以显著地增加重用的潜力。开发者除了 实际运行的业务领域)都可以作为构件的可重用属性。在分类
可以在一个组织内访问它的中心构件库以外,还可以利用合作 体系中,以构件的标准、使用范围、系统类型、计算机领域、应用
部门、合作公司的构件,甚至通过 701&20&1 使用全球构件。随着 领域、功能和粒度等属性对构件进行划分。
可重用构件库的不断增长,使用构件库面临着这样一种困境 5!6: ($ )根据构件是否满足标准,分为两种构件,一种是可以跨
一方面 ,为 了 使 用 构 件 ,构 件 库 中 必 须 有 足 够 的 构 件 来 支 持 开 平台的标准构件,如 8913:&; 构件和 ,<%=8 构件,一种是不符
发;另一方面,当大量的可重用构件存在时,查找和选择恰当的 合 标 准 ,只 能 在 某 个 平 台 中 使 用 的 构 件 ,如 只 能 在 >= 、?&+/@3
构件又变得十分困难。高效的检索方法才能使用户正确地定位 或 A= 环境中使用窗口、菜单、用户对象、模板等构件。
所需要的构件,从而满足重用活动的需要。 (! )根 据 使 用 的 范 围 ,分 为 通 用 构 件 ,-..-0 和 领 域 专 用
构件的检索效率与构件库的结构及构件的分类和检索方 构件 B/&93)+。
法密切相关。构件库的结构一般被认为是获得好的检索效果的 (C )根据系统类型:可以划分为 D30E-F( GH 、D30E-F( IJ
关键。如果构件库的结构有问题,那么不管相匹配的算法多么 、K03L 等。
智能,也很难获得好的检索性能。目前,大多数构件检索系统都 (M )根据计算机领域:可以分为数据库、网络、多媒体、人工
是基于固定的构件库结构,这种结构对检索的要求常常是静态 智能等。
的,不能适应动态开发环境的需要。为此,作者设计并实现了一 (N )根据应用领域,可以分为工商、银行、电信、商业等应用
个支持构件库动态演变的构件检索系统,该系统以一种智能化 领域。
的检索 方 法 ,在 检 索 过 程 中 增 量 地 修 改 构 件 库 的 结 构 ,从 而 为 (O )根据构件的功能用途分类。如数据库领域中的实现数
更有效地检索用户所需要的构件提供支持。 据显示、数据查询、报表、数据维护等功能的构件。
(P )根据构件粒度的大小,可分为小、中、大型构件。粒度小
! 构件的分类 的构件功能简单,粒度大的构件比较复杂,可以实现高级功能。
构件的分类是以构件的分类体系为依据,对构件进行的一 这 里 的 分 类 体 系 ,既 需 要 体 现 构 件 的 纵 向 关 系 ,又 需 要 体
种预处理,它通过为构件添加其在分类过程中所产生的分类信 现构件的横向关系。为此采取枚举分类和刻面分类相结合的方

作者简介:张辉,女,硕士研究生,研究领域:软件工程,构件技术。徐玮,男,博士生,研究领域:数据库。
计算机工程与应用 !"""#$! HG
法。枚举分类体现的是一种树状的层次关系,它能够体现该分 题:一个是设计本身的问题,人们经常会使用不恰当的定义(非
类 体 系 中 的 构 件 标 准———使 用 范 围 ———应 用 领 域———功 能 这 良 定 义 ((@@A3*B(2* ))来 描 述 构 件 ,第 二 个 问 题 是 索 引 的 不 一 致
样一种层次关系。刻面分类法是用多个刻面描述给定构件特征 性和不完备性。索引的不完备性是指用户定义的索引术语往往
的方法,其中每一个刻面刻画构件的一个属性。刻面分类方法 是局部的,索引的不一致性是指查询时人们检索构件使用的术
是基于构件属性对的,可以使用多个值(一个刻面)来表示构件 语与索引文档中使用的术语经常不一致,并且同一个人在不同
的属性,非常适合于领域构件的分类。这样可以将领域中描述 的时间检索同一个构件时,经常使用不同的术语。
构件 某 个 属 性 的 词 汇 经 过 分 析 归 纳 为 一 些 基 本 术 语 ,如 ,可 以 关键字检索是一种精确的匹配过程。当查询中只能提供部
将数据库领域构件的功能归纳为:数据显示、数据查询、数据操 分的或相似的构件描述信息时,将无法检索到正确的构件。因
纵、数据定义等。由于单独的修改一个刻面不会影响其它的刻 而有必要使用一种检索算法,使其不仅仅是简单的键字匹配。
面。因此更容易修改构件的分类方案。 在该检索系统中,使用智能化的关联传播算法和支持动态构造
根据枚举分类和刻面分类的方法,可获得如下的分类表: 查询条件来弥补上述的不足。关联传播算法是一种智能化的方
刻面 刻面描述 说明 法,它通过一种 “内 容 推 理 结 构 ”,根 据 构 件 A 术 语 连 接 权 值 ,将
构件类型 标准构件(%&’()*+ 构件、 标准构件是指,可以跨平台、跨语言使 一个查询通过一个构件向与它关联的构件节点传播,这样可以
,-./0 构件),专用构件。 用的构件,而专用构件只能在某个开 检索即使查询条件不直接涉及的构件。在此过程中键字与构件
发环境中使用的构件。
的索引动态相连,从而弥补不一致的索引。动态构造查询条件
系统类型 1(23-4 56、1(23-47 指构件能够适用于其中的计算机系统
支持在检索的过程中动态地修改查询条件。每当用户定义一个
89、:8;+ 的类型
计算机领域 数据库、人工智能、多媒 指构件适用的计算机领域的类型
查 询 时 ,系 统 就 会 以 一 个 查 询 线 索 来 响 应 ,这 个 线 索 提 示 用 户
体、网络 构件库的结构以及使用什么术语来索引构件。用户可以根据以
应用领域 工商、税务、房地产 指适合构件实际活动的业务领域 前查询的的结果和系统提示增量的改进查询条件。这两种技术
的结合产生了一个灵活的检索机制,从而可以较好地解决构件
第一层
的非良定义以及索引的不一致性和不完备性问题。
功能类型 数据操纵构件、数据查询 指适应于某个计算机领域(数据
构件、网络数据操作构件、 库)应用系统的构件类型。
<#< 构件库的动态演变
代理构件、报表构件 构件库最初的结构是以构件的分类体系为基础,根据枚举
构件粒度 大、中、小 分类和刻面分类的方法确定的。构造构件库的过程就是从描述

构件的分类表是构造构件库存储、管理机制的基础。构件 构件的文档中抽取出构件的分类属性及附加属性并将其存储

库结构的确立主要是参照这个分类表,构件库中除了包括构件 在构件库中的过程。由于受到思维活动的限制,人们不可能在

的的分类属性,还包括构件的附加属性。附加属性给出了许多 一开始就可以设计出完善的构件库结构。并且随着开发环境的

有助于重用构件的信息,如构件名称、作者、时间及版本等。 变化,原有的结构也需要发生相应的改变。因此,在检索过程中
为用户提供一种可以扩充完善这个结构的手段,在很大程度上
会改善系统的适应性。该系统中是通过提供可适应技术和相关
< 支持构件库动态演变的构件检索
反馈技术来支持动态地修改构件库的结构的。
检索方法的选择,直接关系到检索系统的效率和性能。在
当 查 找 信 息 时 ,用 户 通 过 查 询 与 系 统 进 行 交 互 ,可 适 应 技
构件软件开发过程中,开发构件的活动与重用构件的活动不但
术可以将用户与系统的交互信息记录下来,并抽取出描述构件
在时间上和空间上可以相互分离,而且实施两者的主体也可以
的 术 语 ,当 在 查 询 中 使 用 的 术 语 以 一 定 的 概 率 出 现 ,并 符 合 描
是完全不相关的开发人员 =>?。因此该检索系统支持不同层次的
述构件的文档时。可适应技术将提示用户以该术语来描述构
开发人员。关键字检索对于熟悉构件的用户是一种简捷的方
件,并将其添加到构件库中。同时根据相关反馈技术,调整关联
法,对 于 不 熟 悉 构 件 属 性 的 用 户 ,采 取 智 能 化 的 关 联 传 播 检 索
传播中的构件 A术语连接权值,增强构件和术语之间的连接权
算法来对关键字检索方法进行补偿,并且在查询过程中支持构
值,从而增加下一次查询成功的可能性。通过这两种方法,使构
件库的动态演变。
件库向着用户期望的结构演变,从而适应用户的需求。
<#$ 关键字检索
关键字检索是通过将用户输入的查询关键字和构件库中
> 构件检索系统模型
描述 构 件 的 刻 面 术 语 进 行 匹 配 ,提 取 构 件 的 方 法 ,关 键 字 检 索
下图为构件检索系统的模型,该模型中包括构件的分类、
方法存在两个问题,第一是该方法虽然对于有经验的用户效果
构件的检索、浏览构件和系统维护几个部分。
较好,但对于初级用户来说,由于不清楚那些键字是合适的,那
构件分类:构件分类的过程是根据描述构件的的信息,按
些键字是不合适的,故可能会使用同义词或其他相关的词,因
照分类体系将构件分类封装并将其存储在构件库中的过程。为
此效率明显 下 降 ;第 二 个 是 采 用 关 键 字 法 存 在 “关 键 字 障 碍 ”=6?
了精确的抽取构件信息,系统中提供同义词库和领域词字典。
现象,既检索的性能达到某一阈值后将不再提高。
在 同 义 词 库 中 ,包 含 一 个 术 语 的 定 义 和 同 义 词 ,领 域 字 典 中 包
为了在某种程度上弥补关键字检索方法的缺陷,系统中通
含特定领域的行业术语预计缩写。分类过程通过发布构件向导
过提供大量的限制词语和领域字典来提示用户关键字的选择。
完成,通过向导可以自动地指导用户输入描述构件的信息,使
同时为了不将查询限制在一组固定的关键字中,系统中还提供
不熟悉系统分类体系的开发人员也可以向构件库中发布构件。
了组合查询和通用查询两种方法。
构 件 检 索 :首 先 使 用 关 键 字 检 索 ,当 关 键 字 检 索 不 足 以 查
<#! 补偿索引的不完备和不一致
到 令 用 户 满 意 的 结 果 时 ,通 过 关 联 传 播 检 索 ,将 查 询 条 件 向 与
用户在使用检索系统查找构件时,经常会遇到两个相关问
5" !"""#$! 计算机工程与应用
构件检索系统图

该构件相 连 的 构 件 进 行 传 播 ,扩 大 查 询 条 件 的 范 围 ,从 而 检 索 件是重用构件的前提。作者设计与实现的构件检索系统采取智
到与查询条件不直接相关的构件。在检索过程中通过可适应技 能化的关联传播检索算法来对关键字检索方法进行补偿,并且
术和相关反馈技术支持动态修改构件库。 在查询过程中支持构件库的动态演变,为构件的分类与检索提
浏览构件:浏览构件以一种形象化的方式表现构件的分类 供了一 种 高 效 、灵 活 的 机 制 ,从 而 为 构 件 的 重 用 提 供 了 强 有 力
体系。这是通过树型结构来表示的。用树型结构表现各可重用 的支持。(收稿日期:$... 年 $$ 月)
构件之间的关系,可以很明显地表示出各构件的层次关系和继
承关系。浏览构件可以作为查找构件的一个辅助,熟悉分类体 参考文献
系的用户可以直接通过浏览构件查找可重用构件。每棵子树可 $# 何志均,王少峰 # 基于可重用构件库的软件重用技术 # 计算机科学,
以任意扩展和收缩。用户可以用鼠标或键盘直接选择定位到任 $..P ;!+
意一个可重用的构件。 !#&;2<< d455?5847#J5V27A=<?25 /;;433 U22F3 V27 32V<L=74 14@34#I4B=7<N
系 统 维 护 :系 统 维 护 实 现 对 构 件 库 的 常 规 操 作 ,如 对 构 件 A45< 2V ;2AB@<47 &;?45;4 =5D 058?5447?58 ,X5?E473?<H 2V K4647=3N
库的增加、修改和删除等功能,以及系统的权限管理。 C= ,N\?5;2F5
O#1 G7?4<2NI?=[#JABF4A45<?58 9=;4<4D SF=33?V?;=<?25 V27 &2V<L=74
14@34#S/S( ,$..$#+ ;O^ (+ ):P.N.%
‘ 结束语
^# 应时,周顺等 # 基于构件库及构件组合的软件重用 #$..P#$$
在 基 于 构 件 的 软 件 工 程 (S2AB254<iQ=34D &2V<L=74 058?j
+#b>458H@ \42 e@#&2V<L=74 14@34 =5D e24FD e?D4 e46
5447?58 )中,构件的制作与重用是最基本的活动。有效的检索构

(上接 %$ 页) 参考文献
表$ 基于 &’( 的说话人确认与 ’) 、
*(( 方法的比较 $#/ 0 123456478 ,9 : &2258#14;45< 7434=7;> ?5 =@<2A=<?; 3B4=C47
测试语音 +3 74;285?<?25#?5 /DE=5;43 ?5 &B44;> &?85=F G72;433?58 4D#6H &#9@7@?
方法 g9/h91g 测试条件
9/(f ) 91(f ) =5D (#&25D>? ,(=7;4F ,I4CC47 J5;#K4L M27C ,$..$ :%"$N%OP
’)(\Q*)(‘^ 阶) "#P ‘#+ !#Q@7843RS T S#/ U@<27?=F 25 &@BB27< ’4;<27 (=;>?543 V27 G=<<475
*(( ($‘ 阶) "#. +#+ 14;285?<?25#><<B :W W 3EA#7434=7;>#64FFF=63#;2A W &’(D2;#><AF ,$..P
&’( ($N7N$ ) "#^+ !#P O#T GF=<<#9=3< U7=?5?58 2V &’(3 X3?58 &4Y@45<?=F (?5?A=F ZB<?A?[=N
<?25#/DE=5;43 ?5 :4754F (4<>2D3N&@BB27< ’4;<27 (=;>?54 \4=75?58 ,
很明显,对于象 ’) 、*(( 这些说话人模型,由于训练时仅
Q#&#;>]FCBV ,S#Q@7843,/#&A2F= ,4D3#(JU G7433,S=A67?D84 ,(=33# ,$..P
使 用 该 说 话 人 的 特 征 ,应 用 于 分 类 时 ,区 分 能 力 明 显 较 弱 。 而
^#Z3@5= 0 ,974@5D 1,*?723? 9#U7=?5?58 &@BB27< ’4;<27 (=;>?543 :/5
&’( 则具有很强的区分能力。 /BBF?;=<?25 <2 9=;4 I4<4;<?25#G72;#S2AB@<47 ’?3?25 =5D G=<<475
14;285?<?25 _.% ,$..% :$O"N$O‘
+ 结论 +#T2=;>?A3 U#U4a< S=<4827?[=<?25 L?<> &@BB27< ’4;<27 (=;>?543#\& ’JN
文章提出了一种基于支撑向量机的文本无关的说话人确 JJ U4;>5?;=F 14B27< ,K2#!O ,X5?E473?<H 2V I27<A@5D ,V<B :W W V<BN=?#?5V27N
认系统,实验表明与常用的向量量化 (’) )和高斯混合模型 A=<?C#@5?D27<A@5D#D4 W B@6 W 14B27<3 W 74B27<!O#B3#b ,$..%
‘#\4S@A M,T=;C4F \ I,Q2<<2@ \ ,4< =F#\4=75?58 /F827?<>A3 V27 SF=3N
(*(()方法比较,该方法具有更优的性能。
3?V?;=<?25c/ S2AB=7?325 25 d=5DL7?<<45 I?8?< 14;285?<?25#K4@7=F K4N
由于作者将支撑向量机应用于文本无关的说话人识别问
<L27C3 :U>4 &<=<?3<?;=F (4;>=5?;3 G473B4;<?E4 ,Z> ,T#d# ,:L25 ,S#S>2#&#
题 中 ,无 需 考 虑 时 序 的 影 响 ,而 在 语 音 识 别 和 说 话 人 识 别 中 的
0D3#e27FD &;?45<?V?; ,$..+ :!‘$N!%‘
其他应用中还需要解决如何利用时序信息的问题,文献 ,%- 中提
%#T==CC2F= U & ,d=@33F47 I#0aBF2?<?58 *4547=<?E4 (2D4F3 ?5 I?3;7?A?N
出了一种可行的方法。更深入的研究将使得 &’( 在语音识别, 5=<?E4 SF=33?V?473#/DE=5;43 ?5 K4@7=F J5V27A=<?25 G72;433?58 &H3<4A3
包括说话人识别,得到更广泛的应用。 $$#( & :4=753R& / &2FF= ,I / S2>5 ,0D3#(JU G7433,S=A67?D84 ,
(收稿日期:$... 年 $$ 月) (/# ,$...
计算机工程与应用 !"""#$! .$

Вам также может понравиться