admin 管理员组

文章数量: 1086019


2024年4月20日发(作者:tarzan是什么意思啊)

维普资讯

计算机系统应用 2007年第1O期 

基于xm l技术的软件构件表示与检索 

Xml—based technology Software Component RepresentatiOn and Retrieval 

孙念民 李万龙 郑山红 赵辉 (长春工业大学长春130021) 

摘要:软件构件库作为构件复用的基础物质仓库,扮演了极为重要的角色,而可复用构件的表示、分类、检索是构 

件库的关键。本文在构件库系统的构件分类与描述方案的选择设计中,分析了构件的刻面分类方法,提出采用 

xML技术实现构件的刻面描述方案,并从技术实现、发展演化等方面对该方案作了较详细的分析,之后参照国内 

外相关学术成果,结合xML技术特点,给出了具体的刻面设计及描述实现,从而建立起软件构件库系统的构件数 

据模型。 

关键词:可复用构件构件库分类刻面 

1 引言 

提高软件的生产效率和质量,软件复用是一条切 

实可行的途径。近年来,由于得到了面向对象等新技 

术的支持,软件构件复用技术已成为当前软件复用研 

究的焦点。基于构件的软件开发(cBsD)将软件开发 

的重点由原来的软件编程转移为利用已有构件组合集 

2构件的刻面分类方法 

刻面分类方法将关键词(术语)置于特定的语境 

中,从而避免了关键词的杂乱无章,而且它通过从特定 

的反映构件本质特性的视角(刻面)来观察要分类的 

项,从而出现了更加精确和准确的分类。多数专为构 

件的检索而设计的工具都采用了这种方法,北大西洋 

公约组织(NATO)标准推荐在构件库中采用刻面分类 

模式(Faceted Classiifcation scheme),对构件的分类 

成新的软件系统。构件库理论研究的重点是构件的分 

类与检索,即研究构件分类策略、组织模式、检索手段 

和构件相似性分析。 

在可复用构件库中存储、查询、获取构件是复用技 

术的关键技术之一。尽管可复用对象复用的前景十 

分乐观,但不得不面对分类、存储、获取可复用构件的 

问题。只有合适的分类方法才能更好地满足检索的需 

要,而检索是分类的目的。可复用构件的分类应该满 

使用一组{刻面,刻面术语}对,也称为描述符。每个 

刻面中有一组术语,术语间由于有一般特殊关系和同 

义词关系而形成结构化的术语空间。构件的描述术语 

仅限在给定的刻面之中选取,在术语空间中游历可以 

帮助复用者理解相关领域。 

足下面的标准[1]: 

(1)可以容纳不断扩大的构件集合,这是大部分 

3 xmI技术在软件构件的分类与检 

索中的应用 

3.1 xml技术简介 

软件组织的特点之一; 

(2)支持寻找相似构件的能力,而不是精确匹配; 

(3)支持跨领域寻找功能等同构件的能力: 

(4)准确并且有较强的描述能力: 

(5)易于维护,即增加、删除、更新分类的结构和 

词汇不需要对构件重新分类: 

XML是W3C[2](World Wide Web Consortium) 

推荐的一种可置标语言,它的设计动机是在网络上规 

范化文档传输,它在本质上与程序设计语言一样,是具 

有严格语法定义的形式语言,但较一般的形式语言简 

(6)对于管理人员和用户来说都易于使用; 

(7)服从自动化的过程。 

捷和通用。与HTML一样,xML也源自SGML(Stand- 

ard Generalize Markup Language),它保留了SGML 

80%的功能,使复杂程度降低了20%[3],尽管如此, 

维普资讯

2007年第10期 计算机系统应用 

XML却有着HTML语言所欠缺的巨大伸缩性与灵活 

性。XML不再像HTML一样有着一成不变的格式。 

环境才能得到复用,同时作为扩展,在软件子刻面中增 

设“Other”元素,用于记录附带信息,如构件依赖关系 

等等。 

XML实际上是一种定义语言,即使用者可以定义无穷 

无尽的标记来描述文件中的任何数据元素,从而突破 

“应用领域”刻面是该构件可能被使用到的应用 

领域(及其子领域)的名称。这里的领域,指共享某种 

功能性的系统或应用程序的集合。构件库中任何构件 

都有一个适用的领域,一般的通用构件适用领域为通 

了HTML固定标记集合的约束,使文件的内容更丰富 

更复杂并组成一个完整的信息体系。XML主要的优点 

有:良好的可扩展性;严格的语法要求;内容与形式分 

离;不同系统间方便的信息传输(通用数据交换格 用,根据实际应用情况,指定为枚举值:通用、商业、科 

式);较好的保质性。 

3.2应用xrnl技术对构件的表示 

参照NATO关于可复用构件的开发、可复用构件 

库的管理指导标准,以及REBOOT环境,结合国内青乌 

系统的构件刻面分类描述方法,考虑到构件技术向多 

层次、简化安装的方向发展以及系统需求向工Inter・ 

net、动态演变、管理自动化等方面的发展趋势,结合 

XML语言自身的特点,系统设计了如下刻面与子刻面。 

(1)构件形态:表示形式,种类,在开发中的抽象 

层次: 

(2)应用环境:硬件环境,软件环境; 

(3)应用领域应用领域,备注; 

(4)实现功能 功能分类,功能描述,关键词族,接 

口族: 

(5)文件属性:文件名,文件大小,制作日期,版 

本,作者。 

在这些刻面中: 

“构件形态”刻面是指构件的形式和状态等集合。 

其中,“表示形式”元素是用来描述构件内容的语言形 

式或媒体,构件库中任何构件都以一定的形式存在,因 

而必然有其外在的表现形式。根据实际应用情况,将 

其术语空间指定为枚举值:DLL.EXE,源码、图形、其它; 

“种类”元素是指定构件成为最终产品时的应用种类, 

根据实际应用情况,指定为枚举值:cOM/cOM+,Ac— 

tiveX(OCX)、.NET,vCL/CL)(,JavaBean,CORBA, 

ClassLibrary,Others;“在开发中的抽象层次”元素是构 

件相对于软件开发过程阶段的抽象层次。根据实际应 

用情况,指定枚举值为:分析、设计、编码、测试其他。 

“应用环境”刻面是使用(包括理解/组装/修改) 

该构件时必须提供的硬件和软件平台。如所需的特定 

的硬件环境、操作系统、数据库平台、网络环境和编译 

系统等。构件库中任何构件都必须依赖于一定的使用 

学、人文、政府、财政、制造、航天、保健、法律、传媒、银 

行、办公、运输、安全、其它等等;“备注”元素可以说明 

些附带情况。 

“实现功能”刻面是该构件在原有或可能的软件 

系统中所提供的软件功能集。构件库中任何构件都必 

须提供一种或多种功能。根据具体情况,其“功能分 

类”元素指定为枚举值:图形图像、网络通信、数学、数 

据库、用户界面、系统、驱动程序、适配器、容器、业务逻 

辑、协调任务、代理程序、协作、字处理、文件操作、其他 

等等;“功能描述”元素则提供文字性的描述,也为将 

来语言的智能分析提供一种扩展;“关键词族”、“接口 

族”子刻面是功能描述信息中重要的部分,根据实际情 

况,允许多个关键词和接口。 

“文件属性”刻面是构件的实际提交载体属性,可 

以将需要的文件(如:构件实体、使用说明、帮助文件、 

IDL文件等)打包提交,因此其文件名不依赖构件名;对 

作者信息描述便于构件信息的反馈、更新及使用者与 

作者的交流等,故对作者信息有较详细的描述。 

以上五个刻面彼此间相互隔离,而且比较充分地 

体现了构件与复用相关的特性,能较好的适应构件库 

今后的发展。四个刻面与其子刻面,分别对应XML文 

件的元素和子元素。同时,设计中尽可能多的对元素 

术语指定枚举值(并在具体实现的系统界面中指定下 

拉列表选择),在一定程度上减少了软件术语差异产生 

的影响。 

3.3基于XML的构件描述文档的树形表示 

DOM(Document Object Model,文档对象模型)是 

种处理XML文档的好方法,它是通过在内存中构造 

XML文档的树形表示模型来处理XML文档的。在此 

模型中,每个独立的数据项被视为一个节点[node), 

所有的子元素或其中的文本被称为子节点。XML文档 

中的元素、元素属性、文本等都是此模型的一个节点。 

维普资讯

计算机系统应用 2007年第10期 

XML文件数据结构的定义与校验采用XML Schema。 

<!一一构件相对于软件开发过程阶段的抽象层次一 

我们可以用以下带文档类型定义的XML文档(Com— 

onentp.xm1)简要地来定义构件的结构: 

<?xml version=。1.0。encoding=。gb2312。?> 

<Document xmlns:xsi=。http://www.w3.org/ 

2001XMLSchema一一instance。 

xsi:noNamespaceSchemaLocation=。F:\My Programs 

> 

<LevelOfAbstradion>Coding 

</LevelOfAbstradion> 

<!一一用来描述构件内容的语言形式或媒体一一 

> 

<Representation>Visual C++.NET using 1^rrL 

Vv, ̄AL\Component.xsd。><Component> 

<!一一构件的名称一一> 

<Name>Text-to-Speech</Name> 

<J一一制作或提供该构件的单位或个人的名 

称,以及联络地址等相关信息一一> 

<Author> 

<Name>Rodney Wh计e</Name> 

<Email>rdwh计eLmsn.com</Email> 

</Author> 

<!一一构件的制作日期一一> 

<BulldDate>2006—10—05</BuildDate> 

<!一一构件的入库日期一一> 

<AdoptedDate>2007—02—12</AdoptedDate> 

<!一一构件的版本号一一> 

<Version>1.0</Vemion> 

<!一一使用(包括理解/组装/修改)构件时必须提 

供的硬件和软件平台一一> 

<ApplicationEnvironment> 

<HardwarePltaform>InteI X86 

</HardwarePltaform> 

<SoftwarePltaform>Windows 2∞0 

</SoftwarePlalform> 

<SoftwarePltaform>Windows XP 

</SoftwarePlafform> 

</ApplicationEnvironment> 

<!一一构件原来或可能被使用到的应用领域(及其 

子领域)的名称一一> 

<ApplicationDomain>CAI</ApplicationDomain> 

<!一一构件在原有或可能的软件系统中所提供的 

软件功能集一一> 

<Functionality> 

Transform simple text to speech 

</Functionality> 

</Representation> 

<Size unit=。megabytes。>3.2</Size> 

<DevelopmentTool>Microsoft Visual C++.NET 

</DevelopmentTool> 

<FileProperly> 

<FileName>Grant</RleName> 

<RleSize unit=。MB。>20</RleSize> 

</RleProperly> 

</Component> 

</Document> 

3.4.NET中实现基于XML的构件检索 

XPath(XML Path Language,XML路径查询语 

言)提供了简单的语法来方便地选取XML文档中的节 

点。利用XPath,我们可以指定类似目录的路径,以及 

依照路径设定条件来获取内容节点。目前)(SLT.XML 

DOM和XPointer都支持XPath规范。XPath查询是以 

位置路径(Location Path)表达式来指定的。利用位置 

路径我们可以选择一组与内容节点相关的节点。 

大致流程如下: 

(1)载入XML构件信息文档 

为了便于利用XPath来查询构件信息文档,我们 

可以利用XPathDocument来载入XML文档,示例代码 

如下: 

Dim Doc As New 

XpathDocument(Server.MapPath(。Compo— 

nent.xml“)) 

(2)验证XML构件信息文档 

载入XML构件信息文档之后,我们可以对其进行 

合法性验证,这一步是利用XMLUalidatingReade来提 

供的合法性检查功能,合法性检查通过则执行第3步。 

(3)检索XML构件信息文档 

XML构件信息文档验证通过之后,我们就可以开 

始检索构件信息了,检索构件信息主要是利用XPath— 

维普资讯

2007年第10期 计算机系统应用 

Navigator,XpathNodelterator这两个类,检索时我们可 象透过SQL数据适配器对SQL Server数据库进行操 

以利用XPath查询表达式提供的强大查询功能,示例 作。 

代码如下: 

Dim myNav As XpathNavigator 

4结束语 

myNav=Doc.CreateNavigator() 

软件复用技术将促进软件产业的变革,使软件产 

Dim mylfer As XpathNodelterator 

业真正走上工程化、工业化的发展轨道。软件复用将 

myNer=myNav.Select(“/Component/Name“) 

造成软件产业的合理分工,专业化的构件生产将成为 

While(myNer.MoveNext()) 

独立的产业而存在,软件系统的开发将由软件系统集 

l stName1.Items.Add(my№r.Current.Value) 

成商通过购买商用构件,集成组装而成。 

End While 

(4)将检索得到的构件信息定制输出 

参考文献 

我们还可以根据需要将检索得到的信息定制输 

1 Prieto—Diaz.Implementing Faceted Classiifcation 

出,要实现构件检索信息的定制输出我们主要是利用 

for Software Reuse[J].Communication,AC.M,1991: 

XslTransform类和XmlTextWdter这两个类。利用Xml- 

88 97. 

TextWriter类我们可以将构件检索信息保存为XML文 

2 W3C.http://www.w3.orgl 

档,接着还必须根据定制输出的要求编写相应的XSL 

3 XML中国论坛.XML实用进阶教程[M],北京:清华 

文档,最后就可以使用XslTransform类将XML构件检 

大学出版社.2001:21—25. 

索信息文档转换成预想的格式。若要实现XML构件 

4杨芙清,软件复用及相关技术[J],计算机科学, 

信息文档与SOL Server数据库的数据互换,我们可以 

1999,26(5):1—4. 

利用ADO.NET提供的DataSet数据集对象,DataSet对 

(上接第93页) 

而有实用价值的研究领域,目前该技术已经广泛应用 

参考文献 

于社会生活的各个领域。本文分析了SQL Server 2005 

1 Rick Dobson,Beginning SQL Server 2005 Express Da— 

数据挖掘平台及其数据挖掘功能,利用数据挖掘技术 

tabase Applications,http://www.apress.com, 

可对石油储运数据进行更深层次的分析。SQL Server 

2006. 

2005所用算法除了分析服务中自带的多种算法外,还 

2刘翔,数据仓库与数据挖掘技术[M],上海:上海交 

能够根据挖掘的情况输入具有针对性的算法,但是数 

通大学出版社。2005 28—33. 

据挖掘的任何一种算法都不是万能的,针对不同的问 

3朱建平,数据挖掘的统计方法与实践[M],北京:中 

题应采用不同的方法去解决。数据挖掘的实现是一个 

国统计出版社.2005.6 1—9. 

复杂的过程,数据挖掘工具能够嵌入整个过程中,可以 

4张水平,SOL server数据库应用技术[M],西安:西 

实时运行,且结果可以传递给集成、分析或报告过程, 

北工业大学出版社,2o05.4 1—3. 

可以通过简单灵活的方式向组织中的任何人提供分析 

5刘芝怡、常睿,数据挖掘在5QL Server 2005中的应 

及预测结果。 

用[J],电脑知识与技术,2006(6)156—157. 


本文标签: 构件 刻面 信息 软件 分类