基于gui实现的银行排号系统的设计与实现_第1页
基于gui实现的银行排号系统的设计与实现_第2页
基于gui实现的银行排号系统的设计与实现_第3页
基于gui实现的银行排号系统的设计与实现_第4页
基于gui实现的银行排号系统的设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于GUI实现的银行排号系统的设计与实现摘要随着网络和科技的迅猛发展和人们生活水平的日益提高,服务业开始逐渐被人们所关注,那么营业窗口就是服务业代表服务质量的一个象征,从我们的生活经验中,从各大新闻媒体及网络媒体的报道中,我们不难发现,排队问题无时不刻不在影响着我们的生活工作,尤其是银行排队,有时候一站就是好久,形成了工作人员坐着,客户站着的模式,而这与“客户就是上帝”的理念完全不同,所以人们对于这个越来越不满,而且浪费了人们大量的时间,就我个人经验而言,有时候办理业务甚至要耗费一天的时候在营业厅等待。本文设计的银行排号系统,此系统完全模拟人群排队过程,该系统是客户到达营业厅可以根据业务窗口的人数自主选择排队窗口,工作人员通过后台登陆自己的账号,处理在自己窗口排队的客户的业务是否处理,勾选处理后,客户排队界面实现更新,排队人数减少,每一位客户都可以随时看到自己的前边有多少人在等待,客户及时了解排队信息,通过合理的程序结构来执行排队抽号,以提高排队等待效率,解决排队秩序混乱,前拥后挤等现象,实现排队自动化、规范化。通过该系统的使用,客户不必为排队浪费大量精力,便于管理排队秩序,同时适应信息时代的发展,提高服务水平和质量。该论文首先讨论了银行排号系统的现状,对设计中会用到的技术做了简单的介绍,另外论文主要讲解了基于GUI实现的银行排号系统的设计与实现,在论文中会详细的讲解数据库、设计步骤。最后,也对设计中出现的问题和一些不足做了总结。关键词GUI;JAVA;数据库;银行排号;系统开发GUIDESIGNANDIMPLEMENTATIONTOACHIEVEBANKINGSYSTEMBASEDONARRANGINGABSTRACTWITHTHEINCREASINGDEVELOPMENTOFNETWORKANDTECHNOLOGYANDPEOPLESLIVINGSTANDARDS,SERVICESBEGANTOBECONCERNED,THENTHEWINDOWISTHEBUSINESSSERVICESSECTORASASYMBOLREPRESENTATIVEOFTHEQUALITYOFSERVICEFROMOURLIFEEXPERIENCES,FROMTHEMAJORNEWSMEDIAANDONLINEMEDIAREPORTS,WEFINDTHATTHEQUEUINGPROBLEMISNOTAFFECTINGEVERYMOMENTOFOURLIFEANDWORK,ESPECIALLYBANKSLINEUP,SOMETIMESASTATIONTHATISALONGTIME,FORMINGASTAFFSITTING,STANDINGCLIENTMODE,WHICHISTHE“CUSTOMERISGOD“PHILOSOPHYISCOMPLETELYDIFFERENT,SOPEOPLEINCREASINGLYDISSATISFIEDFORTHISTHISDESIGNARRANGINGBANKSYSTEMTHATFULLYSIMULATECROWDQUEUINGPROCESS,THESYSTEMREACHESTHEOPERATINGROOMISTHECUSTOMERCANCHOOSEACCORDINGTOTHENUMBEROFBUSINESSQUEUEDWINDOWWINDOW,LANDINGBACKSTAGESTAFFTHROUGHTHEIROWNACCOUNT,INITSOWNWINDOWHANDLECUSTOMERSQUEUINGWHETHERTHEBUSINESSPROCESS,THECHECKPROCESSING,CUSTOMERQUEUINGINTERFACEIMPLEMENTATIONUPDATES,REDUCINGTHENUMBEROFQUEUES,EVERYCUSTOMERCANALWAYSSEEHOWMANYPEOPLEAREINFRONTOFTHEIROWNINTHEWAITINGQUEUEOFCUSTOMERSTOKEEPABREASTOFINFORMATION,THROUGHTHERATIONALSTRUCTUREOFTHEPROGRAMTOEXECUTIONQUEUEPUMPINGNUMBER,WAITINGINLINEINORDERTOIMPROVETHEEFFICIENCYOFSOLVINGQUEUINGDISORDER,BEFOREANDAFTERCROWDINGPHENOMENON,CUSTOMERSDONOTHAVETOQUEUEUPWASTINGALOTOFENERGY,EASYTOMANAGEANORDERLYQUEUE,COLLEAGUESADAPTTOTHEDEVELOPMENTOFTHEINFORMATIONAGE,IMPROVESERVICELEVELSANDQUALITYTHEPAPERFIRSTDISCUSSESTHESTATUSOFTHEBANKARRANGINGTHESYSTEM,THEDESIGNOFTHETECHNOLOGYWILLBEUSEDTOMAKEABRIEFINTRODUCTION,INTHEPAPERWILLEXPLAININDETAILDATABASEDESIGNSTEPSFINALLY,THEDESIGNOFSOMEOFTHEPROBLEMSANDDEFICIENCIESSUMMARIZEDKEYWORDSGUIJAVADATABASEBANKARRANGINGSYSTEMSDEVELOPMENT目录摘要IABSTRACTII1引言111项目开发背景112项目研究的意义113文的主要研究内容及结构114C/S架构的简介215JAVA技术简介316GUI技术简介317JDBC技术简介32系统分析521课题背景522系统可行性分析5221经济可行性5222操作可行性5223技术可行性523系统开发环境概述6231硬件环境6232软件环境624系统需求分析6241系统功能需求6242系统体系结构设计6243系统的软件结构7244系统功能分析图73系统总体设计931系统设计目的与任务932开发设计思想933系统功能1034系统功能详细设计1035银行排号系统的特点114数据库设计1241数据库需求分析1242数据库概念设计1243数据库逻辑结构设计1344系统的安全性设计145系统的实现1651系统的总体概述1652系统的流程图16521客户端16522业务处理端1653系统界面展示17531客户端界面的实现17532业务处理界面的实现1954部分代码21541客户端21542业务受理端216原型介绍2361客户端2362业务处理功能25结论26参考文献27致谢28外文原文29中文翻译401引言11项目开发背景日常生活中存在大量有形和无形的排队或拥挤现象,如旅客购票排队,市内电话占线等现象。服务系统中,排队问题更是无可避免,据报道,消费者在银行排队中最长平均等待时间是40MIN,整体平均时间是14MIN。银行排队的拥堵带来的不仅仅是消费者的烦躁,焦虑情绪,也给银行业务的顺利开展造成的很大的影响。一寸光阴一寸金,我国是一个发展中国家,时代的发展,经济的发展告诉人们时间的宝贵,人们在生活也越来越追求高效率高品质,我国有13亿人口,在银行这样人满为患的地方,将大量的时间浪费在排队上,尤其有时候还会出现插队的现象,不免造成了消费者的不满心理。随着社会经济的发展,计算机已经走进了千家万户,社会实现了网上购买,送货到家等等,这也造成了人们对服务品质的要求越来越高,当人们走进银行,如果还是前挤后拥的排队,那显然与这个现代化的社会不相符,针对原始排队存在的一些不方便,不安全,不人性化的一些问题,基于计算机我们开发了银行叫号系统,客户可以根据自己的时间自主选择柜台,而且客户了解了自己排队大概需要的时间,就可以自由安排自己的时间,这不仅解决了拥堵的现象,也让人们保持了愉悦的心情,也同时提高了银行工作人员的处理事情的效率。银行排号系统在国内也不是一个新的名词,我国很多的银行都实行了此种叫号方法,并且取得了一定的成就。12项目研究的意义系统按序自动安排人们到最合适的窗口进行服务,具有随机性,真正实现了避免发生排错号、插队等情况和混乱、嘈杂的现象,减少许多不必要的纠纷。营造平等、合理、有序的良好环境,给病人带来轻松愉快的心情。优化工作环境,减少工作失误,提高工作效率。系统的多种功能带来了工作的灵活和变通。如暂停、转移、特叫等。系统实时提供服务和排队的动态信息,并可利用网络传送到远程计算机进行实时监控。根据提供的实时动态信息,科学设置岗位,提高服务效率。根据系统生成的多种统计报表,进行准确的量化考核,提高业务员与管理者的积极性。提高服务质量,提高管理水平,树立良好形象,有利于提高公司的经济效益和社会效益。13论文的主要研究内容及结构本课题的研究目的,是力图通过对分层架构思想、设计模式、JAVA和网络编程技术等论题的研究,寻找一种合理、简练、通用、易用、安全、具有良好的可维护性、可扩展性并且融入最新技术元素的,可移植性好的模式,而且要通过一个完整的系统实例展现出来。具体的研究内容如下1通过使用JAVA语言实现了本系统的整体架构。2主要模块分为客户端和服务器两大模块。3分模块实现了本系统的每个子模块和用户界面。4通过学习ER模型和SQL的相关知识,在对牌号系统进行了详尽的分析下,使用SQL建立一个以ER模型为基础的数据库。5探讨了系统实现中设计的关键技术问题,新的开发模型的设计、三层架构的设计与实现以及用户的访问控制的实现。该论文的第一章是引言,介绍了项目开发的背景及意义,还有项目开发中用到的一些技术的简介,包括C/S、JAVA、GUI、JDBC等;第二章介绍了系统分析,重点介绍了系统的可行性分析,系统的需求分析,其中包括业务流程图、系统用例图、逻辑模型图、体系结构图等;第三章介绍了系统的整体设计,重点介绍了开发设计思想,系统详细功能设计及系统总体框架等;第四章介绍了系统的数据库设计,重点介绍了数据库的概念设计及逻辑结构设计等;第五章介绍了系统的实现,主要介绍了一些所用到的关键技术、系统程序执行流程、以及系统的实现,其中分别介绍了系统主界面实现、服务端取号的实现、客户端业务处理的实现等,文中详细论述了系统实现的各个步骤;第五章对原型系统的简要介绍;最后是对本人的工作做出了总结并展望后继的工作。14C/S架构的简介传统的应用体系结构模式主要有两种C/SCLIENT/SERVER结构模式B/SBROWSER/SERVER结构模式。C/S(CLIENT/SERVER)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到CLIENT端和SERVER端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是C/S形式的两层结构,由于现在的软件应用系统正在向分布式的WEB应用发展,WEB和CLIENT/SERVER应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。C/S体系结构的优势与劣势1应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。2数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。3C/S架构的劣势是高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。15JAVA技术简介JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SUNMICROSYSTEMS公司于1995年5月推出的JAVA程序设计语言和JAVA平台(即JAVASE,JAVAEE,JAVAME)的总称。JAVA技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,JAVA更具备了显著优势和广阔前景。JAVA语言的特点如下语法简单,功能强大、分布式与安全性、与平台无关、解释编译两种运行方式、多线程、动态运行、丰富的API文档与类库。16GUI技术简介图形用户界面(GRAPHICALUSERINTERFACE,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。JAVA的图形用户界面由各种组件(COMPONENT)构成,在JAVAAWTAWT包和JAVAXSWING包中定义了多种用于创建图形界面的组件类。GUI是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人机环境三者作为一个系统进行总体设计。这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。GUI即人机交互图形化用户界面设计。纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到GUI在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事GUI的研究与设计,同业间也成立了若干机构,以互相交流GUI设计理论与经验为目的。随着中国IT产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。17JDBC技术简介JDBC(JAVADATABASECONNECTIVITY,JAVA数据库连接)是一种用于执行SQL语句的JAVAAPI,可以为多种关系数据库提供统一访问,它由一组用JAVA语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问SYBASE数据库专门写一个程序,为访问ORACLE数据库又专门写一个程序,或为访问INFORMIX数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将JAVA语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是JAVA语言“编写一次,处处运行”的优势。JAVA数据库连接体系结构是用于JAVA应用程序连接数据库的标准方法。JDBC对JAVA程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。JAVA具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是JAVA应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了JAVA的功能。例如,用JAVA和JDBCAPI可以发布含有APPLET的网页,而该APPLET使用的信息可能来自远程数据库。企业也可以用JDBC通过INTRANET将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有WINDOWS、MACINTOSH和UNIX等各种不同的操作系统)。随着越来越多的程序员开始使用JAVA编程语言,对从JAVA中便捷地访问数据库的要求也在日益增加。MIS管理员们都喜欢JAVA和JDBC的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,JAVA和JDBC可为外部客户提供获取信息更新的更好方法。JDBC连接数据库的六大步骤注册驱动创建数据库的连接获得运输SQL语句的载体STATEMENT执行SQL语句对SQL语句执行结果(RESULT)的处理回收资源。2系统分析21课题背景取票进队、排队等待、叫号服务等功能,诠释了人性化的服务理念,舒缓顾客等的急躁情绪使人们在等候服务的过程中拥有一个相对自由的空间,是科技以人为本的真正的跨入另一个世纪,随着经济全球化的大浪潮,社会的进步推动着各行各业的竞争逐渐加剧,促使各行各业树立新的服务观念以改变旧的工作方式,适应时代的需求。由于各行各业的信息化、智能化建设越来越急,整个社会对行业办事效率的要求也越来越高。本文设计了这个功能实用的牌号系统,解决服务行业里混乱的场面。信息技术的发展,使计算机已经在社会的各个方面显出来。原来呆板固化的排队方式已经落伍,受惠于计算机的普及,转变为便于操作的计算机控制,节省大量时间,使原本用来排队的时间用于自己关注的信息。同时由于操作方便大大提高了业务员的工作效率,也提高了其业务素质。牌号系统在现今的服务行业还是个比较新鲜的名词,利用这种先进的牌号系统管理模式将网络技术、通信技术相结合,采用TCP/IP通信连接,使企业的服务机构通过网络与顾客通信,完成对顾客的管理。牌号系统实现每个客户端可以迅速建立与服务器端的实时通信连接,并且操作互动的业务。顾客不仅可以进行取号业务,还可以进行一些其它操作,业务员除了进行业务处理还可以对数据库进行一些增删、改查等操作。随着网络编程技术研究的不断深入和完善,国内外越来越多的企业己经开始使用牌号系统,中国建设银行,上海长海医院等地方已开始使用,并且取得了相当的业绩和成果。22系统可行性分析可行性分析的任务,并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决,必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。采用现代化的计算机软件管理系统,可以有效的优化银行排号系统,使其高效的发挥最大作用,能够很方便的为使用者提供服务,其可行性分析如下221经济可行性本系统开发周期短,且耗费资金少,具有一定的实用价值。另外该系统的开发不需要用到很复杂的应用环境,开发也不需要很大的经济支持,是可行的。222操作可行性如今,网络走进了千家万户,在社会的各方各面,人们对计算机的操作已经达到了很熟练的地步,对于本系统而言,使用者分为两类第一类是客户;第二类是银行业务员,就这两类人而言,本系统都是简单易行的,稍作指点就可以操作,所以是操作方面完全是可行的。223技术可行性技术可行性主要分析软、硬件方面能否满足项目开发的需求,决定着能否顺利的完成工作。本系统采用JAVA语言编写,JAVA语言是一种面向对象的语言,能够通过提供最简单的方法来解决各种问题,另外具有分布式、解释执行、安全、体系结构中立、可移植、高性能、多线程以及动态性等多个优点;数据库关系系统采用的是MYSQL,它能够处理大量数据,同时保持数据的完整性、安全性。因此本系统的开发平台已成熟可行。此系统对于开发环境的要求,都是JAVA程序员平时使用的开发环境,硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。23系统开发环境概述231硬件环境基本配置如下机型HP6450B处理器INTELI5232软件环境采用C/S架构,使用ECLIPSE运行环境开发平台ECLIPSE操作系统WINDOWS7数据库服务器MYSQL使用技术JAVAGUI、JDBC、SOCKET、XML24系统需求分析通过使用银行排号系统实现智能排队改善在生活中排队秩序混乱以及乱插队的问题,可以有效的解决客户在服务中所遇到的各种排队问题。241系统功能需求结合银行实际排队问题和分析银行客户的需求,设计研发的银行排队系统主要具备如表所示的系统功能需求。表21系统功能需求功能需求描述排队功能及各种服务管理通过编写系统,实现智能化排队和服务的有效管理排队序列通告和柜台窗口分类实时显示排队序列和窗口划分银行职员控制客户显示端呼叫客户进行服务通过该系统,实现排队系统自动叫号242系统体系结构设计银行排队系统的体系结构如下数据库JAVAGUISERVICE层DAO层POJO类JDBC数据持久化层调用调用业务逻辑层数据访问层表示层图21银行排队系统的体系结构图243系统的软件结构银行牌号系统服务器端客户端取号功能统计功能弃号功能查询功能通知功能登录功能叫号功能统计功能移除功能查询功能人员管理系统管理业务员管理员图22系统的软件结构图244系统功能分析图1服务器端功能分析图服务器端功能分析图如图所示服务器端取号查询弃号通知客户图23服务器端功能分析图2客户端业务员功能分析图客户端叫号处理查询移除显示业务员图24客户端业务员功能分析图3客户端管理员功能分析图客户端业务员管理系统重置管理员图25客户端管理员功能分析图3系统总体设计社会生产力的发展与进步,积极推动了人类思想的革新与创造,从而一系列新生事物的诞生接踵而来。但是新生事物的生存与延续取决于人类的检验,因而它的可行性至关重要。万事求得发展的根本保障是物质基础,经济的飞速发展推动生活水平显著提高。所以,生活质量的标准化、多样化使市场需求处于必不可少的地位,而市场规模也随之扩大,因此,经过详细的调查,目前在我国,虽然服务行业蓬勃地发展起来,但是基本上都还在使用排队方式办理业务。在此方式下,不仅秩序混乱,且效率低下,顾客还怨声载道。显然,随着服务行业的发展,这种形式已不再适合新型服务行业的要求,对行业的发展也有一定的限制,直接导致了工作人员的工作效率低下。因此本文设计了这个功能实用的银行牌号系统,解决银行服务行业里甚至其它类似服务业的混乱场面。31系统设计目的与任务系统设计的主要目的将系统分析和规划阶段所提出的所有问题、模块以及待解决的问题转换成在计算机和网络的基础上实现的方案。系统设计的主要任务根据系统分析和规划中对系统的功能、体系结构和软硬件的要求,实施可行的适合系统整体结构的方案,并选择合适的计算机和软硬件设备,来完成系统。32开发设计思想该银行牌号系统的总体的系统设计思想如下分层架构思想在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为数据访问层、业务逻辑层(又或成为领域层)、表示层。数据访问层负责与数据源的交互,即数据的插入、删除、修改以及从数据库中读出数据等操作。对数据的正确性和可用性不负责,对数据的用途不了解,不负担任何业务逻辑。业务逻辑层负责系统领域业务的处理,负责逻辑性数据的生成、处理及转换。对流入的逻辑性数据的正确性及有效性负责,对流出的逻辑性数据及用户性数据不负责,对数据的呈现样式不负责。表示层负责接收用户的输入、将输出呈现给用户以及访问安全性验证。对流入的数据的正确性和有效性负责,对呈现样式负责,对呈现友好的错误信息负责。优点(1)开发人员可以只关注整个结构中的其中某一层;(2)可以很容易的用新的实现来替换原有层次的实现;(3)可以降低层与层之间的依赖;(4)有利于标准化;利于各层逻辑的复用。牌号系统的特点如下可操作性界面简易,使用通用的菜单式风格,使用直观,操作简便;容量大支持联网,不限制取号数量,可满足大型客流场所的使用;高性能系统的所有对象都存放到数据库中,表示逻辑与业务逻辑相互分离,保证系统的处理能力;伸缩性它能适应不同的应用环境,对于只实现基本功能的服务大厅,如银行系统,可以采用微机控制的牌号系统,无需单独配置系统电脑,即可实现自动排队叫号的功能;可靠性能保证长时间的正常运行,同时系统有比较好的安全机制,提高了安全性能。33系统功能该系统功能从服务器端和客户端角度来说可分以下两大模块,具体每一个模块又分为几个小模块1服务器端(1)取号功能(2)统计功能(3)删除功能(4)查询功能(5)通知功能2客户端A、业务员同一时刻允许多个工作台办理业务。用户通过在服务器端的通知功能知道去哪个工作台办理业务,工作台显示正在为哪个号码的用户办理业务。(1)登录功能(2)叫号功能(3)统计功能(4)移除功能(5)查询功能B、管理员根据一个季度或一年统计的业务量,对工作台进行适当的增加业务员和删除业务员;管理员重置系统,使每天或每月系统更新一次,便于统计。(1)业务员管理功能管理员对业务员进行添加或删除,控制每位员工每天的工作量。(2)系统重置功能管理员对统计系统进行重置,方便在一定的时间对整个系统的工作量进行统计。34系统功能详细设计该系统主要是分为两个大模块客户端和业务处理端,而每个模块有分了很多小的模块,具体功能如下(1)客户端表31客户端功能模块描述叫号功能客户点取号,服务器把号码存放到数据库,取号完成统计功能数据访问层从数据库中查出所有取票人数和等待人数在服务器端界面显示弃号功能弃除当前排队给客户的号码查询功能客户在此了解所有客户的取票情况及处理情况通知功能显示通知某用户某工作台办理业务(2)业务处理端表32业务处理端功能模块描述登录功能业务员点此登录进行业务处理叫号功能业务员处理完一位客户后,点此可以叫下一位客户统计功能从数据库中获取所以排队客户进行统计,得到目前在排队的人数删除功能业务员有权限对数据库的数据进行操作们,可以直接进行删除查询功能业务员可以查询客户的排队情况和业务处理情况35银行排号系统的特点(1)可操作性界面简单易懂,不论是客户端还是业务处理端,都很容易操作。(2)性能好所有数据都存放在数据库中的,保证了逻辑层和业务逻辑层是相互分离开的,很好的保证了系统的处理能力,提交了效率。(3)可靠性该系统可以长时间的运行,在银行这样通常业务处理频率比较的高的场所是很必要的,另外该系统的安全性能很高。4数据库设计41数据库需求分析根据银行排号系统总体处理流程和模块分析,该系统需要设计的数据项和数据结构如下(1)客户信息。包括的数据项有客户ID,客户取号的号码、取号时间、客户服务类型和客户的状态。(2)业务单信息。包括的数据项有业务ID、业务处理时间、业务受理所属台号,客户办理业务的类型,以及客户的号码。(3)业务员信息。包括的数据项有业务员登陆姓名、登陆密码。(4)自动出号信息。包括的数据项有ID、客户服务类型。根据之前分析过的流程,得出的数据项就可以完成数据库设计。42数据库概念设计根据数据库需求分析和用户的需求设计出系统中用到的各个实体以及各个实体之间的关系,由需求分析可以看到该设计中的实体有客户信息实体,业务单信息实体,业务员信息实体和自动出号信息实体。数据库需求分析和概念设计是设计阶段的基础,可以保证设计阶段的顺利进行分析。各个实体的ER图及其关系描述如下顾客信息顾客ID状态标志服务类型取号时间顾客牌号图41顾客信息实体图业务端业务端ID服务类型服务台编号处理时间状态标志图42业务端信息实体图业务员信息业务员ID业务员密码业务员姓名图43业务员信息实体图管理员信息管理员ID管理员密码管理员姓名图44管理员信息实体图自动出号信息ID业务类型图45自动出号信息实体图业务端信息自动出号顾客信息基于基于图46实体之间关系ER图43数据库逻辑结构设计在数据库概念设计阶段研究得到的实体以及实体间的关系的基础上,形成各个表格的关系,得到下面各个表格,每个表格形成数据库中的每张表。(1)顾客表CUSTOMER_TBL表CUSTOMER_TBL用来保存顾客取票信息,结构如表41所示。表41CUSTOMER_TBL的结构字段名字段类型中文描述备注非空主键IDNUMBER唯一标识CUSTOMERIDNUMBER顾客牌号UNIQUETAKEDATEDATE取票日期TYPENUMBER服务类型1VIP2普通FLAGNUMBER处理标记UNIQUE(2)业务端表WORK_TBL表WORK_TBL用来保存业务端信息,结构如表42所示。表42WORK_TBL的结构字段名字段类型中文描述备注非空主键IDNUMBER唯一标识PROCESSDATEDATE处理日期WORKIDNUMBER服务台编号TYPENUMBER服务类型1VIP2普通NEXTIDNUMBER顾客牌号UNIQUE(3)业务员表WORKMEN_TBL表WORKMEN_TBL用来表示业务员信息,结构如表43所示。表43WORKMEN_TBL的结构字段名字段类型中文描述备注非空主键IDNUMBER唯一标识NAMEVARCHAR220用户名PASSWORDVARCHAR220密码(4)自动出号机SRT_TBL表SRT_TBL用来产生唯一的号票信息,表结构如表44所示。表44SRT_TBL的结构字段名字段类型中文描述备注非空主键NEXTIDNUMBER20顾客牌号TYEPNUMBER7服务类型UNIQUE(5)管理员ADMIN_TBL表ADMIN_TBL用来表示业务员信息,结构如表45所示。表45ADMIN_TBL结构字段名字段类型中文描述备注非空主键IDNUMBER唯一标识NAMEVARCHAR220用户名PASSWORDVARCHAR220密码44系统的安全性设计系统的安全性设计是很重要的,尤其是想银行排号系统这样有很多人使用的系统,在安全性方面也就显得尤为重要,才能够保证数据的安全性,保证该系统的运行和银行的业务顺利进行。系统安全性设计可以分为以下几个方面(1)程序设计方面采用的JAVA语言,JAVA的安全机器可以保证这方面的安全性。(2)程序部署和操作系统方面保证程序设计不会出现随意删除和更改数据的操作,另外操作上一定要保证权限安全。(3)数据库方面系统中的数据都是与数据库连接的,登陆数据库都是需要用户名和密码的,只有有权限的人员才能够进行操作,有效的保证了数据的安全。数据库选择的是MYSQL,MYSQL的主要特点就是高性能、可靠性、安全性。另外,图形化的用户界面,使系统管理和数据库管理更加直观、简单。(4)网络方面和物理方面网络和物理因素是由服务器方面的安全性决定的,其因素也有很多,包括机房的硬件设施,备份,防火墙之类的和网络的稳定性。5系统的实现51系统的总体概述此银行排号系统主要是基于JAVAGUI设计的系统,主要实现采用了SCOKET实现了点对点通信通信、C/S和多线程来实现功能,该系统由两部分组成在实现过程中,客户取号的一端设置成了SERVER端,业务员及管理员处理一端设置成了CLIENT端,所以必须先启动SERVER端,才能启动CLIENT端。在整个系统中SERVER端实现了顾客的取号功能和一些查询删除等功能,CLIENT端实现了业务员登录和叫号处理以及一些查询删除等功能,同时,CLIENT端也实现了管理员的登录和对业务员的管理以及系统重置的功能。52系统的流程图521客户端选择业务用户VIP业务普通业务取号退出查询统计弃号图51客户端流程图用户进入大厅后按流程图中这样的操作,首先可以根据自己的客户种类选择叫号,每个客户叫号成功后,服务器往数据库存放客户信息,客户类型,业务类型,叫号时间和该客户之前有几人在等待,客户同时也可以查询之前每个客户的处理情况。522业务处理端业务员需登录进入服务状态,每位业务员在进入服务台之前必须输入正确的用户名和密码,之后可输入服务台号,选择出来的服务台的编号,1号台只处理VIP用户,其它VIP用户和普通用户均可处理,但优先处理VIP用户。业务员可查询当前等待的人数,并可以进行叫号处理业务。业务员登录选择服务台号VIP用户普通用户1号VIP服务台2号普服务台3号普通服务台N号普通服务台查询等待人数叫号处理退出ID1ID1图52业务处理端流程图管理员需登录进入管理状态,管理员在进入管理状态之前要输入正确的用户名和密码,之后可以对管理业务进行选择,业务员管理或系统的管理,业务员的管理又包括对员工的删除和添加。管理员登录人员管理系统添加员工删除员工退出重置系统图53业务处理端流程图(二)53系统界面展示531客户端界面的实现用户在取号的之前必须先启动服务器,才能进行取号。1、进入界面图54服务器端主界面服务器端主界面采用菜单式风格,用户可以根据需求进行取号,查询,删除等功能。2、客户进行排号,选择是VIP客户还是普通客户,每个客户叫号成功后都可以再左边界面上看到自己的排号信息。在整个系统中取号是一个至关重要的环节,也是设计它的目的所在。它的实现与其他模块紧密相连,它在SERVER端实现的,取号分为两个服务类型VIP业务和普通业务。首先在数据库里建立SRT_TBL这张表,它用来存储自动生成的客户牌号。它里面设置两个字段,一个是NEXTID,一个是TYPE类型。NEXTID是用来标识顾客的牌号的,而TYPE则是用来表示顾客所要选取的服务类型,VIP业务和普通业务。当点击其中的一个业务时它就会产生一个牌号,这个牌号是通过在DAO层的一个方法实现的,DAO层通过JDBC连接数据库实现数据的持久化。在取完号的同时调用DAO层的SAVEID方法把这个信息保存在CUNTOMER_TBL表中。55排号界面3、弃号操作56弃号操作4、显示各个客户的排队和处理情况57查询界面532业务处理界面的实现这个模块的实现主要是在不同的业务员登录后选择了服务台以后才开始业务处理,业务处理的实现首先是SERVER端调用SOCKETTHREAD这个多线程类,在这个类的RUN方法里调用了SERVICE层的UNPROCESSINTTYPE方法从数据库中拿到NEXTID牌号),CLIENT端从SERVER端的输出流里获得牌号,进行处理。处理的时候会显示提示信息。因为各个单位所有的服务台是不确定的,所以在这里采用了多线程,可以按需求增加服务台数量。每增加一个服务台就启动一个线程,实现了多用户同时在线服务。由于采用了TCP协议,也实现了点对点通信。在服务台界面设计时,把ID1设为VIP服务台,ID1的设为普通服务台。当取VIP业务的牌号大于2时候,普通服务台优先处理VIP业务,当处理的低于2的时候就处理普通业务,如没有需要处理的普通的业务就停止业务处理。1、业务员首先进行登录系统并选择服务窗口,业务员信息都在数据中已经保存58营业员登陆界面59选择服务台界面2、处理界面点击开始受理进行叫号工作,处理完一位点击下一位顾客,自动叫下一位客户,等待人数也实现更新,统计可以看到总等待客户人数以及各位客户现在的业务受理状态。510业务处理界面511业务员统计54部分代码541客户端(1)产生号票NUMDAONEXTID1CUSTOMERCUSTOMERNEWCUSTOMERNUM,1(2)把顾客取到的号码存放到数据库中,调用FINDUPROCESS方法查找没有被处理的号码并在界面上显示。DAOSAVEIDCUSTOMERDAOFINDCUSTOMERNUM,1LISTLISTDAOFINDUPROCESS1INTNUM1LISTSIZE1542业务受理端1)如果输入的服务台编号为1,服务台专门处理VIP业务。并且客户端通过流输入把信息传到服务器端获得相应的信息再返回给客户端IFID1PWPRINTLN“VIP“IDICUSTOMERDAODAOICUSTOMERDAOBEANFACTORYGETPOJO“CUSTOMERDAO“IWORKDAOWORKDAOIWORKDAOBEANFACTORYGETPOJO“WORKDAO“2)把业务员的信息保存到数据库中WORKWORKNEWWORK1,1,NUMWORKDAOSAVEWORKWORK3)查找未处理的VIP业务人数并且在标签里显示LISTLISTDAOFINDUPROCESS1INTNUM1LISTSIZELBLSETTEXT“正在为VIP业务“NUM“号顾客办理业务“有“NUM1“人等待“4)ID不等于1为普通用户同样通过流输入把信息传递给服务器端获得相应的信息IFID1PWPRINTLN“NORMALS“IDSTRINGTEMPBRREADLINEINTINDEX0INTNUM05)判断是否为VIP客户,如果是,在普通服务台进行优先业务处理。IFINDEXTEMPINDEXOF“VIP“1ICUSTOMERDAODAOICUSTOMERDAOBEANFACTORYGETPOJO“CUSTOMERDAO“IWORKDAOWORKDAOIWORKDAOBEANFACTORYGETPOJO“WORKDAO“NUMINTEGERPARSEINTTEMPSUBSTRINGINDEX3IFNUM0WORKWORKNEWWORKID,1,NUMWORKDAOSAVEWORKWORK6)查询还有多少VIP客户没有处理LISTLISTDAOFINDUPROCESS1INTNUM1LISTSIZE7)判断是否为普通客户ELSEIFINDEXTEMPINDEXOF“NORMALS“1ICUSTOMERDAODAOICUSTOMERDAOBEANFACTORYGETPOJO“CUSTOMERDAO“IWORKDAOWORKDAOIWORKDAOBEANFACTORYGETPOJO“WORKDAO“NUMINTEGERPARSEINTTEMPSUBSTRINGINDEX76原型介绍本节按架构划分为服务器、客户端两大部分,下面选择具有代表性的功能界面予以简单的介绍。61客户端1、客户端主界面图61客户端主界面界面这个界面主要包括六个功能区域取号功能点击VIP会员或者普通会员按钮会产生号票,会看到如图图62叫号界面弃号功能点击弃号会出现VIP,NORMAL两个菜单点击会删除当前号票会看到如图图63统计界面统计功能点击统计功能对取票总数、未处理数进行统计,会看到如图图64统计界面查询功能点击查询功能会看到如图图65查询界面通知功能在业务员处理业务时会在这里提示XX请到XX柜台,会看到如图图66通知界面62业务处理功能1、业务员登陆功能在客户端先进行登录,登录完毕选择服务台号进入服务台界面,界面如下图67登陆界面图68选择服务台界面2、处理界面图69处理主界面610业务员统计界面结论随着软件系统规模的增大和复杂度的提高,整个软件系统的体系结构和规格说明显得越来越重要。在此背景下,人们认识到软件体系结构的重要性,并认为对软件体系结构系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的途径。本系统可解决排队混乱问题。主要包括两大模块,十个小功能。主要是实现取号,叫号功能。在取号的设计中用到了高低值算法,也使用了多线程技术,目的是可以使多个业务员同时在线进行业务处理。系统中还使用了XML解析、资源配置文件,与以前的同类系统相比,它把容易变动的信息写到配置文件中,需要更改的时候只要改动配置文件中的信息就可以,不需要改动已封装好的代码,实现低耦合的特性,并且重用性也很好。使用C/S架构开发的系统也有不足之处首先,使用SWING作为界面开发技术,代码量庞大,实现的界面却较粗糙、不美观。其次,由于在设计中考虑问题有些欠缺,导致系统功能不完善,有些功能不太合乎业务逻辑。比如把用户取号设置在了服务器端,还有在顾客取号端设置了删除功能,不合乎业务逻辑也降低了系统的安全性。随着JAVA技术的不断发展,牌号系统涉及的领域越来越广,它的复杂性也变得越来越高,与此同时随着各种硬件的不断发展以及WEB技术的发展,牌号系统会越来越多的应用在不同领域。因此仍需要继续研究,下一步应对WEB服务以及面向对象的方法和技术进行深入研究。此外,本课题采用了安全性较好的JAVA技术、MYSQL数据库管理系统进行研发,没有专门涉及安全性的探讨研究,但这一特性的研究必不可少,特别是在企业管理这一类高敏感的系统中,这是下一步工作的重点问题。参考文献1郎波JAVA语言程序设计北京清华大学出版社20102刘惠萍,刘亮亮,张力C/S模式下的三层架构N科技信息20063桂浩,陈刚,范昊XML开发技术教程M武汉大学出版社20084王小科,罗二平JAVA实用教程人民邮电出版社2012(11)5刘小兵JAVA异常处理与编程方法2005,036王珊数据库系统概论(第4版)北京高等教育出版社20067SOFTWAREENGINEERINGAPRACTITIONERSAPPROACHSIXTHEDITION20078THINKINGINJAVA,FOURTHEDITION北京机械工业出版社,20079BLOCH,JEFFECTIVEJAVAPROGRAMLANGUAGEGUIDE,2E200910JOSHUABLOCHEFFECTIVEJAVAPROGRAMMINGLANGUAGEGUIDEJAVASERIES200111阎宏JAVA与模式M电子工业出版社,200212齐治昌

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论