admin 管理员组

文章数量: 1086019


2024年4月20日发(作者:数据库操作培训)

维普资讯

第33卷 

第2期 

计算机工程 

2007年1月 

厶33 

No.2 

Computer Engineering 

January 2007 

・开发研究与设计技术・ 文l畎标识码l A 中圈分类号I TP311 

基于控件和XML的可定制软件开发方案 

李广曩,吴伟民,麓天武,王静。孙乙乃 

(广东工业大学计算机学院,广州510090) 

接曩:为降低软件维护上的难度,适应不断变化的用户需求,提出了一种基于控件和XML配置技术的可定制的软件开发方案,一定程 

度上解决了面向Windows应用程序的可定制问题。该方案利用XML存储软件设计中的关键信息,将部分设计信息与开发平台分离,降低 

了和其它模块的耦合度,使得使用该方案开发的软件系统具有较高的可扩展性。该方案已经在一个电子元器件库存系统和一款印刷电路板 

的设置软件上得以应用。 

关t诃:控件;XML;可定制;配置技术;可扩展性 

Customized Software Development Based 0n Controls and XML 

LI Guangqiang,WU Weimin,LAI Tianwu,WANG Jing,SUN Yinai 

(School of Computer Science,Gudngdnng University of Technology,Guaugzhou 5 10090) 

[Abstract]In order tO reduce the diifculty of software maintenance and meet changing user-requests,this paper presents a control and XML based 

method of customized software development,which is speciifcally oriented to Windows applications.This method makes use of XML to store key 

information of software development,separating the development platform and design information.In this way,it reduces the coupling with other 

modules and makes the software made through htis method has considerable extensibility.This method has been used to develop a warehouse system 

of electronic parts and a configuration tool of a printed circuit board and proved to be feasible. 

[Key words]Controls;XML;Customized;Configuration;Extensibility 

l概述 

件为基础,通过运行时的XML数据提取、分析,控件及其 

随着信息时代的发展,计算机软件的需求越来越复杂, 

控制代码的扩展,实现了软件的可定制。根据开发方案设计 

规模越来越大,而且随着企业的发展和业务的扩展,需求变 

的软件,可以通过编辑XML配置文件中的控件参数及其相 

化是不可避免的。软件危机自从2O世纪六、七十年代诞生以 

关的操作数据,实现对软件中的控件和输入输出的增删、修 

来,至今仍无法很好地解决。虽然危机与软件本身具有的特 

改操作以及控件相关的数据处理,不需要修改源代码。 

点有关,但长期以来,缺乏软件开发和维护的正确方法才是 

图1是开发方案的总体框架。 

最为关键的原因。 

目前,大多数软件系统的界面、功能都是固定编码的, 

如果需求发生了变化,则必须修改源代码,然后将程序重新 

编译。需求变化中的很大一部分是类似但又十分琐碎的,然 

而,软件的开发人员的流动性很大,加上开发文档的缺乏, 

导致这种需求变化很难得到快速的满足。 

XML文件目前普遍应用于存储系统、设备的配置信息, 

如网关配置信息 J。文献【2】使用XML配置技术实现了基于 

B/S架构的可定制的办公自动化系统。文献【3】提出了一种利 

田1可定爿开发方案的总体程槊 

用XML Schema来规范XML文档开发的设计思想,较有效 

2.1对控件元素的分析 

地应用于定制基于J2EE的Web应用程序。文献【2,3】提出了 

目前流行的软件开发平台一般都有一系列的控件供开发 

基于XML的可定制开发的思想均是面向网页设计或Web应 

人员使用。相当数量的应用软件都是使用控件快速开发而成 

用程序的,并未解决面向Windows应用程序的可定制的问题。 

的。开发人员可以通过拖放控件,设置控件的属性,添加对 

本文提出了一种面向Windows应用程序的、基于控件和XML 

控件的控制代码,从而快速地开发出应用软件。 

配置技术的可定制的软件开发方案,在需求变化多而集中在 

然而,对控件的属性进行设置是一个很繁琐的过程。例 

控件和输入输出的修改的情况下,有效解决了上述需求多变 

如,在一个新增的窗体中有若干的文本框、下拉组合框等。 

的问题。文章首先说明了基于XML的定制软件设计方案; 

对于文本框,需要设置其名称、标题、大小等属性;对于下 

然后针对本文提出的这种方案,结合应用实例介绍其用 

c抖.Net实现的过程。 

作者筒介:李广强(1982-),男,硕士生,主研方向:网络与多媒体; 

2可定翻软件开发方案 

吴伟民,副教授;赖天武、王静、孙乙乃,硕上生 

可定制的软件开发方案以针对控件设计的XML配置文 

收藕日期:2006—01—24 E—mail:gzlgq@21cn.corn 

267— 

维普资讯

拉组合框,不仅需要设置基本的属性,而且需要向下拉列表 

中添加内容。这一系列要手动设置的内容其实都可以分离出 

来,保存在XML配置文件中。通过设定一个通用的窗体, 

在窗体构建的时候,从XML配置文件中读取各个控件的要 

设置的内容。这样,如果需要修改该窗体,则只需修改该窗 

体对应的XML配置文件即可,无需修改源代码、重新编译 

生成程序。这样就大大提高了软件的可扩展性。 

在另一方面,软件中不仅仅包含控件及其属性,还有大 

量的对控件的控制代码。在需求不是发生根本性变化的情况 

下,控制代码是不需要修改的;很多情况下只需要添加一些 

控件、一些输入输出。因此,XML配置技术用于软件开发, 

在需求变化多而非根本性变化的情况下是可行、有效的。 

2.2 XML配置文件的设计 

XML配置文件结构如图2所示。 

田2XML墨置文件结构 

XML配置文件是从根节点进行构造,在根节点下,依据 

开发平台提供的控件的属性以及实际开发中需要设置的属性 

相对应。以VS.Net Visual c}}中WinForm的控件Label和 

ComboBox为例,在XML配置文件中可以如下定义: 

<Component> 

<!一控件Label的属性设置一> 

<para name=’’Compl”type=“Label”Maxlength=’’20 Text= 

“Thisistest1”> . 

</para> 

<!一控件ComboBox的属性设置一> 

<para name=”Comp2”type=“ComboBox”Maxlength=”20” 

Text=“Thisistest2” 

<!一控件界面的内容一-> 

<!一ComboBox下拉列表设置一 

<item> 

<N0>dataO</N0><!一操作的数据一> 

<Desc riptiOn>TEXT 1<,Desc riptiOn> 

</item> 

<item> 

<No>data1</No><!一操作的数据一> 

<Desc rjpti0n>TEXT2<,Description> 

</item> 

<item> 

<No>data2</No><!一操作的数据一> 

<DescriptiOn>TEXT3<,Desc ripti0n> 

</item> 

</para> 

</Component> 

使用XML配置文件。使控件与XML中的元素相对应。 

控件和控件的属性通过XML的元素得到体现,这样在进行 

应用软件的XML文件编写时。只需要修改、添加控件属性 

268一 

元素。 

2.3 XML配置文件的数据提取 

XML中数据的提取。需要开发平台的类库的支持。在.Net 

Framework中提供了丰富的类库以及类方法供开发人员使 

用。其中打开、操作XML文件可以使用DataSet类、 

XmlDocument类等。DataSet对于层次筒单的XML文件(例 

如只有两层结构的XML),可以把XML导入内存当作数据 

表格来使用,是十分方便、有效的。但是,本文介绍的XML 

配置文件的结构在控件属性复杂的时候将会变得相对复杂, 

不能简单地使用DataSet来操作XML文件来读取配置信息。 

而XmlDocument类提供了诸如 selectsingelNode. 

SelectNodes、GetElementByld、GetElementsByTagName等可 

以搜索XML内容的函数,比较适合用于XML配置文件的数 

据提取。 

使用XmlDocument类对XML配置文件中的控件的 

Name属性进行提取的方法如下(C}}实现): 

//创建一个XmlDocument对象 

XmlDocument doc:new XmlDocument(); 

//读取XML配置文件 

doc.Load(“\Congfig.xml”): 

//建一个XmlNode对象,获取XML的根节点 

XmlNode root=doc.DocumentElement: 

//声明一 ・个XmlNodeList对象 

XmlNodeList nodeList; 

选择所有控件的名称,存入XML节点链表nodeList / 

nodeList=root.SelectNodes( 

”/Comp0nent,para,@name”): 

控件属性从XML配置文件中提取之后,将被用于设置 

应用程序的控件属性以及控制代码。 

2.4控制代码的处理 

个软件系统不仅包括界面的设计,还有大量的控制代 

码。需求变化往往是在原来算法、流程不变的基础上,添加 

些控件、输入输出,或者对控件、输入输出的操作进行重 

新组合,因此可以利用XML配置技术来简化开发及维护 

工作。 

控制代码中对控件的操作需要确定的控件的Name属 

性,而控件的具体属性需要读取XML文件来获取。这对编 

写定制的控制代码造成很大难度。通过按照一定的命名规则 

预先声明一系列具有相同操作的控件数组,并实现操作部分 

的代码。程序运行时,程序从XML配置文件中提取控件属 

性及相关联的数据,统计控件的数目;然后将预定义的控件 

激活,使控制代码的覆盖范围扩展到XML配置文件中定义 

所有控件,从而实现了对控制代码修改和扩展。 

修改控制代码的原理如图3所示。 

田3修改控■代码的J-c理 

维普资讯

利用预定义的控件数组,对同一类的控件的控制进行统 

的设计及编码,使得XML配置文件中对控件及相关数据 

的修改不影响到控制代码的执行,只改变了控制代码的覆盖 

范围,一定程度上提高了开发效率,同时,也大大降低了维 

护的难度。 

2.5不足与展望 

利用开发方案开发的软件其可定制的程度有一定局限 

性,在需求发生较大变化的情况下,如修改算法、流程,则 

必须修改源代码。比较理想的可定制是将需要定制的代码从 

软件中分离出来,独立地编写并保存。软件在运行时实时地 

解释执行分离出来的代码。这样需要开发一个解释器。 

目前,许多大型的游戏引擎内部都有一个独立的解释器。 

游戏引擎中的某些关键功能是用脚本编写的,在运行时对脚 

本进行解释执行。将部分功能分离出来用脚本编写,对于一 

个大型的系统或软件是具有积极的意义的。 

3应用实例 

电子元器件库存系统要处理很多类型的电子元器件,如 

果对于每一种元器件都要编写一个窗体,将会使开发很繁琐。 

而且,在系统开发完成后,按照传统的设计方案,如果需要 

添加一种新的元器件或者修改元器件的属性,则不得不修改 

源代码,重新编译生成程序。应用本文的开发方案,我们做 

个元器件录入的通用窗体,将控件的属性信息写入XML 

配置文件中。通过添加、修改XML配置文件,可以十分方 

便地为各种新的元器件录入提供界面,并在新界面上提供扩 

充的功能。创建一个名为Component1.xml的配置文件,存储 

录入电阻的界面信息;同样地根据录入非极性电容的需要创 

建名为Component2.xml的配置文件。在系统中,根据XML 

配置文件生成不同的录入界面,满足录入2种不同元器件的 

需要;控制代码也从XML配置文件中读取信息对功能进行 

设定,分别产生2个按照XML配置文件中的元器件参数产 

生的元器件编号,实现了功能的扩展。 

由于篇幅关系,XML配置文件中的节点不逐一展开,只 

展开其中的“单位”节点。文件ComponentI.xml描述如下: 

<Component> 

<para name=”单位”length=”8o”> 

<item> 

<No>R</No> 

<DescriptiOn>n<,Description> 

</item> 

<item> 

<No>K<,No> 

<DescriptiOn>Kn<,Descripti0n> 

</item> 

<item> 

<No>M</No> 

<Description>MO</Description> 

</item> 

</para> 

+<para name=”功率“> 

+<para name=“大小,型号”> 

+<para name=”温度系数”> 

+<para name=”容许误差”> 

</Component> 

文件Component2.xml描述如下: 

<Component> 

<para name--”单位”length=”80”> 

<item> 

<No>P</No> 

<Description>PICO<,Description> 

</item> 

<item> 

<NO>N<,No> 

<Description>NANO<,Desc ripti0n> 

</item> 

<item> 

<NO>U<,No> 

<Description>MICRO-(u)</Description> 

</item> 

<item> 

<No>M</No> 

<Description>MILLI</Description> 

</item> 

</para> 

+<para name=”大小”> 

+<para name=”绝缘体风格”> 

+<para name=”容许误差”> 

+<para name=”电压”> 

+<p4ra name=”极端材料风格”> 

</Component> 

将控件加入到控制代码的部分实现(c#)如下: 

,/统计具有相同操作的控件数目 

compCount=nodeList.Count; 

//对具有相同操作的控件进行扩展 

for(int i=1;i<this.compCount;i++){ 

以下是实现了连接ComboBox控件的字符串的控制代码: / 

获取从XML配置文件中控件的Description信息 / 

child=root.SelectSingleN0de 

(“descendant::item【Description=”’+combo[i].Text+”’]”); 

将Description信息中的~部分连接到字符串result / 

this,result十=child.FirstChild.InnerText;l 

根据XML配置文件的不同描述,生成2个不同的窗体, 

如图4所示。 

圈4利用不同XML矗量文件生虞的一体 

根据XML配置文件中控件及相关数据的不同描述,程 

序对输入的处理方法相应不同。因此,不同的元器件按照各 

自的参数及其处理方法,生成相应的编码,从而实现了功能 

的扩展。生成的编号举例如下: 

(1)12kO、1/20W、大小型号0201、温度系数25、容错 

0.1%的电阻:10112K010201l1000000 

(下转第282页) 

269_一 

维普资讯

荷,系统中增加2台服务器来分担主服务器的数据处理任务。 

这3台服务器共同构成类似于内部局域网的数据中心工作站 

(DSC)。 

(7)报警 

设定水文报警阈值,根据设定的报警值可自动进行声光 

报警。 

水文数据处理与监控中心的主要功能如图3所示。 

4结语 

基于GPRS的水库水文自动测报系统在雪野水库已投入 

使用,该系统实现了水文信息的实时采集、传输和处理的自 

动化,具有及时、快捷、高效、准确、基建投资少、运行成 

本低等特点。管理人员可以实时准确地掌握水库的水文信息, 

以便采取正确的措施,对水资源进行合理的调度。 

从使用效果看,该系统无须专人值守,可快捷、准确地 

获得所需水文信息,解决了人工观测记录设备需要有专人管 

理、值守、记录、整理和上报,无法实现实时对水文信息测 

量、记录和传输,无法为防汛、报汛实时提供数据等重要问 

田3熏缱功■框田 

题。一方面节约了大量的人力、物力、财力,大幅度降低水 

(1)测站管理 

主要完成水文监测站、降水量监测站、流量监测站等站 

文信息监测的运行成本;另一方面可以及时地提供详细、准 

点基本信息的维护。 

(2)通信管理 

可接入局域网实现数据共享,可实现多计算机通信。 

(3)实时信息监测 

实时接收遥测点的水位、雨量、流量等信息;自动检查 

数据格式,并根据ID区分数据类型,不同类型的数据分别存 

入不同的实时数据库,并进行显示。 

确的水文信息,为水库水资源的台理调度与科学防汛提供及 

时的决策依据和可靠信息,具有显著的社会效益和较大的经 

济效益。 

参考文献 

1韩冰,李芬华.GPRS技术在数据采集与监控系统中的应用【JJ. 

电子技术,2003,29(8):26—19. 

2 Wavecom公司.GPRS User Guide[Z].2001—11. 

(4)历史数据管理 

将实时数据库中的实时信息转入历史数据库,由实测数 

据自动进行时段、日、月、年等统计,形成各种水文信息变 

化曲线图。同时可以将各种统计信息及过程线进行输出。 

(5)水文数据分析 

对实测数据及统计数据进行智能分析,为水资源优化调 

度和防洪抗旱提供依据 J。 

(6)资料整编 

3李淘,付永生.基于GPRS的数据传输【JJ,移动通信,2004, 

28(7):76—80, 

4刘慧文,苏建徽.基于W77E58双串iZl通信的监控系统….单片机 

与嵌入式系统应用,2003,(I1):27—29. 

5崔子谦.GPRS工业数据采集监控系统【JJ.农机化研究,2004,(11): 

lO8.1O9. 

6深圳实宏电技术开发有限公司.H7000 GPRS无线DDN数据终端 

使用说明【z】.2002. 

对实测数据和统计数据按国家标准进行整编,直接形成 

符合水文规范的结果数据、图表、报表等。 

7武鹏林,霍德敏,水利计算与水库调度【M】.北京:地震出版社, 

20()0. 

(上接第269页) 

(2)20pF、大小型号0402、风格T5V、容错l%、电压6.3V、 

材料是铜的非极性电容:10620P0402Y5VF6v3c00 

案已经得以应用。实际应用证明,使用该开发方案的软件系 

统具有较高的可扩展性。 

由于这些改变是原来功能上的控件、输入输出的扩充或 

修改,因此只需修改XML配置文件就可以实现。利用XML 

配置技术,无需修改原代码和重新编译生成程序,在缺乏开 

发人员支持的情况下,快速地维护软件提供了方便快捷的途 

径。在实际应用中,只需懂得基本的XML知识的维护人员 

l赖水泷,管海兵,陈

2翟好,贺惠萍,岳

jI}考文 

凯等.基于XML的嵌入式系统配置管理解 

俭.基于XML配置技术的办公自动化系 

决方案【J】,微型电脑应用,2004,2O(9):50.5 l,55. 

统【J】.中国数据通信,2004,6(11):82 84. 

3郭昭,谭庆平.基于XML的可定制软件开发平台配置的设计和 

实现【J】.长沙大学学报,2005,l9(2):48—51. 

即可对软件进行修改,无需精通c}},VB.NET等开发语言。 

4结束语 

对于多变的需求,使用基于XML配置技术的可定制软 

件开发方案进行软件开发,使得对Windows应用软件进行修 

改变得简单。XML配置文件,实现了从软件编码完成到维护 

的平滑过渡,减少了应用软件开发人员的重复劳动,使软件 

4唐志宇,郑纬民,基于XML实现应用网关可配置服务的方法【J】. 

计算机工程,2003,29(8):94.96. 

5 W3C.eXtensible Markup Language(XML)『Z】.2004—02-04.http: 

www.w3c.org/xm1. 

维护人员根据需求变化对软件进行修改更加简便。该开发方 


本文标签: 控件 开发 信息 进行 需要