查智基于MVC的客户管理子系统的设计与实现.docx
- 文档编号:6209409
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:47
- 大小:510.08KB
查智基于MVC的客户管理子系统的设计与实现.docx
《查智基于MVC的客户管理子系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《查智基于MVC的客户管理子系统的设计与实现.docx(47页珍藏版)》请在冰豆网上搜索。
查智基于MVC的客户管理子系统的设计与实现
学号________________
密级________________
武汉大学本科毕业论文
基于MVC的客户管理子系统的设计与实现
院(系)名称:
国际软件学院
专业名称:
软件工程
学生姓名:
查智
指导教师:
李晓剑
二○○九年五月
郑重声明
本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。
尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。
对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。
本学位论文的知识产权归属于培养单位。
本人签名:
日期:
s
BACHELOR'SDEGREETHESIS
OFWUHANUNIVERSITY
TheResearchandImplementationofClientManagementSystemBasedonMVC
College:
Subject:
SoftwareEngineering
Name:
Zhazhi
Directedby:
May2009
摘要
随着金融业的不断发展,各商业银行越来越注重信用卡业务的开拓,信用卡管理的信息化,也随着计算机技术的发展,在不断地完善提高。
信用卡管理信息的多样化和数据资源的复杂性,都对信用卡管理软件的实现模式提出了很高的要求,而基于Web 的传统的软件构架已经不能满足软件设计的要求,很多新兴技术的发展和应用正在不断地改善传统的开发设计构架。
本文结合信用卡管理的需求和当前比较先进的设计思想,利用MVC设计模式进行设计,并对该设计模式进行了改进,加入了数据持久层和业务逻辑层的实现。
Struts是基于MVC模式的Web应用开发框架。
它有效的分离了表示层和业务逻辑层,但它并没用对复杂的数据持久层提供支持。
而Hibernate提供了灵活的数据持久层支持。
因此通过将这两个框架整合起来,并结合贯穿整个表现层、业务层、持久层的Spring,可以得到一个开发灵活、低耦合及易扩展的企业应用完整解决方案。
UML(UnifiedModelingLanguage)是一种通用的可视化建模语言。
由于其定义良好、易于使用、功能强大且普遍适用的特点,并且融合了当前一些面向对象的主要概念和技术,已经成为软件开发事实上的标准。
结合商业银行相关标准,本文设计并实现了一个基于Struts、Hibernate和Spring的信用卡管理系统中的客户管理子系统。
系统采用UML语言和面向对象的方法进行系统分析和设计,从而降低了开发风险,提高了开发效率。
系统基本实现了信用卡客户管理的功能,如账户管理、存取款管理、结算管理、账单管理等。
关键词:
MVC;Struts;Hibernate;UML
ABSTRACT
Withthebankingbusinessandthecomputertechnologydevelopingfast,creditcardmanagementisbecomingmoreandmoreimportant,andtheinformatizationofcreditcardmanagementisdevelopingwell.Sincetheinformationrelatedtocreditcardmanagementisverymultipleandthedataisverycomplex,therequirementtothedesignmodeofcreditcardmanagementsoftwareishigh;what’smore,thetraditionalWebdesignmodecannevermeettherequirement.Combinedwiththesituationofcreditcardmanagementandthepresentadvanceddesignmethod,thethesisdevelopsthesoftwarebasedonMVCmodelwithaddingadatapersistencemanagerlayerandabusinesslogiclayer.
StrutsisadevelopmentframeworkbasedonMVCpatternforWebapplications.Itprovidesawaytoseparatepresentationlayerandbusinesslogiclayer,butitdoesnotsupportcomplexdatapersistentlayer.Hibernateisaframeworkforflexibledatapersistentlayer.Thus,bycombiningthetwowiththeSpringwhichthroughoutthepresentationlayer,businesslayer,persistencelayer;wecanobtainacomprehensivesolutionforenterpriseapplicationintegrationwhichcanachieveflexibledevelopment,loosecouplingandexpansibility.UMLisacommonly-usedvisualmodelinglanguage.Becauseofitsfeaturessuchaswelldefinition,easytouse,powerfulfunctionandpervasiveusage,andintegrationwithobject-orientedconceptsandtechnology,ithasbecomeadefactostandardofsoftwaredevelopment.
Combinationofcommercialbank-relatedstandards,wedesignandimplementaclientmanagementsystemofcreditcardmanagementsystembasedonStruts,HibernateandSpring.WeapplyUMLmodelinglanguageandobject-orientedmethodtoconductingsystemanalysisanddesign.Bydoingthis,theriskofsoftwaredevelopmentisreducedandtheefficiencyisincreased.Thissystemmeetsthebasicfunctionalrequirementoftheclientmanagementincludingaccountmanagement,depositmanagement,billingmanagement,billmanagement.
KeyWords:
clientmanagementsystem,MVC,Struts,Hibernate,Spring,UML
第1章引言
1.1选题的目的和意义
随着经济全球化的推进与中国金融业改革的不断深化,人们的生活消费方式也有了显著的变化,最明显的就是人们随身携带的不再是大量的现金,而是一张张小而轻巧的信用卡。
信用卡(CreditCard)作为非现金交易付款方式,以其便于携带、使用方便、交易安全等优点,在欧美国家得到了普遍地使用。
本世纪初,信用卡开始在中国流行,近几年来得到了迅速的发展,据统计,截至2008年6月30日,中国信用卡发行量已猛增到1.22亿张。
目前,多数商业银行都推出了信用卡业务,随着发卡量的增加,如何提高信用卡管理与结算效率并将信用卡管理人员从繁杂的手工劳动中解放出来,成为一个迫切需要解决的问题。
在这样的背景之下,“软酷网”卓越实验室研发六部经过分析研究,选择了“信用卡管理系统”作为实训项目。
该系统采用便于使用与维护的B/S开发模式,这样信用卡管理人员只需要通过浏览器便可在银行内网中进行各项管理操作,同时还采用了基于MVC(Model-View-Controller)的Struts+Spring+Hiberate框架进行软件的开发,能够很好的实现模型与表示层的分离,由控制器来进行业务流程控制,符合J2EEWeb应用系统开发的基本要求,也有利于软件后期的升级与维护。
1.2信用卡管理系统的发展状况
近年来,随着网络技术和金融业的不断发展,各商业银行越来越注重信用卡业务的开拓,因此对信用卡管理提出了更高的要求。
改变原有的管理模式,运用先进的手段进行管理,已经成为现在信用卡管理的必然选择。
这样,各种针对信用卡管理的应用软件不断涌现,并且经历了从单机版到网络版的转化。
网络信用卡管理软件的发展更加有力地提高了信用卡管理水平,借助金融业网络信用体系构建信用卡管理系统,可以合理利用Internet的网络资源和Web跨平台的数据访问能力,通过网络来进行交易记账、结算及存取款,信用卡用户们可以通过浏览器来直接参与信用卡的管理。
同时,信用卡系统的管理人员可以很方便地获取及时、准确、全面的数据和相关信息,将银行卡部员工从繁琐的手工劳动中解放出来,提高生产率,进而从整体上提高了信用卡管理的水平。
然而信用卡管理系统的设计也不能一劳永逸,由于各商业银行经营理念的不同、结算体系的不同及信用评估的不同,而各不相同,没有统一的标准,也很难建立一个统一的标准,系统的适用性、通用性很难实现。
所以,现在信用卡软件的开发设计在向各种流行的设计模式靠拢提高系统的可移植性和可扩展性的同时,还要考虑到自身信用卡管理的特点,以便更好地满足信用卡管理的需求。
1.3论文研究内容
当前计算机技术越来越趋于成熟,各种设计思想不断涌现,MVC成为适用于各种大型Web应用的构架技术。
它的目的就说最大限度地降低系统各部分之间地耦合度,提高系统的可扩展性,提高代码的重用率[1]。
基于MVC的J2EE技术的应用更是广泛,本文这里也主要采用Struts框架来实现上述技术,并以此作为信用卡管理子系统的技术解决方案。
本文的主要工作如下:
(1)详细介绍了MVC开发模式的设计思想,分析了两种常见的JSPModel的优缺点,并介绍了实现MVC设计思想的Struts框架,并分析了Struts的工作流程,以及Struts开发的优势。
(2)以MVC模型为设计思想,运用Struts框架来实现信用卡管理系统的开发设计。
本文采用当前比较流行和便捷的B/S模式开发模式,采用Struts框架来实现系统表现层与业务层的分离,更加有利于系统的开发与维护。
进一步在系统的业务实现层和数据库之间加入了数据持久层,使得系统对数据库的访问实现面向对象的设计。
简单介绍了数据持久化技术以及本文实现数据库持久层的工具Hibernate持久化框架。
(3)对信用卡系统进行总体的分析,对信用卡管理中主要业务进行了分析,并进一步确定了系统的技术构架。
以客户管理子模块为例,说明系统开发设计的流程和具体的业务实现。
介绍了贯穿表现层、业务层、持久层的Spring框架,作为一个依赖注入的容器,对Struts与Hibernate实施监控的同时,且可以做安全、日志工作。
1.4论文结构
本文主要研究在J2EE平台下基于MVC设计模式开发信用卡管理软件WEB应用程序的相关技术,在传统的WEB应用程序开发的基础上,对基本的设计模式进行了改进,采用三层开发模式来降低系统各个模块之间的耦合性,并通过一个具体模块的实现来说明各个层次的设计和实现。
全文共分为五章:
第1章,引言。
介绍了信用卡管理软件的发展现状,并进一步分析了该类软件开发过程中存在的问题;
第2章,信用卡系统总体设计分析。
概括分析说明了信用卡管理的主要业务,在了解用户需求的基础上,设计了系统的总体功能模块,采用了UML语言对系统进行建模;
第3章,系统研发技术。
阐述了MVC设计模式以及常见的JSP设计模式,并介绍了Struts这个用来实现MVC设计思想的开源项目,另外还对引入的数据持久技术和本文实现这种技术的Hibernate持久框架做了介绍,也对整合前两个框架实现依赖注入与切面编程的Spring做了简要介绍;
第4章,客户管理子系统的设计与实现。
通过对该模块的实现,来体现整个设计思想,并介绍了本文实践项目的一些亮点与独到之处;
第5章,系统评价。
主要从系统安全和性能特点两方面来介绍;
第6章,总结语。
总结整个设计,并说明不足及进一步改善的方向。
第2章信用卡管理系统总体分析
2.1系统简介
信用卡管理系统是集账户管理、信用卡管理、用户信息维护、报表信息管理为一体的业各系统,具有灵活的应用架构、费用结构和产品定义,在系统、机构、产品、客户、账户、交易等各个层面均实现参数化,是一个以客户为中心的多产品、多账户、多卡综合应用系统。
2.2信用卡管理系统的总体功能框架
信用卡管理系统主要实现银行信用卡和客户间交易的记账和管理功能。
信用卡管理涉及到的内容很多,但从大体上来看,它的主要业务可以归纳为四个部分:
账户管理、信用卡管理、报表管理、系统管理;主要面对三类用户:
银行普通员工、银行部门经理、系统管理员。
信用卡管理系统的总体功能框架如图2.1所示。
图2.1信用卡管理系统功能结构图
2.3系统的开发原则
(1)可延展性和包容性
系统应具有较好的可延展性和包容性。
系统的可延展性应包括能够很好的兼容已有的系统和能够在今后一段时间内实现对系统软硬件扩展,能有效地保护已有的投资,系统易于扩充升级,既要满足当前业务的需求,又能随时进行扩展和维护。
(2)系统简洁,易使用、易维护
系统的设计符合日常办公运作的需求,功能不仅要实用,还应该简单易学,具有比较友好的用户界面,易于扩充。
整个开发设计层次简单明了,便于管理,易于扩充。
(3)为员工,经理提供良好的信息服务
系统对信用卡信息进行了合理的布局,以便于提供优质、高效的业务管理和事务处理,是系统用户对信用卡账户进行维护,完成信用卡交易记账和管理
(4)可靠运行,安全保密
在该系统的开发过程中,将通过身份认证,权限检查,来解决信用卡管理系统的安全性、保密性问题,确保系统的有效和安全运行。
2.4系统功能概述
信用卡管理系统不仅要管理信用卡使用的各个环节:
如开卡到记账、存取款的业务活动,还要管理所涉及到的各种对象和资源:
如管理员、系统用户、账户、信用卡等;同时信用卡管理系统还要提供相应的算法来结算账单。
其中客户管理模块主要的业务功能实现,将在以下进行相关的介绍。
(1)客户开户申请管理子模块
客户提交开户申请表,进行合法性验证,交给银行员工审核,如果审核通过,将客户信息填入客户信息表,并为客户开通信用卡服务所需的账号,客户开户管理子模块的业务流程如图2.2所示。
图2.2客户开户管理子模块业务流程示意图
(2)账户信息维护子模块
通过对开户客户的消费、取现、透支等交易记录统计,银行员工修改相应账户的信用额度,同时完成账户的销户工作。
该模块的业务流程如图2.3所示。
图2.3账户信息维护子模块业务流程示意图
(3)取款管理子模块
取款管理子模块主要完成取款申请、取款合法性验证、自动完成取款额与可用额、信用额度的核对等,最大限度的实现取款的自动化。
该模块的业务流程如图2.4所示。
图2.4取款管理子模块业务流程示意图
图2.5账单管理子模块业务流程示意图
(4)账单管理子模块
账单管理是信用卡管理中很重要的一部分。
该模块主要列出客户交易账单的信息,并对每月账单进行相应的结算,以便客户进行查询与打印。
该模块的业务流程如图2.5所示。
(5)报表管理子模块
报表管理是信用卡管理中只针对银行经理一个模块。
通过查看报表,银行经理可以了解银行开户、户头信用额、信用卡透支的现状及其发展趋势,清晰的把握信用卡业务的发展脉络,制定出相应的发展策略。
该模块的业务流程如图2.6所示。
图2.6报表管理子模块业务流程示意图
以上描述了客户管理、报表管理的大致功能及其数据流图,而信用卡的管理及系统管理,其业务流程与客户管理开户与信息维护的流程大致相似,因此这里不做过多介绍。
2.5系统技术构架
本系统采用了先进的设计理念和一些主流的技术。
系统采用基于MVC的J2EE技术和Web技术来实现的。
传统的Web技术平台是一个三层结构。
如图2.6所示。
图2.7WEB三层结构示意图
目前,Web技术都是通过Http来实现客户端和服务器的通讯的,对于简单的HTML静态文本来说,Http是一个很好的选择。
但Http却不能很好地应用于复杂的业务处理,因为当用Http进行通讯时,必须以Web服务器作为中介。
然而当同一时刻客户访问量过大时,Web服务器则将成为整个系统的瓶颈。
而基于MVC的J2EE技术能很好地解决以上问题。
根据项目需求分析,确定本系统必须具备的性能有:
(1)具有良好的交互性:
工作内容中有相当大的部分是人机交互,这就要求系统的交互性要强,从而满足需求。
(2)具有较好的可扩展性:
工作的内容和形式具有多变性,从而要求系统具有良好的可扩展性。
(3)良好的可维护性:
系统投入使用后,主要是由管理员承担系统维护的工作,维护人员不定期变动,这就要求系统的可维护性强。
(4)较好的跨平台性:
用户可能使用各种不同的操作系统,而且为了适应今后可能的变化,系统应具有较好的跨平台性。
一个典型的J2EE应用能很好地满足以上的性能要求,它至少包括表现层、业务层、数据持久层和数据库服务器四个部分。
在开发信用卡管理软件组件模板时,本文采用Struts来实现信用卡系统的表现层,数据持久层选择了ORMappingTools(Hibernate),业务逻辑层则用普通Java对象,把Struts和Hibernate这两种在业内比较推崇的开源技术相结合[2],并引入Spring依赖注入,使用JavaBean代替EJB,进一步整合前两个框架,提升了项目开发的效率和易维护性。
这样也相应地扩展了传统Web的三层体系结构,本文开发的系统体系架构如图2.8所示。
图2.8信用卡管理系统技术结构图
这种设计使服务器端和数据服务端可以根据系统的需求进行配置,为系统结构提供极大的灵活性和收缩性。
采用该多层结构技术的另一个优势是“瘦”客户端的设计和实现。
主程序和主要的业务功能模块都放在应用服务器上,客户端只需安装浏览器就可以在本地运行。
本信用卡系统设计中,客户端为浏览器,中间层以Tomcat作为应用服务器支持业务逻辑的处理,以MySQLServer5.0作为数据库服务平台。
第3章系统平台与技术
3.1MVC设计模式
3.1.1MVC模式的介绍
随着Web开发的不断发展和需要,MVC模式被推荐并成为Sun公司J2EE平台的设计模式,并且在应用中受到越来越多的开发者的欢迎。
Model-View-Controller原来是XeroxPARC在八十年代为编程语Smalltalk-80发明的一种应用程序的框架结构,至今已被广泛使用。
该框架结构支持三层结构的类:
表现应用程序状态层、屏幕表现层和控制流层,因此这三层被称为模式(Model)、视图(View)和控制器(Controller)。
MVC是可以满足那些需要为同样的数据提供多个视图的应用程序的开发需要,在开发与用户界面相关,特别是对用户界面要求较复杂的相关的应用程序时,可以很好地以不同的方式来显示同一数据,也就是在不改变软件功能的前提下,可以实现用户对用户界面的个性化要求,而MVC模式的最大特点就是将业务层与表示层分离,而且提供了很多使显示界面更加个性化的标签库,所以它能更好地实现用户界面的各种个性化需求。
MVC通常用于分布式应用系统的设计和分析,如:
大型商业网站、企业信息系统、管理信息系统、决策支持系统等,但它本身并不局限于某一个特定的领域。
MVC设计模式,最近几年被推荐为SIJN公司JZEE平台的设计模式,它强制性地把应用程序的输入、处理和输出分开[3]。
它的三个核心部件分别是模型、视图和控制器,它们各自处理各自的任务:
(1)模型(业务逻辑层):
表示企业数据和业务规则,实现具体的业务逻辑、状态管理的功能。
在MVC的三个部件中,模型拥有最多的处理任务。
例如它可能用像EJB和ColdFusionCompanies这样的构件对象来处理数据库。
被模型返回的数据都是中立的,也就是说模型和数据格式无关,这样一个模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
(2)视图(表示层):
即用户看到并与之交互的界面,是应用程序的外在表现,通常实现数据的输入和输出功能。
对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术也层出不穷,它们包括MacromediaFlash和像XHTML、XML/XSL、WML等一些标识语言和WebServices。
因此如何处理应用程序的界面变得越来越有挑战性。
MVC一个大的好处是它能为你的应用程序处理很多不同的视图。
在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
(3)控制器(控制层):
起到控制整个业务流程的作用,根据用户的输入调用相应的模型和视图去完成用户的需求和相关的操作。
具体地来说:
控制器本身不输出任何东西和做出任何处理。
它只是接受客户的请求并进一步决定调用哪个模型去处理该请求,并根据处理结果来确定用哪个视图来显示模型处理之后返回的数据。
它们三者之间的关系如图3.1所示。
图3.1MVC组件类型的关系和功能
3.1.2MVC开发的优势
经过以上对MVC开发模式的介绍,以及两种JSP开发模式的比较,我们对MVC开发模式有了一定的认识,这里将进一步介绍说明利用MVC模式开发的优势,具体表现在以下几个方面:
(1)MVC模式很好地解决了软件工程中如何使软件系统各模块之间最大限度地降低其复杂的耦合关系,以及系统显示逻辑和业务逻辑之间的矛盾(即用户界面的多变性和业务逻辑的相对不变性),可以尽可能地提高系统的可维护性和可扩展性。
(2)模型、视图、控制器三者的相互独立,当我们改变其中一部分时,其他两部分不会受到影响,进而构造出良好的松耦合构件。
(3)所有的模型和视图都是由控制器连接和调用的,控制器控制功能使得它可以根据用户不同阶段的不同需求选择不同的模型进行处理,并选择不同的视图将处理结果显示给用户,很好地提高了系统的灵活性。
(4)一个模型可以拥有多个视图或者说多个视
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MVC 客户 管理 子系统 设计 实现