基于SSH的点餐服务管理系统的设计与实现毕业论文Word文档格式.docx
《基于SSH的点餐服务管理系统的设计与实现毕业论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于SSH的点餐服务管理系统的设计与实现毕业论文Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
ThispaperusesthemainstreamJavaWebtechnology,throughthemarketresearchtocompletethedemandanalysisanddatabasedesign,UsingSSHastheframeworkofthedevelopmentsystem,MySQLasthedatabasetostoremanagementdata,Tomcatasthewebapplicationserver,throughthefoodinformationmanagement,storeinformationmanagement,orderinformationmanagementandothermodulestocompletethedesignofthesystem,sothatuserscanonlyuseQRcodeItcancompleteaseriesoffunctionsfromordertopayment.Thesystemgreatlyincreasestherapidityoforderprocess,andhastheadvantagesofhighefficiencyandaccuracy.Itreducesthepressureofdiningpeakandimprovestheserviceefficiencyofmerchants.
Afterthetest,theorderingmanagementsystemhasfullyrealizedtheexpecteddesignfunction,whichcanmeettheneedsofbusinessesandcustomers,andonlineorderingsolvestheproblemsofsloworderingprocessandredundantsettlementprocessonebyone;
thesystemhashighperformance,strongoperability,easymanagement,easymaintenance,andcanbeappliedtotheneedsofthecateringindustryatpresent.
Keywords:
SSHframeworkstructure;
Managementplatform;
Orderonline
引言
现阶段各行各业关于线上操作的利用愈发广泛,餐饮行业对于线上点餐的功能使用更是用足心思,各种各样的点餐app应运而生,广大群众对其的喜爱也是因为这种使用起来快捷方便的特点。
不过对于习惯于堂食的顾客好像没那么“照顾”,还是传统的服务员推荐、记单、下单的操作过程,而扫码点餐这个过程最大的特点就是操作便捷,办事步骤少,相比而言所需要的资源也是最少的。
据不完全统计,一套线上点餐系统能够降低餐厅五分之二的人工成本,同时也可节省餐厅营销成本,如广告牌制造、菜单制作费用等[1]。
所以基于这一观点,为线上点餐系统的开发需求提供了强大的背景基础[2]。
开发线上点餐管理系统的意义分为两大方面,一方面是提高餐饮企业的点餐效率,另一方面是为消费者提供更好的就餐体验。
传统的点餐过程中,顾客到店,首先需要看菜单,然后还需找收银员或者服务员点菜,最后通过收银后台发送到后厨,对于餐饮企业来说效率很低,对于顾客来说过程很复杂,而且可能还会存在高峰期排队等问题。
而用线上点餐系统的话,顾客到店,先挑选座位,而后扫描桌上的二维码,直接在线点餐,下单结算。
这其中就节约了很多人力物力,也更加高效[3]。
目前,几点问题还在影响线上点餐系统的发展。
1、实际功能与餐饮企业所期望的有所出入,对餐饮企业来说,最大的问题是信息的不对等,企业无法和厂商研发的餐饮软件更好的融合。
即使让厂商按照要求专门研发产品,企业却在迅速发展,还是会导致无法完美符合实际要求的情况。
2、线上点餐系统缺乏深度,市场每天都在变化顾客的需求也会日益增加,厂商自然会为餐饮软件增加多种功能来应对压力。
但这种进步却只停留在表面,往往只是在原本的基础上机械化的加载模块,不能解决根本性的问题。
3、由于操作复杂,软件依赖性强,总体成本昂贵,部署非常复杂,对产品开发产生了严重影响[4]。
4、隔行如隔山,软商和餐饮企业更是如此,想要从根本上角度去互相理解是很困难的,大大小小的餐饮企业之间的需求也是有很大不同的,想要做到从餐饮企业的根本需求出发,用信息化推动其发展,增加办事效率,降低各种成本,是一个很难研究的问题[5]。
未来餐饮软件可能存在着两方面变化,内容和功能的体系化以及服务的专门化。
通过互联网手段,以餐饮软件作为餐饮管理系统的核心,从食材采购、点菜预定、结账收银、客户维护、网络营销都在一个平台内完成,构建完整生态链的网络化餐饮管理系统,而原材料成本、人力成本、管理成本、营销成本也都会随之进一步降低;
专门化趋势则是餐饮软件在为餐厅提供服务上,更具有针对性,能够根据餐厅的不同业态和规模进行调整,从而实现效率的进一步提高。
本文共分为5章,安排如下:
第1章,为系统的开发所用技术的描述,其中包括了框架技术Spring、SpringMVC、Hibernate以及MySQL数据库等,并且对这些技术特点优点进行了详细地描述,最后在本章小结进行了统一的阐述。
第2章,对本系统进行了分析,包括了需求分析、非需求分析、系统工作流程、用例分析,并通过结合流程图用例图的方式进行生动描述。
第3章,则为系统的详细设计部分,其中先后描述了系统结构设计、系统功能模块设计、数据库设计部分,并结合了结构图、E-R图以及核心数据表对本系统进行了一个详细的描述。
第4章,写了系统的实现,主要介绍系统的开发环境、开发规范部分。
第5章,描述了对系统核心功能的测试,通过分析测试计划、规划测试方法、测试用例表等方式对系统的核心功能进行了充分的测试证明。
结论,阐述系统总体的完成情况,对系统进行合理评价,并对点餐系统系统未来前景进行展望。
1开发工具相关技术
本点餐服务管理系统采用Java+Tomcat+Mysql的组合方式进行研发[7]。
Java作为开发软件的主要语言,Web服务器使用了Tomcat,存储、管理数据的数据库使用了MySQL。
而为了实现各种请求的处理以及对象化管理,使用了SSH框架来搭建系统结构的基础。
1.1SSH框架
由Spring,SpringMVC和Hibernate组成的SSH框架具有很多特点。
Spring作为非侵入式的一款侧重于减小开发复杂度的框架,为了利于系统的重新构造和后期的维护,Spring系统应用中尽量降低了代码依赖,并且不仅是将开发的程序运行在服务器上[8]。
1.1.1Spring
在企业级Java应用程序开发框架中Spring无疑是最受推行的,是一个处于设计层面的轻量级开发框架,也包含着面向接口的的程序技术思想[9]。
最初由RodJohnson编写的Spring框架,可以用于开发所有的Java应用程序,这是最重要的一个特性。
不仅如此,Spring框架的目标是通过启用基于POJO的编程模型,让J2EE的开发变得更简单且更易使用[10]。
Spring框架中不可缺少的组件是面向切面的编程(AOP)框架[11]。
面向切面的编程需要把计算机程序正确性的逻辑规则,分解成各种不尽相同的部分,也就是关注点。
横切关注点,也就是跨应用程序的多个点的功能,在概念上不依赖于应用程序所实现的具体功能。
有许多常见例子可以体现,如日志记载。
Spring框架主要包括了控制反转和面向切面的容器框架,Spring能够自动的去查找依赖对象,并完成应用对象所应去处理的业务逻辑,该框架分为了SpringCore、SpringContext、SpringORM、SpringAOP、SpringWebMVC、SpringWeb、SpringDao7大模块,基于此将能从多个方面解决了企业开发所需的一切内容。
1.1.2SpringMVC
SpringMVC是一种基于Java,完成了WebMVC设计形式的请求驱动类型的WEB框架,也是一种侧重于减小开发复杂度的框架。
其运用了MVC架构模式的思想,利用反射机制来解决代码难以维护和高耦合的问题,实现了Spring的IoC思想[12]。
这种MVC模式,M指的是model模型层做业务逻辑运算,针对数据的持久化方面操作等;
V则是view视图层,将数据展现给客户和接受请求,调用模型层,响应处理结果。
而SpringMVC就是属于C层,其工作原理,是先发送Request请求,而后将此请求经过一系列处理器、解析器、控制器等数据处理后,经过视图渲染传给用户,显示出必要的数据。
一般来说,SpringMVC工程创建简单,重点在于配置文件的编写[13],常用注解开发,有效地处理了网页中乱码等情况,并且注解开发的好处之一就是简化了代码,提高了效率,相对于系统更加安全,便于管理[14]。
1.1.3Hibernate
Hibernate是一个优秀的持久层框架,负责向数据库的传输,数据对象永久接受对象关系的映射,从对象的角度访问数据库,而在主流的描述对象和数据库之间,映射到开发人员的元数据工具,可以在对对象的思想操作中,使用关系模型来组织数据的数据库,并且Hibernate使JDBC变为轻量级的目标包,使编码过程更加方便快捷[15]。
Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类:
内置缓存和外置缓存。
Session的缓存是内置的,不能被卸载,也被称为Hibernate的第一级缓存。
SessionFactory的内置缓存和Session的缓存在实现方式上比较相似,前者是SessionFactory对象的一些集合属性包含的数据,后者是指Session的一些集合属性包含的数据。
外置缓存的数据是数据库数据的拷贝,外置缓存的介质可以是内存或者硬盘。
SessionFactory的外置缓存也被称为Hibernate的第二级缓存。
Hibernate的优势也十分明显[16]。
Hibernate不用编写任何代码就能处理映射Java类别到数据库表格中,仅仅是通过使用XML文件;
可以提供应用程序接口来直接在数据库中存储和检索Java对象。
可以修改XML文件属性以在数据库或其他表中更改它;
提供了一个熟悉的Java对象;
抽象不熟悉的SQL类型;
操作无须使用应用程序服务器[17];
对于所有的主要RDBMS都能支持。
1.2前端技术
jQuery是一个优秀的轻量级JavaScript框架,它能简化HTML、文档元素的遍历等来实现Web的快速开发。
Bootstrap是一个用于快速开发Web应用程序和网站的前端框架。
它基于HTML、CSS、JavaScrip,提供了HTML和CSS的规范。
jQuery能够兼容所有的主流浏览器,这使得对DOM的快速访问变得非常简单。
1.2.1jQuery
jQuery是一个快速、简洁的JavaScript框架,其理念就是提倡去写更少的代码,完成更多的事情,简化了许多JavaScript编程任务,简单而易于理解的应用程序编程接口也使jQuery的表现效果非常出色。
它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
随着越来越多的开发者加入,jQuery也集成了众多于一体的强大功能,得到了许多开发者的青睐。
1.2.2Bootstrap
Bootstrap常用于开发响应式布局、移动设备优先的WEB项目,是一个CSS/HTML框架。
它的特点是简单灵活,可用于架构流行的用户界面和交互接口的html、css、javascript工具集。
并且作为响应式设计的框架,其兼容性也十分卓越。
它的优势是能给用户提供更好的视觉使用体验,由于它是响应式布局的设计,也能使一个网站去兼容不同分辨率的设备。
因为其可视化布局的特点,可以不写代码,也不辛辛苦苦的调整格式,就能直接从左侧选择想要的框架,拖拽即可迅速的完成前端的基础框架,对于开发本项目来说是最好的选择。
1.3数据库技术
MySQL是一个处理互相关联之间的逻辑,并存取这些数据的一套程序。
如今的这样的数据库有很多种,包括Oracle、SQLServer,虽然MySQL不是最优秀的一个,但最受到中小型企业喜爱的数据库管理系统却是MySQL,其中一个原因就是MySQL是一款开源软件,并且功能还很强大;
另外MySQL是由最基础的C语言和C++语言编写的,进行多种测试后投入使用[18]。
MySQL的特点有很多,不过最重要的一点还是开源、免费、使⽤范围广,跨平台支持性好,提供了多种语言的调用应用程序编程接口。
MySQL是目前为止最流行的关系数据库管理系统之一。
MySQL数据库系统是完全通过网络来实现跨平台关系的,是具备C/S体系结构的DDBMS[20]。
MySQL之所以受到了广大自由软件编程爱好者的偏爱,是因为其运行速度快、善于变化、经济实惠、实用性强、管理方便、使用便捷、安全可靠、巧妙的系统结构以及丰富的API等方面[21],为建立基于数据库动态网站起到了极大的作用。
MySQL包含了4种类的索引,其中包括普通索引,唯一索引,主键索引和全文索引,能大大的提高数据库的检索速度,相比较这些索引占用数据库的物理和数据空间,还是非常值得的。
MySQL对于事务处理功能也十分优秀,不仅能防止意外操作失误导致的数据损失,而且也能大大加强数据的安全性。
此项功能无论对开发人员还是对于使用MySQL为基础的平台的用户来说,都是一个很好的安全保障。
1.4本章小结
本章主要描述了本文所提及到的核心技术,包含Spring、SpringMVC、Hibernate、jQuery、Bootstrap、MySQL等等,从前台技术到后端引用均有详细介绍。
对于该系统的数据库及底层框架结构,均做了明确统一的描述介绍。
通过深入了解学习这些技术,为后续系统的实现完成打下了稳固的基础。
2系统分析
2.1需求分析
本系统主要是为餐饮企业提供菜品信息管理、门店信息管理、销售额管理等服务,并为用户提供在线点餐和支付等功能[22]。
通过对多家典型餐饮企业地调研发现,线上点餐系统需求分析主要分为以下几点[23]。
1.商家登录。
商家需在系统后台管理界面内进行登录操作,若无账号可通过注册账号账号,再完成登录操作,若未登录就进入主页面则无法对整个系统进行管理操作。
2.维护实时信息。
餐饮企业可以通过后台实时维护店内信息以及菜单信息等,保证各种信息的实效性与准确性。
3.订单整合。
餐饮企业可以在后台对订单进行销售额统计、餐位和订单信息管理等一系列操作。
4.订单与支付。
顾户到店选好位置后,只需通过扫描桌上二维码即可进入点餐主界面,然后进行点餐的一系列操作,最后可直接进行支付结算。
5.便利性。
用户一切点餐操作只需通过二维码进行;
餐饮企业能通过后台及时收到用户订单,迅速对订单进行反馈处理。
6.实用性。
系统主页面美观且直观,用户操作需简单便捷,各项功能使用起来一目了然。
7.完整性。
顾客整个点餐过程的数据要完整,以便商家进行销售分类统计。
非功能性需求是为了本系统能够提高用户地体验而对系统需求做出的补充,设计了许多提示信息来提示用户,以便用户更好的去使用本系统[24]。
在开发系统时,选用了含义明确的图标,颜色鲜明的提示,整个页面简洁美观,操作栏处于明显位置,各功能页面风格统一,能良好的显示出图片文字信息[25]。
并且因为餐饮企业需求日新月异,可拓展性是一个极其重要的因素,预留出了可以进行升级的模块,来应对未来变化而对系统进行更新升级维护。
可拓展性是指本系统是一个处于长期活跃使用的系统,所以对于可拓展性方面是一个需要去重点考虑的因素,预留出可以进行升级的模块。
可以对未来的餐饮企业需求变化问题,对系统进行更新升级维护。
可维护性是指为了用户的使用体验,系统将定期进行维护,将不必要出现的内容进行更新,对经过实际测试证明出后的系统错误进行更改和预防性维护。
2.2系统工作流程
首先普通用户只需要扫描二维码就可进入到点餐界面,在此页面可以进行点餐支付功能,如查看菜品,加入购物车并下单等,最后可以直接通过二维码进行支付结算,如图2.1所示。
图2.1普通用户部分功能流程图
其次管理员角色,管理员登录后才可以进行对各大模块的管理工作。
可以对菜品进行添加、删除、修改、查找操作,对分类进行增加、删除、修改、操作,对餐位进行添加、删除、操作,会员信息管理,查看目前订单,完成销售统计,商家信息维护等操作,从而帮助餐厅更高效地管理餐厅。
如图2.2所示。
图2.2管理员部分功能流程图
2.3用例分析
系统执行的一个动作序列或者与用户的交互,这些动作必须对某个特定的使用者产生可观测的、有价值的结果。
是各种系统受益人之间的一种行为契约,建立契约的目的是为了达成某种目标,因此每一个用例及其名称实际上都应代表一个用户目标,这个目标是否得到真正满足正是判断抽取的某个用例是否有价值的关键。
用例分析是从用例模型到分析模型的过程,是需求与设计之间的桥梁。
用例分析把系统的行为分配给分析类,让分析类交互完成系统的行为。
基于此分析出,本项目涉及管理员和普通顾客用户两类系统,管理员和普通顾客用户属于系统外部,用例属于系统内部;
两类系统均可以驱动用户功能用例包含常规的系统基本功能,普通顾客用户可以驱动查看菜品、添加购物车、删除购物车、下单结算等功能。
管理员则可以驱动菜品信息、会员信息、订单信息、销售信息、商家信息等管理。
如图2.3所示。
图2.3系统用例图
管理员为唯一角色,登录与其他所有用例都有include关系。
管理员可以登录、注销、修改个人信息、菜单信息管理、会员信息管理、订单信息管理、销售信息管理、门店信息管理等。
管理员的用例图如图2.4所示。
图2.4管理员的用例图
2.4本章小结
本章从点餐系统的需求分析以及系统具体的工作流程两个角度来进行描述,系统中普通用户只需要扫描二维码就可进行点餐操作,管理员则需要登录才能访问本系统,对本系统进行操作。
不同角色按照身份进入不同的首页面,进行不同的操作等工作流程的介绍。
3系统设计
3.1系统总体设计
3.1.1系统体系结构
线上点餐服务系统系统体系结构分为5层,分别为表现层、控制层、逻辑层、数据访问层和数据库5层。
第1层表现层为用户所能观测到的方面,显示的界面、显示的图表、数据等情况,包括用户方面所使用的各种设备、硬软件等;
第2层为控制层,也就是将请求从页面转到后台代码,将多种关系分开控制、提高功能的强度,增强独立性;
第3层是逻辑层,负责处理数据,并对数据库执行复杂的逻辑决策和数据验证,为各种功能提供所运用的逻辑思维;
第4层是数据访问层,本层负责将数据存入数据库中,主要对MySQL数据库的访问和应用,使数据持久化;
第5层数据库,是本系统所有经过处理的数据最终所储存的位置,实现了数据的集中控制与管理。
本系统结合MVC设计模型,Controller层主要来处理用户的请求,然后传到Model层来进行数据处理,比如获取数据库连接,访问数据库等,再传给服务器端操作,最后通过View层显示数据,系统体系结构图如图3.1所示。
图3.1系统体系结构图
3.1.2系统功能模块设计
线上点餐系统将从前台、后台两个角度进行模块划分;
前台由菜品搜索、购物车、订单管理三个模块组成;
后台管理程序功能主要包括订单统计管理、菜单信息维护、商业信息管理三个功能模块,系统总体结构图如图3.2所示。
图3.2总体功能结构图
3.2系统详细设计
3.2.1数据库设计
数据