第 27卷 � 第 2期 吉 林 大 学 学 报 (信 息 科 学 版 ) 27� No. 2
2009年 3月 Jou rna l of Jilin Un iversity ( Info rm ation Sc ience Edition) M a r. 2009
文章编号: 1671�5896( 2009) 02�0201�04
收稿日期: 2008�11�15
基金项目:国家高技术研究发展计划基金资助项目 ( 2007AA 03Z448 )
作者简介:于晓鹏 ( 1964� � ), 男, 吉林公主岭人, 吉林师范大学副教授, 主要从事计算机网络协议、数据库应用研究, ( T el ) 86�
13604348338 ( E�m ail) yyxxpp@ jlnu� edu� cn。
组件库描述及检索策略
于晓鹏 1, 封子军 2, 兰丽辉 1, 张殿波 3
( 1. 吉林师范大学 计算机学院, 吉林 四平 136000; 2. 东北师范大学 计算机学院, 长春 130117;
3. 吉林省标准研究院, 长春 130022)
摘要: 为有效管理已开发的软件组件, 给出一种组件库的描述和检索策略。通过定义结构合理的组件库, 在
优化组件信息描述性的基础上, 应用相应的检索技术并结合结构化查询语言提高组件库的使用效率。针对复
用环境的不同, 采取相应的组件描述与检索策略, 加强并优化组件库的管理, 能加快和完善组件库的建设工
作。
关键词: 软件工程; 软件复用; 组件库; 检索
中图分类号: TP311 文献标识码: A
Component L ibrary Description and Retr ieval S trategy
YU X iao�peng1, FENG Zi�jun2, LAN Li�hui1, ZHANG D ian�bo3
( 1. C ollege ofC ompu ter Science, Jil inN orm alUn ivers ity, S ip ing 136000, Ch ina;
2. School of Com puter S cien ce, Northeast Norm alUn iversity, Changchun 130117, C h ina;
3. Standard Inst itu te of J ilin P rovin ce, Changchun 130022, Ch in a)
Abstract: For the effect ivemanagement of so ftw are components that have been deve loped, it gives a descript ion
and retrieva l strategy o f the component library. Based on good structure and complete descript ion o f components,
a method is proposed, wh ich can improve the efficiency o f the use o f component library by proper retrieval tech�
nology integrated w ith structured query language. It can speed up and optin ing the construction w ork of compo�
nent library by tak ing the appropriate descript ion o f the components and retrieva l strategy in different so ft reuse
env ironm
Key words: softw are eng ineering; so ftw are reuse; component library; retrieval
引 � 言
开发软件系统的规模和复杂性的扩大和增加, 使系统开发过程变得越来越难以控制, 出现了软件危
机。为了解决软件危机, 诞生了软件工程, 早期的软件工程是把如何有效地利用已有的资源作为主要手
段, 避免 �重新发明轮子 � [ 1 ]。软件复用的概念是由 M clroy在 1968年的 NATO ( North A tlan tic T reaty
O rganizat ion) 软件工程会议上提出的 [ 2]。软件复用是指重复使用 �为了复用目的而设计的软件 � 的过
程。复用已有的开发成果, 消除在分析、设计、编码和测试等方面的大量工作, 提高了软件开发效率。
同时, 由于复用了高质量的资源, 避免了重新开发引入的错误, 提高了软件的质量。复用库的建立和管
理是复用实施的关键, 建立良好的库结构, 组件信息描述的完整性, 是有效检索组件的基础。组件库方
面的工作是目前软件复用研究的重点。
国内外很多科研机构和大学院所都在软件复用领域进行深入研究, 比较知名的有: 卡内基梅隆大学
的软件工程研究所提出的面向特征领域分析方法 [ 3 ] ; 瑞典 CelsiusTech System公司和美国空军电子系统
中心的产品线系统 [ 4] ; OMG ( Ob jectM anagement Group) 组织的 CORBA ( CommonOb ject Request B roker
A rch itecture) 和微软公司的 COM /DCOM ( Component ObjectM odel /D istributed Component Ob jectM ode l) ;
Ca ld ieri和 Basili提出的工厂化的软件生产方式 [ 5] ; 我国北京大学自主研究开发的青鸟工程是国家重点
科技攻关课题。
1� 软件复用的特点
软件开发经历了结构化程序设计、面向对象技术、软件组件技术的发展过程, 软件复用已经成为加
速软件工业化早日实现的重要力量。因为软件复用覆盖了软件生命周期的各个阶段 [ 6] , 所以软件复用
也分别对应以下 4个层次的复用。
1) 基于分析模式的复用。主要指领域内的分析模式复用, 根据专家知识和已有的专业资料, 抽象
出比一般的分析模式更高的分析复用技术, 受设计技术和实现条件的影响较少, 领域内通用性较强, 复
用的机会较大。
2) 基于设计模式的复用。设计模式是对某一类问题的通用解决方案, 实际上是一种设计方案和资
料的复用, 只要设计文档资料完备, 就能快速复用到相关的领域, 受实现的环境影响很小。
3) 基于代码级别的复用。代码级复用是最早的复用形式, 代码级复用包括二进制码、源代码、组
件及包等。当前很多复用方法都建立大规模的组件库, 充分利用面向对象的优势, 采用封装的方法, 可
灵活地组合, 达到快速创建软件系统的目的。代码级的复用跟开发环境有密不可分的关系。
4) 基于测试信息的复用。测试员在测试过程采用的测试方法通用性较高, 只要测试环境适合, 就
可用相应的测试工具进行测试, 记录测试信息包括操作步骤、输入参数、输出结果和运行环境等多种信
息。
其中代码级和测试信息的复用级别较低, 受环境的影响较大, 而分析与设计阶段的复用抽象级别较
高, 与开发平台的关系较小, 采用复用得到的回报也更多。
2� 组件库管理过程
组件库被定义为一个 �被管理的软件组件集合 �, 这些资产能被存储、检索和浏览, 它由组织维
护, 供客户浏览与检索的一组软件组件 [ 7]。组件可包括代码、文档和组织图等多种形式。有效地管理
这些组件, 能促进软件的发展, 提高软件的复用度。
2�1� 组件库管理
其核心活动主要有以下几方面。
1) 选择复用策略。对基于通用复用和领域复用所采取的策略是不同的, 需要与自身的投资策略、
收益、已达到的过程成熟度等级相一致。
2) 创建库。库如何建立和组织, 是实现复用技术的重要环节。采用面向对象数据库的管理是较容
易理解和实现的方案。
3) 库管理。随着复用技术的成熟和软件平台的发展, 增加新的组件, 修改、替换一些过时的组件
是必须的。这涉及到库组件的版本管理, 替换或修改的组件接口应该相同, 文档组件的更新部分必须有
明确标识。不断完善该组件库, 以便更好地服务系统的开发过程。
4) 库检索。因为会有不同的版本组件, 功能相似的组件也大量存在, 如何快速定位所需要的组件
是衡量组件库结构合理的重要因素。检索活动需要一个有效率的算法帮助开发者找到最合适的候选组
件。
5) 适配功能。组件的通用性强, 则功能弱。不同的系统有不同的要求, 库中选取的组件在接口和
参数上与新系统不能保证完全匹配, 需要对组件进行包装和改进, 以适应新系统的要求。
6) 测试功能。同软件开发过程一样, 准备入库的组件也要经过严格的测试, 包括黑盒测试、白盒
测试、单元测试和集成测试等。因为是为复用开发, 若有些错误没有测试出来, 将造成不良后果。
202 吉 林 大 学 学 报 (信 息 科 学 版 ) 第 27卷
7) 部署功能。测试通过后, 要把组件发布到服务器中, 要考虑系统的环境配置, 是否是分布式等
诸多因素。
图 1� 基于复用库的软件开发过程
F ig�1 Softw are deve lopm ent process based on
reused library
图 1显示了以组件库为核心, 通过对组件库的管
理活动, 实现了组件库对软件开发过程的支持。在系
统实现过程中又不断反馈信息, 更新组件库。
2�2� 组件库组织结构
比较流行的组件库组织结构主要有树形结构和网
状结构两种。树形结构适合用来组织组件分类层次分
明、分类子集合划分严格且不相交的组件库系统。在
树形结构中, 组件的分类是确定的, 且是唯一的, 要
求每个组件必须严格属于某一类。但有些组件分类方
法则用多个分类角度对组件进行分类, 一个组件实际
上处于多个分类体系的交集中, 需要采用网状结构组织组件资源。网状结构是对树形结构的一种改进。
与树形结构不同的是, 在网状结构中, 组件库从不同的角度检索访问组件。
2�3� 组件描述模型
在组件库中, 有许多组件存在连续多个版本, 也有若干功能相似的组件, 不同专业对组件描述的术
语也不尽相同, 这给管理带来混乱。因此, 首先要解决不同组件之间描述的一致性问题, 以便对其进行
分类、检索和管理。
对组件的描述应满足以下要求 [ 8 ] : 尽可能使组件的功能信息保持完整, 帮助用户和计算机理解组
件行为; 描述组件行为的语义信息和上下文的依赖关系; 描述组件的术语要根据领域特点, 对通用的术
语空间进行裁剪或扩充; 运行传统的基于关键字的组件检索和更为精确的基于规约的组件检索; 框架中
的组件为了实现框架的功能而相互协作, 组件之间存在一定的约束; 提供足够的实现组件组织的组件分
类信息及组件的应用领域信息, 便于建立用户需求和组件之间的联系。
2�4� 组件库检索技术
组件的检索技术是可复用软件组件库的重要技术。通过检索能查询到符合条件的组件集合, 选取符
合条件的组件集合里的最优解。组件库的检索技术参考多种已应用的检索方法, 组件库的主要检索技术
归纳如下 [ 9]。
1) 基于正文的组件检索技术。该检索方法会自动地提取组件的正文, 将其表示为一个组件描述
符, 自动地编码分类。在组件检索时, 用户可指定与所需组件相关任意复杂的字符串, 并将该字符串与
组件描述符进行匹配。
2) 基于行为采样的组件检索技术。通过组件的执行特征, 进行组件间的匹配。保存一组或多组输
入和输出数据及其之间的行为关系, 检索时, 通过一组输入和输出数据就能查找到正确的组件。基于行
为采样的组件检索主要适用于数学函数、符号运算函数和常用抽象数据类型库这一类专业性较强, 并且
行为采样较容易的组件库。
3) 基于词法描述符的组件检索技术。组件的描述方法是基于受控词汇的表示方法, 即信息科学中
的编目分类方法。一般来说, 一个组件由一组领域专家详细审查的关键字描述, 这些关键字来源于一个
反映领域概念的预定义词汇表。
4) 基于规约的组件检索技术。该方法依赖于规约语言的表达能力, 往往有很高的查全率。基于规
约的组件检索注重软件组件的行为特征, 而不是其外观描述, 它能完整描述组件的计算语义、检索的准
确率高于非形式化方法。它能提供层次丰富的规约匹配类型, 较好地满足用户对组件检索查准率和查全
率的综合要求。
5) 基于语义的组件检索技术。 Sugum aran和 Storey提出一种基于语义组件检索方法 [ 10] , 利用本体
的领域模型为捕捉特定领域应用知识提供有效的机制, 这些知识能表达组件检索所需的更潜在的查询信
息。本体通过同义词扩展用户查询, 加大搜索范围。因而, 基于语义的检索方法 [ 11 ]为用户提供一种灵
203第 2期 于晓鹏,等: 组件库描述及检索策略
活的方式指定组件查询的需求。该方法在组件检索时还考虑到组件之间的关系, 从而能返回一致性的结
果集。
2�5� 组件库查询语言
结构化查询语言 ( SQL: Structured Query Language) 是访问关系型数据库的一种通用语言, 其通用
性、易用性和非过程化等特点决定了其成为数据库访问的基本语言。组件库也是一种数据库, 为了从组
件库中查找出适应的组件, 就必须设计一种查询语言。 SQL语言的简单易用性, 成为组件库的最佳查询
语言。语言定义为 [ 12] :
SELECT C Names FROM C Base [WHERE Search Cond itions] [ BASED ON C Name,l C Name2,
� ]
其中, � SELECT� 确定查询的组件名称 ( C N ames) ; � FROM � 确定组件库名称 ( C Base) ;
�WHERE� 表示检索条件 ( Search Conditions) ; � BASED ON � 指明检索的查询基 ( C N ame,l C
N ame2, � )。
3� 结 � 语
通过对组件库的管理、组件的描述及组件检索的相关技术的介绍, 为建立良好的组件库, 促进软件
复用的普及和发展提供了技术上的支持。随着竞争的加剧, 经济、快速、有效地系统开发是软件发展必
然趋势, 多种通用和领域专用的组件库的建立成为公司持续发展的重要标志。
参考文献:
[ 1 ] C� T� C, L�TOURNEAU D, M ICHAUD F, et Code Reusab ility Too ls for P rog ramm ingM ob ileRobo ts [ C] � IEEE In�
ternationa lC onfe rence on Robots and Inte lligent Sy stem s. [ S. l] : IEEE, 2004: 1820�1825.
[ 2 ] AFEDH M IL I, FATMA M IL I, AL IM IL I. Reus ing Softw are: Issues and Research D irections [ J] . IEEE Transactions on Soft�
w are Eng ineer ing, 1995: 21 ( 6): 528�562.
[ 3 ] JOHN FOREMAN, K IMBERLY BRUNE. So ftwa re Techno logy Rev iew [ R ]. P itts Burgh, Pennsy Lvan ia: Carneg ie M e llon
Un iversity, 1997.
[ 4 ] L ISA BROWNSWORD, PAUL CLEMENTS. A Case S tudy in Successfu lP roduct L ine Developm ent [ R ]. P itts Burgh, Penn�
sy Lvan ia: Carneg ieM e llon University, 1996.
[ 5 ] CALDIE R A, BASIL IV R. Identifying and Qualify ing Reusab le So ftw are Components [ J]. IEEE Computer, 1991, 24 ( 2):
61�70.
[ 6 ]杨芙清, 梅宏, 李克勤. 软件复用与软件构件技术 [ J]. 电子学报, 1998, 27 ( 2): 68�75.
YANG Fu�q ing, ME IH ong, L IKe�q in. Softw are Reuse and Softw are Com ponent Techno logy [ J] . A cta E lectronica Sinica,
1998, 27 ( 2): 68�75.
[ 7 ] KATHARINEWH ITEHEAD. 基于组件开发 [M ]. 王海鹏, 沈华峰, 译. 北京: 人民邮电出版社. 2003: 35�57.
KATHARINEWH ITEHEAD. Component�B ased Developm ent [ M ]. Be ijing: Posts and Telecommun ica tions P ress, 2003:
35�57.
[ 8 ] LARRY LATOUR, TOM WHEELER, BILL FRAKES. Descriptive and P redictive Aspects o f the 3CsMode:l SETA1W orking
G roup Summary [ C] � Redondo B each, Ca lifornia, USA: [ s. n. ], 1990: 9�17.
[ 9 ]郭军. 产品线架构中支持软件复用的若干关键技术的研究 [ D ]. 沈阳: 东北大学计算机应用技术研究所, 2006.
GUO Jun. A S tudy on Som eKey Techn iques to Suppo rt So ftw are Reuse in P roduct L ine A rchitec ture [ D ]. Shenyang: Com�
pu terApp lication Techno logy Institute, No rtheastern University, 2006.
[ 10]SUGUMARAN VIJAYAN, STOREY VEDA C. A Sem antic�Based Approach to Com ponent Retrieva l [ J]. ACM SIGM IS Data�
base, 2003, 34 ( 3): 8�24.
[ 11]单郸, 刘磊. 面向对象的元级程序设计方法 [ J]. 吉林大学学报: 信息科学版, 2005, 23 ( 5): 529�534.
SHAN Dan, L IU Object�Or iented M eta P rog ramm ingM ethod [ J]. Journa l of Jilin Un ive rs ity: Inform a tion Science Edi�
tion, 2005, 23 ( 5) : 529�534.
[ 12]张莉, 王强, 赵文, 等. SQL Server数据库原理及应用教程 [ M ]. 北京: 清华大学出版社, 2003: 93�103.
ZHANG L ,i WANG Q iang, ZHAO W en, et a .l SQL Server Database P r inciple and Applica tion [M ] . Be ijing: Q inghua Uni�
versity P ress, 2003: 92�103. (责任编辑: 张洁 )
204 吉 林 大 学 学 报 (信 息 科 学 版 ) 第 27卷