admin 管理员组

文章数量: 1087139


2024年4月20日发(作者:systemjs教程)

维普资讯

第28卷第6期 

2006年6月 

武汉理工大学学报・信息与管理工程版 

JOURNAL 0F WUT(INF0RMAT10N&MANAGEMENT ENGINEERING) 

Vo1.28 No.6 

June 2006 

文章编号:1007—144X(2006)06--0O73一O4 

基于XML的软件重用技术探讨 

兰 晖,聂规划 

(武汉理T大学经济学院,湖北武汉430070) 

摘 要:软件重用技术已经成为内容非常广泛的研究领域,是当今软件工程领域中的一个研究热点。对 

Internet上极具发展潜力的XML语言进行了重用方面的探讨,主要讨论了4种重用策略:XML的数据重用、 

XML的结构重用、XML的组件重用及XSLT标准库重用。但XML毕竟是一个全新的事物,基于XML的软件 

重用机制还需在实际需求指引下进一步成熟和完善。 

关键词:软件重用;XML;组件;XSLT标准库 

中图法分类号:TP311.5 文献标识码:A 

l 引 言 

在软件开发中对好的成果进行重复使用,一 

直是软件开发者和研究者所追寻的目标,它不但 

可以节省劳动,而且有利于保证质量、缩短工期、 

减少花费和降低风险。软件重用概念的提出已有 

多年历史,它的应用也逐渐普及,还出现了面向软 

件重用的开发工具。2O世纪9O年代以来,Internet 

个目标软件系统的部件,或者在软件开发过程中 

发挥某种作用。一般而言,在软件开发中,重用的 

构件粒度越大,节省的时间越多,软件的开发周期 

越短,开发效率越高。 

2.2软件重用的好处 

采用软件重用技术至少有以下几点好处:① 

提高软件生成率,减少开发时间和费用;②提高软 

件开发质量;⑧简化软件开发流程,缩短开发周 

期;④降低维护的难度、工作量和费用;⑤增强软 

件系统的互操作性;⑥共享有关建立系统的知识, 

促进软件开发过程的标准化;⑦减少软件开发人 

员的数量,使开发人员较容易地适应不同性质的 

的迅速发展对人们工作、学习和生活的方方面面 

产生了深远的影响,各种新标准、名词也层出不 

穷,如何对Internet上的资源进行有效重用是一 

个有待探讨的问题。自从W3C组织发布XML标 

准以来,这一以第二代网页发布语言而著称的新 

项目开发;⑧易于提供文档资料等。 

2.3软件重用的方法 

标准,凭借着它的勃勃生机与强大优势,为网络应 

用注入了新的活力。笔者主要对基于XML的软 在提倡结构化程序设计的时代,软件重用的 

方法主要体现在以下几个方面: 

(1)源代码重用。这是最低级的重用。它的缺 

点很明显,一是程序员要花很大力气看懂源代码, 

二是程序员经常会在重用的过程中犯错误。 

(2)目标代码级重用。这是用得较多的一种重 

用方式,一般体现为函数库方式。程序员通过引用 

函数名称,重用库中标准函数。但由于程序员不能 

对其做任何修改,造成其灵活性大大降低。此外与 

件重用机制进行了初步的探讨。 

2软件重用概述 

2.1软件重用的概念 

软件重用(又称软件复用或软件再用)是指在 

建立软件系统时,重用某些早先开发的对系统有 

用的信息来产生新系统,这里所说的信息可以包 

括软件需求规格说明、设计文档、设计过程、程序 

代码、测试用例、度量甚至开发知识和经验等u 。 

源代码重用受语言限制一样,这种重用也不能做 

到与开发平台无关。它最根本的缺点在于未能与 

对于新的软件开发项目而言,它们或者是构成整 

收稿日期:2005一l2一l6. 

作者简介:兰1t ̄(1979--),女,I ̄Jfl宜宾人,武汉理工大学经济学院硕士研究生 

维普资讯

74 武汉理工大学学报・信息与管理工程版 2006年6月 

数据结合在一起,从而无法大规模使用。 

面向对象开发方法的出现使软件重用进入一 

个新阶段,在面向对象的程序设计环境中,与传统 

重用方式相比出现了如下新的软件重用方式: 

辙,XMI 的编写者也可以将精力集中于数据本 

身,而不受显示方式的细枝末节的影响。不仅如 

此,样式单还带来另一个好处,即定义不同的样式 

表可以使相同的数据呈现出不同的显示外观,从 

(1)类库。类库与函数库一样都是经过特定开 

发语言编译后的二进制码。但它与函数库有本质 

而适合于不同的应用,甚至能够在不同的显示设 

备(如PC、MAC、DB Server、掌上电脑、手机等) 

上显示。这样,XML数据就可以得到最大程度上 

的重用性,满足不同的应用需求。 

区别,主要表现在继承、封装和派生上。类库的出 

现使大规模的软件重用得以实现,并使软件的重 

用性及可维护性得到大大增强。 

(2)组件。组件(又称部件或构件)是一种具有 

某种特定功能的软件模块。使用组件开发软件就 

像搭积木一样容易,这比传统的函数(过程)重用 

方式有了很大提高。组件是迄今为止最优秀的软 

件重用手段[z]。 

3基于XML的重用技术 

3.1 XML概述 

可扩展的标记语言XML(Xtensible Markup 

Language)是一套定义语义标记的规则,这些标 

记将文档分成许多部件并对这些部件加以标识。 

XML并非像超文本标记语言HTML(Hyper 

Text Markup Language)那样,提供了一组事先 

已经定义好的标签,而是提供了一个标准,利用这 

个标准,就可以根据实际需要定义自己的新的标 

记语言,并为这个新的标记语言规定它特有的一 

套标签D]。标准的XML文件一般由3个部分组 

成:关于数据内容的描述、文档类型的定义(DTD 

或XML Schema)以及数据内容的显示(扩展样式 

单语言XSL或层叠样式单CSS)。DTD或Schema 

是XML的布局语言,用来设定文件中各标记的 

使用手法,让浏览器可以辨识该文档是否是格式 

良好的、有效的XML文件,XSL或CSS是XML 

自己的样式单语言,它是一种专门描述结构文档 

表现方式的文档,既可以描述这些文档如何在屏 

幕上显示,又可以描述它们的打印效果,甚至声音 

效果。与传统的HTML相比,它具有表达效果丰 

富、文档体积小、便于信息检索和可读性好等优 

点。XML语言结构十分弹性、扩展性高又不失统 

标准,可以很容易地描述各种文件数据,十分适 

合在网络上传输,广泛运用在各行业中[4]。 

3.2重用技术 

3.2.1 XML数据重用 

XML关于文档浏览的基本思想是将数据与 

数据的显示分别定义。这样,XML格式文档不会 

重蹈某些HTML文档结构混杂、内容繁乱的覆 

3.2.2 XML结构重用 

XML是一种源标记语言,它允许用户根据 

其所提供的规则制定各种各样的标记语言。实际 

上,现在许多行业、机构都根据自己独特的需要制 

定了自己的标记语言,如化学标记语言CML 

(Chemistry Markup Language)、数学标记语言 

MathML(Mathematical Markup Language)、面 

向图形图像的SVG(Scalable Vector Graphics)以 

及用于电子商务的ebXML等。 

XML的这种特性,极大地方便了不同行业 

间的应用需求,用户只需在XML文件的DTD定 

义中使用PUBLIC参数就可以方便地实现现有资 

源的重用。其语法如下: 

<j DOCTYPE根元素名称PUBLIC DTD 

NAME DTD

URL> 

以调用SVG中的矢量图形为例,在XMI 文 

件的声明中加入: 

<?xml version= 1.0 standalong= no ? 

> ’ 

<!DOCTYPE svg PUBLIC”一//wsc// 

DTD SVG 03 December 1999//EN 

http://www.w3.org/Graphics/ 

SVG/SVG--19991203.dtd">c引。 

3.2.3 XML组件重用 

可以认为XML文档是一组嵌套式容器。最 

外层的容器是根元素。根元素的所有子元素都作 

为容器出现在它的内部,这样层层嵌套,直到容器 

只包含实际的文本值(属性可以被认为是对描述 

其中内容的特定容器的标签)。例如,一个商场的 

数据库可能拥有如图1和图2所示的结构,每个结 

构都包含一个customer元素。customer元素的 

文件格式定义如下: 

<j DOCTYPE customer[ 

<!ELEMENT customer(Name,Sex, 

Birthday,Phone,Address)> 

<!ELEMENT Name(#PCDATA)> 

<!ELEMENT Sex(#PCDATA)> 

维普资讯

第28卷第6期 兰 晖,等:基于XML的软件重用技术探讨 75 

(customers) 

(customer)…(/customer) 

(customer)…(/customer) 

(/customers) 

图1客户列表示例 

(invoice) 

(customer)・・・(/customer) 

(1ineitem)…(/lineitem) 

(1ineitem)…(/lineitem) 

(/invoice) 

图2发票示例 

<!ELEMENT Birthday(#PCDA I’A)> 

<!ELEMENT Phone(#PCDATA)> 

<!ELEMENT Address(#PCDATA)> 

]> 

从上面可以看到,customer元素包含了顾客 

姓名、性别、出生年月、电话和住址等方面的信息。 

粗略一看,这些结构似乎不兼容。它们描述了 

完全不同的数据概念(一个描述了客户列表,而另 

个描述了一张发票),并且包含不同的信息。但 

是,如果为这2个文档构建2个完全独立的结构, 

就将错过一个重用机会。只要2个customer元素 

在语法和语义上相同,就能够在这2个文档中重 

用customer元素。组件级元素的重用可以利用 

XML中名称空间来方便地实现。 

XML和XML解析器的本质使将容器(或元 

素)当成黑盒非常容易。也就是说,可以获取一个 

在别处重用的元素,并复制它,而不用担心该元素 

的内容。例如,假定商场有一个客户列表文档,现 

在希望为特定的客户创建发票。一旦其确定了客 

户列表中的客户元素(例如通过匹配客户标识或 

名称),就能方便地复制该元素以及其所有子元素 

到发票文档中,而无需知道customer元素中嵌入 

了其他什么信息。这样就可以更简单、更容易地管 

理代码 。 

3.2.4 XSI T标准库重用 

XSI T标准库(XSLTSI )是一个SourceFor— 

ge(开发源码)的项目,目的在于提供一个标准的 

转换集合,方便开发者使用。该项目根本性的目标 

是提供一种类似于C的标准库或者C++的STI 

(标准模板库)的东西。如果工具厂商们都包含在 

这个库,开发者就能够更快速地开发,而不必创建 

这些样式表,同时所开发出来的产品在所有支持 

该库的工具之间都具备可移植性。该库主要提供 

字符串、结点、日期、时间、URI(统一资源标识符) 

以及XML标记等几方面的函数。其中的每一类 

中都包含了一些操作,能够很方便地用来解决 

XMI 开发中可能遇到的许多常见问题。下面以 

字符串函数为例来说明。 

字符串函数在XML中很常见,因为XMI 从 

本质上说就是一个文本字符串。不仅文档文本是 

字符串,而且每个元素中的数据也都是字符串。字 

符串函数的价值在于它为生成和应用需求更加匹 

配的新字符串提供了解析、重组以及删除部分子 

串的能力。XSI TSL字符串函数包括的基本操作 

如大写、小写、camel—casing、提取子串、字符串 

替换和模式匹配等。 

许多遗留应用要求数据全以大写形式表达, 

特别是名字和地址等。下面是一个使用XSLTSI 

函数将一个字符串转换成大写的例子程序: 

<xsl:call—template name=”str:to— 

upper > 

<xsl:with—param name= text >Brian 

Schaffner</xsl:with--param> 

</xsl:call—template> 

除此之外,还可以方便地实现对XSLTSI 中 

的结点(Node)函数、日期(Date)和时间(Time)函 

数、URI函数及标记生成函数的重用L7]。 

4 结 论 

软件重用是一个很大的领域,从传统的结构 

化程序设计到面向对象开发方法,基于这方面的 

研究都很多。而XML语言的出现也提供了新的 

标准,代表着未来网络语言的发展趋势。因此,笔 

者针对XML语言进行了重用方面的探讨,并主 

要讨论了4种重用策略,但XML毕竟是一个全新 

的事物,基于XML的软件重用机制还需在实际 

维普资讯

76 武汉理工大学学报・信息与管理工程版 2006年6月 

需求指引下进一步成熟和完善。 

参考文献: 

J1.计 

[1] 

王少锋,何志均,王克宏.软件重用技术研究E

算机工程与设计,2000,21(5):10~15. 

型——webServices[J].微机发展,2004,14(1):93— 

96. 

[5]Luna.XML初学进阶[DB/OL].[2005一】2一O6]. 

http://www。xm1.net.cn. 

[63 KEVIN w.用于数据的XML:重用它还是丢弃它 

[DB/OL].[2005—12-06].http://www一900. 

ibm.tom/developerWo—rks /cn/xml/x—xdreuse/ 

index.shtm1. 

[2] 戴敏,宋燕平.组件开发与软件重用[J1.南开大 

学学报,2001,34(3):24—27. 

[3] 

赵克立.XML 1.x编程培训教程[M].北京:清华 

大学出版社,2004. 

[73 Builder com.XSLT标准库[DB/OL]. ̄2oo5—12一 

o63.http://www.zdnet.com.cn/devel0per/c0de/ 

story/O.2000081534.39105228,O0.htm. 

[4] 

高王景,汪洪涛,丁颖.基于XML的新一代模 

Study on Software Reuse Technology Based on XML 

Lan Hui Nie Guihua 

Abstract:The software reuse technology has become a focus in the researching field of software engineering.Software 

reuse technology based on XML is studied.Four reuse technologies are discussed,including data reuse,structure reuse, 

component reuse and XSLT standard Library reuse. 

Key words:software reuse;XML;component;XSLT standard library 

Lan Hui:Postgraduate;School of Economics,WUT,Wuhan 430070,China. 

[编辑:王志全] 

(上接第65页) 

Remote Support System for Operational Optimization Based on Socket Technique 

Wang Hong,Li Hao,Yah Liexiang 

Abstract:Aiming at the data c0liection and transmission in the remote support system for operational optimization,the 

socket techniaue with VC++6.0 is introduced.A remote support system for operational optimization of steam turbines 

is developed and so1ves the problem of space--time restriction.The system is good in practical application- 

Key words:socket;remote operational optimization;support system 

Wang Hong:Postgraduate;School of Automation,WUT,Wuhan 430070,China・ 

[编辑:王志全] 


本文标签: 重用 软件 文档 语言 开发