UML建模技术在高速公路收费系统软件设计中的应用由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“uml软件建模技术”。
UML建模技术在高速公路收费系统软件开发中的研究及应用
张治元
(长沙通信职业技术学院计算机信息工程系 湖南 长沙 410015)
摘 要 本文在分析UML建模技术的基础上,提出了基于UML的高速公路收费系统。详细分析了系统的逻辑结构、两层C/S体系结构、MIDAS技术、Socket通讯;并设计了车道收费系统。
关键词:统一模型语言 收费系统 多层分布式应用服务 安全套接字 分类号:TP393.08 文献标识码:A
Investigation and Application of UML modeling
in highway charge system
Zhang Zhiyuan(ChangSha Communication Technology College, The Computer and Informnation Inpartment,changsha 410015)Abstract: This article put forward a highway charge system based on UML after analyzed the modeling technology with UML。This article detailed analyzed the logic structure, the two-layer Client/Server architecture, the technology of MIDAS, the communication of Socket, and designed the roadway charge system and the station management system。
Key Words:
UML highway charge system MIDAS Socket 1.引言
1994~1996年软件工程家Grady Booch.Ivar Jacobson.James Rumbaug先后集于Rational公司,他们以各自原有的方法为基础,并吸收其他方法的长处,共同提出新的面向对象的分析与设计语言----统一模型语言UML(Unified Modeling Language)。
UML的目标是以面向对象图的方式来描述任何类型的系统,适宜建立软件系统的模型。此外,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。
UML是一种建模语言,不是一种方法,它独立于过程。利于它建模时,可遵循任何类型的建模过程。但该建模语言的作者们给出了一种推荐性的建模过程指导,即RUP(Rational Unified Proce)。
RUP是以用例为驱动、体系结构为中心、迭代和增量的过程。RUP包括四个阶段(包括初始、细化、构造、迁移),每个阶段又分为若干次迭代,每次迭代都有一个核心工作流(包括需求、分析、设计、实现、测试5个活动:)。
总之,标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
本文的第二部将对高速公路收费系统的体系结构的设计作简单的描述;第三部分详细介绍系统的关键技术-MIDAS技术和Socket通讯;车道软件系统的实现将在第四部分中给出;最后是全文的总结。
2.系统的体系结构设计
本系统的体系结构图(图1)用UML描述如下:
其中收费操作在车道机实现、管理操作在管理机上实现。应用服务器是中间层,它们和数据库服务器一起形成事实上的多层体系结构。本系统中,由于车道和收费站分布的分散性,必须要把界面部件和工控控制部件从应用服务上分离开来。应用服务器上可接多台异地管理机,方便管理者异地操作管理。管理机程序也可以直接和车道机通讯,比如监控收费员收费等,从而减轻应用服务器的负荷、减少网络通信量。
多层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。此外,设计时慎重考虑各层间的通信方法、通信频度及数据量也是非常必要的。在本系统中,通讯分为三种实现:一为MIDAS实现,如监控服务部件——监控界面部件、信息查询分析接口部件——查询分析界面部件;一为TCP协议,如监控服务部件——工控控制部件;而车道机——服务机、车道机——管理机通讯采用UDP协议。
图1 系统的体系结构图
3.系统关键技术
(1)MIDAS技术
系统选用Delphi作为开发工具。Delphi具有几乎完美的面向对象语言和技术,具有完善的数据处理能力和对标准技术的完整支持。更为重要的是内置的MIDAS体系对多层C/S的充分支持。
MIDAS(Multi-tiered Distributed Application Services),即多层分布式应用服务,是Borland公司的一项成熟技术。MIDAS技术是基于面向对象编程模型的,支持CORBA和DCOM的Delphi集成开发。Borland 提供了通过DCOM、TCP/IP和OLEnterprise等连结方式。MIDAS可以把数据集包装为Variant、OLE Variant或Any,然后作为参数跨网络传递给远程方法调用。服务器端将数据集打包成Variant,并传输到客户端,在客户端数据包被解包,并通过界面显示给客户端用户。客户端通过调用应用服务器上的IProvider接口,实现对应用服务器上相关方法的访问和操作。由于接口是基于DCOM的,所以,客户端的访问和调用都是自动完成的,基本不再需要人工干预——当客户机访问服务器时,如果服务器应用还没有运行,客户程序将自动激活它。因此本系统中监控服务部件——监控界面部件、信息查询分析接口部件——查询分析界面部件通讯用MIDAS实现,这对在管理机上异地操作的管理员来说是非常便利的。当然,DCOM编程机制是比较复杂的,但MIDAS技术简化了DCOM应用。
(2)Socket通讯
Socket是双向的通信端点,按通信特性可将套接字分类,主要有两类:TCP协议和UDP协议。TCP协议是基于字节流的Socket,提供可靠和无差错的字节流通信。采取稳定的连接和差错检测机制来保障通信的质量,但消耗资源大。由于收费信息要可靠和持续的传递到应用服务器,故工控控制部件——监控服务部件之间通过TCP协议建立连接通信,由Delphi中tclientsocket和tserversocket的子类实现。
UDP协议是基于数据报的Socket,提供不可靠的无连接数据报传输服务,优点是消耗资源小,占用网络频宽小,速度快。管理机要根据需要监控某车道机,是和车道机瞬时的间断的通信,不需要进行持续不断的通信,不需建立稳定的连接,对信息传输的质量也不要求很高,故采用UDP协议,由Delphi中TNMUDP类继承实现。
4.车道收费系统设计
本文仅描述入口车道软件系统的设计过程。(1)功能设计
入口车道的主要功能是录入车型、车种、入口站代号,然后发放IC卡作为通行证,同时要对免费车、冲关车、车队和作废等进行处理,对出现异常或故障的车道要先关闭作下班操作。为了满足实时性和稳定性的要求,在设计车道收费系统中采用后台控制技术而没有采用多线程的形式,系统采用两层C/S结构,本地有本地数据库,与站级数据库的联系采用后台技术。这样在网络繁忙或网络不通 时也能按时完成收费,从而保证了系统的实时性和稳定性的要求,如果采用多线程,发生上述故障时,系统必须等待,这样就不能满足收费系统的要求。
为了提高程序运行的响应速度,程序采用状态控制方式,设计一个状态变量state,程序根据当前state的值决定下一步的处理流程(图2)。state的值有12种,它们分别是:
图2 入口发卡状态图
state=1:初始状态;
state=2:输入用户名和密码状态; state=3:等待处理状态; state=4:车型处理状态; state=5:处理完成状态; state=6:正常下班处理状态; state-7:车队处理状态; state=8:车队处理结束状态; state=9:免费车处理状态; state=10:冲关处理状态; state=11:异常下班处理状态; state=12:异常处理状态。
系统设计了一个显示当前处理的变量lnextstate.caption,动态显示当前需要或正在处理的信息,以便操作能进行相应的操作。
车道部分还包括许多工控设备,如车辆检测器、显示灯和自动栏杆等。为了提高响应速度,这些工控设备与车道机的通讯采用串口通讯。辅助设备还有语音器、费额显示器和摄像头等。(2)程序设计
本系统首先定义了一个TMainF类,TMainF类是从TForm类继承而来的,他是一个主窗体,是其他控件的载体。
其中设置了六个容器控件,十四个标签控件,两个状态显示控件和三个查询控件,用以显示各种信息和状态,查询数据等。设置了一个时钟对象,用于处理时间同步问题。设置了两个通讯对象,即消息传递对象,处理从工控设备传来的信息和向工控设备发送控制命令。设置了一个本地数据库对象,用于本地数据库的数据检索与查询。设置了三个图象对象,用于显示图象信息。
程序的功能是通过函数或过程中实现的,下面以车队处理为例来说明函数或过程的实现,车队处理过程设计如下:
如何判断是车队,先调用BarUP()函数,参数为1,在窗体用图像显示栏杆抬起,然后调用UpDateLed()函数,参数为0,控制自动栏杆抬起,让车辆通行,调用SetColor()函数,参数为1,将红绿灯设置红绿灯,并显示“车队”操作和“抬起栏杆”。
程序代码如下:
procedure TMainF.DoSquence;begin BarUp(1);//图像显示栏杆起与降,0表示放下,1表示抬起
frmStart.UpdateLed(0);//控制自动栏杆的抬起与放下,0表示抬起,1表示放下 SetColor(1);//置红绿灯,0为红灯,1为绿灯 lNowOperation.Caption:='车队';lNextstate.Caption:='抬起栏杆';end;5.结束语
本高速公路收费系统采用面向对象方法和UML建模技术,选用Delphi作为开发工具,充分利用其MIDAS技术和Socket通讯,在开发过程中较好地解决了实时性、准确性、稳定性和扩充性。充分满足高速公路收费系统的总体要求。
UML的应用在飞速发展,在本系统的设计中对UML的应用还不是全方面的,UML暂只提供C++与Visual C++、Java、Visual Basic、XML DTD和CORBA/IDL代码生成与逆向转出工程代码,不支持Delphi代码生成与逆向转出工程代码,因此在分析设计后不能直接转换为代码,需要进一步研究。【参考文献】
[1](美)Bran Selic.A generic Framework for Modeling Resources with UML[J].Computer:Innovative Technology for Computer Profeionals,Membership Magazine of the IEEE Computer Society 2000,33(6):64~69 [2]刘宇熹.高速公路收费系统的设计与研究[J].华南师范大学学报(自然科学版),2001.1 :57~61 [3]王晓红.高速公路收费系统应用软件的设计与实现[J].交通标准化, 2001,No.4: 21~24 [4]方幼林等.数据仓库中数据质量控制研究.计算机工程与应用,2003.13:1~4 [5]陈宇等.采用E2CN拥塞控制的TCP连接时延模型分析.计算机工程,2005.11:16~18 [6] Douglas E & Comer Davi.TCP/IP网络互连第3卷:客户/服务器编程及应用Linux/POSIX Sockets版.人民邮电出版社.2002年1月
[7](美)Alexander M.Meystel &James S.Albus.智能系统——结构、设计与控制.电子工业出版社.2005年1月