1、1青鸟系统中可复用软件构件的表示与查询 1常继传 李克勤 郭立峰 梅宏 杨芙清 (北京大学计算机科学技术系,北京 100871)摘要可复用构件的表示和检索是构件库和软件复用研究的重点,它伴随复用实践的深入和新技术的出现而不断取得进展。通过比较现有的构件分类模式,青鸟构件库系统以青鸟构件模型为基础,采用以刻面分类为主、多种分类模式相结合的方法对构件进行分类索引,支持多种构件查询方式组合使用。本文介绍了青鸟型构件库系统中可复用软件构件的分类表示模式及构件检索机制的系统结构、设计依据和系统特性。关键词:软件复用、软件构件、构件库、构件表示、构件检索Representing and Retrievin
2、g Reusable Software Components in JB (Jadebird) SystemChang Jichuan, Li Keqin, Guo Lifeng, Mei Hong, Yang Fuqing(Department of Computer Science and Technology, Peking University, Beijing 100871)Abstract How to represent and retrieve reusable software component is always of interest to the reuse comm
3、unity. As a software development environment supporting systematic reuse, JB system chose faceted approach as the primary classification scheme, with several other schemes constituing a combined solution, which supports multiple retrieval methods as well as their combination. This paper discusses th
4、e representation, classification and retrieval of reusable components in JB system, introduces the system architecture, data model and features of related subsystems, as well as underlying assumptions and design rationale.Keyword software reuse, software component, reuse library, component represent
5、ation, component retrieval1 本文受到国家“九五”科技攻关项目和国家 863 高技术计划的资助、引言对软件复用和软件构件的研究始于 60 年代后期,30 年来人们一直关心的两个问题是:1. 如何有效地表示可复用软件构件?2. 如何在已有的大量构件中找到所需的构件?与第一个问题相关的研究涉及到构件模型(什么是构件?构件的基本属性是什么?构件之间如何交互?) 、构件规约(如何用形式化方法规约构件的功能和其他属性?) 、构件库数据建模(构件库的元模型和数据模型是什么?构件库采用何种分类索引模式?)等问题;后者涉及到构件库查询接口(SQL、OQL 或者与复用相关的构件库查询服
6、务) 、构件的匹配和检索算法、以及自动工具支持(如查询工具、构件的认证和评价工具)等问题。构件库互操作也对构件表示和检索提出了新的要求:必须考虑如何在不同构件库之间共享和交换构件信息?(这主要涉及访问接口、数据模型、传输格式和传输协议的标准化) ;以及如何在分布的多库系统(Internet 上的多个构件库)中表示和检索构件?(这还涉及到构件的命名、版本和配置、分布检索算法等问题) 。JBCL 构件库系统Li 97是青鸟型系统的关键部件,它能够保存和管理多形态、多层次的可复用软件构件,将面向复用的开发与基于复用的开发联结起来。本文将主要讨论青鸟系统中的构件的描述和分类模式以及对构件检索的支持,其
7、他方面的问题请参看相关技术报告JB 97A, JB97B, JB 97C,在此不再详述。2本文组织如下:第二节对青鸟构件库系统中分类与检索子系统进行了概述,重点讨论刻面分类模式;第三节讨论系统体系结构、设计依据和工具的特性;第四节对相关工作进行了讨论;最后是系统现状和改进设想。二、模型和系统概述2.1 数据建模一个完整的构件可能包括构件实体表示、构件目录信息和元数据(Meta-Data)三部分,分别对应于构件库数据建模中的数据、数据模型和元模型三个层次STARS 92。 DATDAT MODELMETA ODELCompnet EntiysRersaioDescriptive Structra
8、l Infomaion IfomionCpet CategryMeta-DtaI/UI Dat odelingLyrs Compnet Reprsentaion Lay图 1:数据建模与构件表示构件实体表示可以是有结构或无结构的,对有结构的构件实体可以进行基于内容的检索(如正文检索和规约匹配)和版本控制。构件目录信息包括描述性信息和组织性信息:描述性信息包括构件的尺寸、版本、关键词和发布时间等属性;组织性信息包括构件类之间、构件与构件类之间以及构件之间的关系。在描述性信息中,构件 ID 用于在库中唯一标识构件,UID 在分布的多库环境中全局唯一标识构件,它们可以作为构件实体的访问句柄。元数据主
9、要包括数据模型信息,被用于构件信息的交换和传输、以及构件库数据模型的定义和扩展。下图为青鸟构件库的数据模型: FacetTermProviderCompnetUserFedbackCompnet EleContaisDecribesProvides SubmitRelatsContaisRelats1 11111nnn图 2:青鸟构件库实体关系模型2.2 构件库的角色由于各个组织的规模、目标领域、组织模式和复用成熟度不同,导致构件库系统在组织中的角色和作用也不相同。可以归纳出以下 4 种典型的构件库:(1)面向项目的构件库、(2)面向领域的构件库、 (3)面向构件共享的构件库和(4)面向构件市
10、场的构件库。从(1)到(4)标志着复用库的规模越来越大、目标领域越来越清晰和广泛、复用成熟度也越来越高。这些因素都将直接影响到构件的表示和分类模式,以及相应的检索和交换方式。例如:面向项目的构件库需要突出构件的项目背景;面向领域的构件库可能以特定领域的系统构3架为骨架来组织构件,并表示出领域之间的相关关系;面向共享的构件库建立在若干相对独立的子库之上,需要为分布在各地的用户群提供灵活统一的查询界面以实现对不同应用领域、形态、位置和表示方法的构件的透明访问;面向构件市场的构件库则在更广的范围内提供复用支持,通过商业手段可以使构件的认证、度量与质量保证等技术难题得到较为满意的解决Browne 97
11、。由此,在设计构件库时,应该首先根据复用组织的现状和复用目标确定构件库的角色,在此基础上选择适当的分类和检索方案。2.3 基本假定青鸟构件库系统的需求建立、设计实现和设计部署基于以下基本假定: 构件:在青鸟型系统当中,构件被定义成可以是软件开发过程中不同阶段(如分析、设计、编码、测试等)所生成的不同形态(如类、框架、构架、模式等) 、不同表示(如图形、伪码、语言等)的软件实体。 不同的构件库角色:青鸟构件库目前定位为面向共享和面向市场的构件库,目标是建立灵活的系统构架和数据模型,通过定制和裁剪满足上述不同构件库角色的需求。 不同的构件库用户:构件库用户特指从构件库获取复用服务的用户。构件库用户
12、的所关心的应用领域和构件种类是不同的,具有不同的复用经验,分布在不同的地理区域内,使用不同的查询工具访问构件库。用户数量很大,访问构件库频繁。 复用成本:对复用者而言,单个构件的复用成本由检索成本,获取成本,理解成本,修改成本和组装成本几部分组成。对构件库而言,单个构件的复用成本可能包括:获取成本、评价和认证成本、以及分类和存储成本。由于对构件库访问次数非常多,使得建立和维护构件分类索引的成本远小于由此节省的用户检索和理解成本。 构件库数据模型:不同构件库的数据模型不同,同一构件库的数据模型也可以变化。需要建立灵活的系统构架和统一的元模型,满足构件库之间的互操作需求和数据模型的演化需求,并屏蔽
13、数据模型变化对复用库访问接口的影响。 构件类型和数量:库中构件的生命周期、形态和构件实体的表示都在很大范围内变动;构件数量很大,而且不断更新和演化,需要使用(半)自动工具辅助人工进行构件的分类和检索。构件可能保存在分布的异质的子构件库中。2.4 分类模式对大量构件进行分类有三个好处,即便于组织管理、方便查询和辅助理解。构件分类是建立(生成)和维护构件目录信息的活动,构件的检索方法依赖于构件的表示和分类。从不同的角度可以对分类模式进行不同的划分。W. Frakes(Frakes 94)从构件的表示出发将现有方法分为人工智能方法Girardi 94、超文本方法Isakowitz 96 和信息科学方
14、法三类;H. Mili 在Mili 95中根据索引编码方法的不同,分为基于文本的Mili 94C、基于词法描述子的Mili 94B和基于规约的Chen 93编码和检索三类。实际部署的复用库项目大多采用信息科学的方法进行构件分类,主要使用枚举、刻面、属性值、关键词和正文检索几种方法。对现有分类方法的实证比较表明,上述方法各有利弊,其中以枚举和刻面分类两种方法的检索响应速度明显优于其他方法;但是在查全率、查准率和用户偏好等其它指标上,各种方法之间没有显著差异Prieto-Diaz 91, Frakes 94, Mili 97。青鸟系统选择以刻面分类为主,关键词、属性值、关系索引等多种模式相结合的方
15、法对青鸟构件进行分类。刻面分类方法从若干不同的维度描述复杂对象,在刻面中的术语之间可以定义关系(如一般特殊关系和同义词关系) ,具有枚举分类、属性值分类和关键词分类几种方法的优点。在同一系统中支持多种分类模式和检索方法的组合使用,可以满足不同复用组织和不同用户群体的需求。初级用户可以选择使用自己熟悉的方法,高级用户可以综合使用几种方法。实践证明各种方法互相补充,能够提高检索效率Frakes 90A。2.5 刻面分类每个术语 T 对应于一个谓词 PT,根据术语 T 检索将得到所有满足 PT 的构件集合 CT。称术语 T 是术语 T*的上层术语当且仅当对任意构件 C 有 PT*(C)P T(C)。
16、构件 C 被索引为术语 T 当且仅当对于所有以 T 为上层术语的术语 t,都有 C(C T C t)。可见建立索引的算法是一个对术语空间的深度优选搜索。同一刻面中的术语被组织成层次结构,上层与下层术语之间是严格的一般特殊关系。在刻面 F 中选择多个术语 TA, ,TK 时,检索得到4的构件集合为:C F=CT1C TK。查询条件中有多个刻面时,各刻面检索到的构件集合之交构成最终结果集合。在青鸟系统中根据术语之间的一般特殊关系对刻面中的术语进行编码,提高了检索算法的效率。 Aplication DomainMISPOS CAIFinaceanufacturingHospitalFunctiona
17、litySortSearchMatchQuick SortBuble SortI/O图 3:刻面和术语间的一般特殊关系一般特殊关系的引入能够描述不同构件在通用性与专用性方面的差异,并隐含地表达了构件之间的相似关系。复用者可以在术语空间中周游,对所需构件的抽象层次进行权衡取舍。另外在术语之间可以建立同义关系,同义术语之间不可以有一般特殊关系。术语有同义词词典,通过同义词词典扩展术语空间的词汇表,以此解决术语的一词多义和多词同义的问题。青鸟构件库中定义了“使用环境(Deploy Environment) ”、 “应用领域(Application Domain) ”、 “功能( Functional
18、ity) ”、 “层次(Abstraction Level) ”和“表示方法(Representation) ”5 个刻面Li 97。其中 “使用环境”是使用(包括打开、编辑、编译、调用)构件所需要的软硬件条件, “应用领域”是使用该构件的软件系统所关联的应用领域, “功能”是构件向外提供的计算功能集合。 “层次”是构件与软件开发过程各阶段所对应的抽象层次, “表示方法”是构件实体表示的媒体和数据格式。通常构件的计算语义在跨领域复用时非常重要,而复用者经常从应用领域出发构造查询条件,使用“应用领域”和“功能”两个刻面的术语描述构件在应用域和计算域的语义可以兼顾两者。对刻面分类法的主要批评是需要
19、人工建立和维护术语空间和构件索引。但是术语空间所表达的语义信息,能够准确地描述构件属性,并有助于复用者理解构件所处的上下文。基于复用成本的假定,对构件进行刻面分类的工作量总是由于检索效率的提高而被合理化。即使当构件数量增加到非常大,使得对构件进行刻面分类的绝对工作量超出人工所能承受的范围时,仍然可以借助某些自动分类工具来减少工作量。而术语空间的管理工具可以大大减轻构件库管理员的工作。2.6 构件间关系构件之间存在着各种关系,典型的构件间关系包括:继承关系、精化关系、版本关系、包含关系、协作关系等。构件和构件间关系构成了超文本中的节点和超链,以某个构件为起点可以通过关系在构件库中周游。构件间关系
20、的类型和性质由构件库数据模型定义。使用预定义的关系类型可以赋给关系以特定的语义;允许用户自定义关系类型则具有更大的灵活性,适于描述构架、框架、设计模式和软件生命周期各阶段产物之间的复杂关系。青鸟构件库系统预定义了上述 6 种关系,提供扩充关系类型的手段和建立构件间关系的工具。三、系统体系结构青鸟构件库系统构件表示和检索子系统由多库分布处理机制(包括事务处理服务器、构件命名服务器、位置服务器和特定于构件库的包装层) 、复用库服务和集成的复用支持工具(包括数据建模工具、构件分类工具、构件查询工具、构件组装工具、构件评价工具等工具)组成。多库分布服务机制建立在构件库互操作协议基础上,向上屏蔽多个分布
21、构件库的位置差异,实现构件共享和分布查询,并处理构件命名、版本、传输和安全问题以及事务处理细节。复用库服务建立在分布机制之上,向上提供标准的复用库访问接口,屏蔽语言和平台的差异。集成的复用支持工具通过复用库服务访问复用库,直接向用户提供构件库管理、构件分类、查询、评价和组装的功能。系统整体结构如图 4 所示,下面分别介绍系统中的各个成分:Reus Libray Services (API)RSC lasiferRSC DiscoverDat ModelrRSC EvalutorVisual CompoitrCodeAnalyzrIntegrated Reus Tol Box Reus Libr
22、ayLocation ServTransction ServNaming ServWraper 1 Reus LibrayWraper n5图 4:构件表示和检索子系统的体系结构(图中虚线部分表示尚未完全实现)数据建模工具辅助管理员创建、维护、更改和扩展构件库系统的数据模型(比如实体关系模型中的实体以及实体间关联、实体属性及其类型、属性之间的约束等)及建立在数据模型上的分类模式和检索算法。该工具仅实现了一个最小功能集,能够建立和维护术语空间。构件查询工具支持刻面、关键词、属性等多种查询方法的组合使用,以及以构件间关系为超链的超文本游历和以术语间层次关系为线索的构件浏览。查询得到结果是一组符合条
23、件的构件,用户可以查看每个构件的详细信息,并将感兴趣的构件标记为候选,做进一步的比较和评价或者浏览与之相关的构件。在查询工具中实现了可视化的查询条件构造器,支持对构件集合的并交运算,用户在查询时只要选择所需构件的属性,而不必了解构件库的数据模型和查询语言。条件构造器将用户的选择转换为查询引擎能够识别的表达式,了解构件库细节的复用库服务进行查询优化并提交给分布查询机制或直接访问构件库。青鸟构件查询工具对查询条件执行“交”运算实现逐步求精的构件查询,逐渐缩小检索范围。当发现条件过于苛刻时可以回溯到先前的条件。在查询过程中用户可以建立书签。借助构件间关系和术语的层次浏览,用户得到以某个构件为中心的关
24、系闭包,熟悉构件和相应构件类的上下文并比较和理解候选构件的区别。所有这些特性都有助于降低构件查询和理解成本。构件分类工具辅助管理员建立和维护构件的目录信息,支持多种模式相结合的分类方法,如进行刻面分类、定义和建立构件间关系。在对多个分布的异质库中的构件建立全局目录时,必须处理不同的数据模型、版本控制和命名模式的问题,排除重复的目录项,这些都依赖于底层的分布处理机制,工具的当前版本尚不能处理异质多库的问题。构件组装工具能够辅助构件的 CDL 描述的编辑工作,并可以根据构件的 CDL 描述来生成相应的 C+代码骨架,在代码级或可执行码级(在 CORBA 或 DCOM 的支持下)进行组装。今后对 J
25、BCDL 进行功能规约的形式化描述机制的扩展,可以进行构件的规约匹配和功能差异计算。代码理解和构件评价工具对表示检索子系统而言是重要的外围复用工具。构件评价工具对候选构件进行评价,估计需要理解和修改的工作量,辅助用户选择最符合需求的构件。代码理解工具采用增量分析技术静态分析程序源代码,用 EER(Enhanced Entity-Relationship)为C+程序建立概念模型并抽取程序信息,按照不同的用户需求组织程序信息,辅助用户理解 C+程序。复用库服务建立在软件工程环境或其他底层服务的基础上,以元模型定义下的数据组织技术为依据,向上提供定义、创建、操纵、查询和管理构件目录所需的若干有组织的
26、复用服务,高层工具和用户通过框架服务来访问构件目录并间接访问构件。现有版本实现的服务包括:库管理服务,数据模型服务,构件描述服务,查询服务,构件处理服务和访问控制服务。青鸟复用库服务参考 STARS 的 ALF 框架STARS 92,屏蔽不同构件库设计和实现的差别,为创建和维护构件库系统提供了统一的编程接口。建立在服务接口上的复用工具可以一致的方式访问符合同一元模型的异质构件类,构件库系统也可以用所有符合复用库服务的工具进行扩展。多库分布处理机制负责处理分布环境中的构件分类和查询,向上屏蔽构件库分布细节。特定于构件库的包装层在本地数据模式与统一数据模式之间、复用库查询服务请求与本地构件库的查询
27、语言之间进行转换。事务处理服务器负责保证分布构件库的数据完整性和分布查询的原子性;位置服务器负责构件的定位、副本和缓存,向上提供全局物理存储虚像;命名服务器负责处理构件命名、重复构件排除和版本控制,向上提供全局逻辑命名虚像。随着 Internet 技术的发展,分布多库处理已经是现实存在的问题。四、相关工作在文献Mili 95中,以谓词逻辑的形式给出了构件的匹配、易修改性和检索效率等概念的形式化描述,以及一个构件检索模型。将检索算法划分为基于偏序关系的检索和基于6距离的检索。在Frakes 94中对信息科学分类方法中的刻面、属性值、枚举和关键词方法进行了实证的比较,结果是各种方法在查询时间之外的
28、大多数指标上没有显著差别,各种方法检索到的构件集合平均有 80%左右的交迭率。Frakes 等人设计和实现了一个支持多种构件表示的原型系统Frakes 90A。在刻面分类方面有许多相关工作,对刻面的定义和术语空间的结构也各有特色:Prieto-Diaz 87中提出的刻面是:功能(Function)、对象(Objects) 、介质(Media) 、系统类型(System types)、功能领域(Function Area)和应用领域(Setting);REBOOTSindre 95构件库中定义的 4 个刻面为:抽象(Abstraction)、操作(Operations) 、操作对象(Operat
29、es On)和依赖(Dependencies);NATO 复用标准给出的典型的刻面是:对象、功能、算法、类型、语言和环境。REBOOT 项目报告了在建立和使用刻面分类方法时遇到的若干问题Stockwell 95,并引入子刻面和修饰性术语给以解决。其他对刻面分类的改进包括利用带权语义网、模糊逻辑触发器或带权的术语空间Prieto-Diaz 91, Stockwell 95等技术计算构件之间的语义距离,实现近似查询。基于规约的编码和检索基于形式化的构件规约,具有良好的理论背景。A. Mili 等人使用关系规约和“精化”偏序关系来组织和检索构件Mili 94A;ChenChen 93使用抽象数据类型
30、的代数规约及其之间的“实现”偏序关系、通过从代码中直接抽取基调(Signature)和行为公理(Behavioral Axiom)进行构件检索,并设想了相应的构件证明系统。在复用库互操作性方面,STARS 项目STARS 92于 1992 年提出了开放体系结构的构件库框架(ALOAF) 报告。该报告包括构件库框架的参考模型(ALF-RM)、互交换构件的所需的数据模型和约定格式的规约以及一个在 ALF-RM 上支持构件互交换和构件描述的框架服务规约。RIG 组织开发了统一的数据模型 UDM 和互操作性基本数据模型 BIDM,BIDM 已经成为国际标准IEEE 95, Lillie 91, Bro
31、wne 97 。五、结束语青鸟构件库系统的原型实现采用客户服务器的体系结构,目前的版本部署在局域网上。青鸟构件库系统 JBCL 在概念上基于 JBCOM 构件模型 JB 97A,在构件模型之上建立的构件库数据模型参考了 RIG 组织的 BIDM 模型(IEEE 标准 1420.1) 。JBCDLJB 97B, Wu 97是一种面向对象的构件规约语言,能够描述构件的接口和互联信息。JBCL 采用以刻面分类为主、多种分类方法相结合的分类模式,通过独立于底层平台的应用编程接口JB 97C提供构件的组织和查询服务,并提供查询和分类工具辅助用户和库管理员完成各自的任务。目前青鸟构件库中保存了来自 CAS
32、E 和 POS 领域的分析、设计和代码构件,实际验证了刻面模式为主、多种分类模式相结合的分类方法和查询工具的有效性。在现有构件库的基础上,将根据构件库访问的统计数据对现有分类和检索方法进行改进,包括刻面与术语空间的修订、基于 DSSA 的领域构件的分类和检索和基于 CDL 的规约匹配等。对构件库系统的其他改进包括对构件评价和配置管理的研究,进一步探讨构件库互操作问题,重点研究 Internet 上的构件库服务。7参考文献Blair 85 D. Blair, and M.E. Maron, “An evaluation of retrieval effectiveness for a full
33、text,” Document-Retrieval System Comm. ACM, vol.28, no.3, pp.289-299, Mar. 1995Browne 97 Shirley V. Browne and James W. Moore, “Reuse Library Interoperability and the World Wide Web,” Proc. of Symposium on Software Reuse Joint Session with ICSE 97, pp.183-189, 1997Caldiera 91 G. Caldiera, and V.R. B
34、asili, “Identifying and qualifying reusable software components,” Computer, vol. 24, no. 2, pp. 61-70, Feb, 1991Chen 93 P.S. Shicheng Chen, R. Hennicker, and M. Jarke, “On the retrieval of reusable component,” Selected papers from the Second Intl Workshop on Software Reusability, Advances in Softwar
35、e Reuse, Lucca, Italy, Mar., 1993Frakes 90A W.B. Frakes and T.P. Pole, “Proteus: A Reuse Library System that Supports Multiple Representation Methods,” ACM SIGIR Forum, vol. 24, pp. 43-55, 1990.Frakes 90B W. Frakes and P. Gandel, “Representing Reusable Software,” Information and Software Technology,
36、 Vol.32, No.10, page 654-664, December 1990Frakes 90C W.B. Frakes, and B.A. Nejmeh, “An information system for software reuse,” Software Reuse: Emerging Technology, IEEE CS Press, 1990 pp.142-151Frakes 94 William B. Frakes and Thomas P. Pole, “An Empirical Study of Representation Methods for Reusabl
37、e Software Components,” IEEE Trans. on Software Engineering, Vol.20, No.8, August 1994Girardi 94 M.R. Girardi, and B.Ibrahim, “Automatic indexing of Software Artifacts,” Proc. 3rd Intl Conf. Software Reuse: Advances in Software Reusability, IEEE Computer Society Press, pp. 24-32, Rio de Janeiro, Bra
38、zil, Nov. 1994Hall 93 R.J. Hall, “Generalized behavioral-based retrieval,” Proc. 15th Intl Conf. Software Eng., ACM Press, pp. 371-380, Baltimore, Md., May, 1993IEEE 95 IEEE Standard for Information Technology Software Reuse Data Model for Library Interoperability: Basic Interoperability Data Model
39、(BIDM). IEEE Std 1420.1, 1995Isakowitz 96 Tomas Isakowitz and Robert J. Kauffman, “Supporting Search for Reusable Software Objects,” IEEE Trans. on Software Engineering, Vol.22, No.6, June 1996JB 97A JadeBird Project Group, JadeBird Component Model, Technical Report, Dept. of Computer Science and Te
40、chnology, Peking University, 1997.JB 97B JadeBird Project Group, JadeBird Component Description Language - JBCDL, Technical Report, Dept. of Computer Science and Technology, Peking University, 1997.JB 97C JadeBird Project Group, JadeBird Reuse Library Services, Technical Report, Dept. of Computer Sc
41、ience and Technology, Peking University, 1997.Li 97 Li Keqin, Guo Lifeng, Mei Hong, and Yang Fuqing, “An Overview of JB(Jade Bird) Component Library System JBCL,” Proc. TOOLS Asia 97, Beijing, China, Sep. 1997Lillie 91 C. Lillie and J. Moore, Asset Source for Software Engineering Technology (ASSET)
42、Software Reuse and Reengineering, In NISQP Software Reuse and Reengineering Conference, Alexandria, Virginia, Apr. 1991.Merkl 94 Dieter Merkl, A Min Tjoa, and Gerti Kappel, “Learning the Semantic Similarity of Reusable Software Components” Proc. 3rd Intl Conf. on Software Reuse: Advances in Software
43、 Reusability, IEEE Computer Society, pp.33-41, Rio de Janeiro, Brazil, 11/1994Mili 94A Ali Mili, Rym Mili, and Roland Mittermeir, “Storing and Retrieving Software Component: A Refinement-Based Approach,” in Proceedings of the 16th Intl Conf. on Software Engineering, Sorrento, Italy, May 1994.Mili 94
44、B H. Mili, O. Marcotte, and A. Kabbaj, “Intelligent component retrieval for software reuse,” Proc. 3rd Maghrebian Conf. on Artificial Intelligence, and Software Eng., pp.101-114, Rabat, Morocco, April 1994,Mili 94C H. Mili, R. Rada, W. Wang, K. Strickland, C. Boldyreff, L. Olsen, J. Witt, J. .Heger,
45、 W. Scherr, and P. Elzer, “Practitioner and SoftClass: A Comparative Study of Two Software Reuse Research Projects,” J. Systems and Software, vol. 27, May 1994Mili 95 Hafedh Mili, Fatma Mili, and Ali Mili. “Reusing Software: Issues and Research Directions,” IEEE Transactions on Software Engineering,
46、 Vol. 21, No. 6, June 1995Mili 97 Hafedh Mili et al, “Another nail to the coffin of faceted controlled-vocabulary component classification and retrieval,” Proc. of Symposium on Software Reuse 97, pp.89-97, 1997Ostertag 92 Eduardo Ostertag, James Hendler, Ruben Prieto-Diaz, and Christine Braun, “Comp
47、uting Similarity in a Reuse Library System: An AI-based Approach,” ACM Trans. on Software Engineering and Methodology, 1(3): 205-28, July 1992Prieto-Diaz 87 Ruben Prieto-Diaz and Peter Freeman, “Classifying Software for Reusability,” IEEE Software, 1987/1 page 6-16, 1987Prieto-Diaz 91 Ruben Prieto-D
48、iaz, “Implementing Faceted Classification,” Communication of ACM, Vol.34, No.5, page 88-97, May 1991Sindre 95 Guttorm Sindre, Reidar Conradi and Even-Andr Karlsson, “The REBOOT Approach to Software Reuse,” J. System Software, 1995, 30:201-212, IEEE CS PressSTARS 92 STARS Project, “Asset Library Open
49、 Architecture Framework Version 1.2 ”, Informal Technical Report, STARS-TC-04041/001/02, Aug. 1992Srumgard 93 Lars Sivert Srumgard, Guttorm Sindre and Frode Stokke, “Experiences from Application of a Faceted Classification Scheme,” Selected papers from the Second Intl Workshop on Software Reusability, Advances in Software Reuse, Lucca, Italy, Mar., 1993Wu 97 Wu Qiong, Chang Jichuan, Mei Hong, and Yang Fuqing, “JBCDL: An Object-Oriented