在线订餐系统设计与实现毕业设计.docx
- 文档编号:13438001
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:77
- 大小:3.99MB
在线订餐系统设计与实现毕业设计.docx
《在线订餐系统设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《在线订餐系统设计与实现毕业设计.docx(77页珍藏版)》请在冰点文库上搜索。
在线订餐系统设计与实现毕业设计
在线订餐系统设计与实现毕业设计
摘要
ABSTRACT
第一章绪论1
1.1在线订餐的市场趋势1
1.2在线订餐的市场优势1
1.3解决的主要问题2
1.4本文的主要工作2
1.5论文的组织结构3
第二章预备知识5
2.1系统开发语言5
2.2系统开发工具5
2.3系统开发框架技术6
第三章需求分析9
3.1系统分析与设计目标9
3.2可行性分析9
3.3设计的总体规划10
3.4功能分析10
3.4.1用例图10
3.4.2用例描述11
3.5.3系统E-R图25
3.5.4主要功能活动图26
第四章概要设计29
4.1运行环境29
4.2系统逻辑架构设计29
4.3数据存储设计30
4.3.1系统数据结构设计30
4.3.2数据库表设计30
4.4类模型设计34
4.5运行设计34
4.5.1运行模块组合34
4.5.2运行控制35
4.6系统出错处理设计37
4.6.1出错信息37
4.6.2补救措施37
4.6.3系统维护设计37
第五章详细设计39
5.1程序系统的结构39
5.2Customer类设计说明40
5.3Restaurant类设计说明41
5.4Order类设计说明42
5.5Food类设计说明43
5.6Message类设计说明44
5.7Notice类设计说明45
5.8Note类设计说明46
5.9ShoppingCart类设计说明47
5.10Admin类设计说明49
第六章软件的实现与测试51
6.1总体实现51
6.2软件测试58
6.2.1测试环境和测试工具58
6.2.2测试策略和方案58
6.2.3功能测试58
6.2.4测试的结论59
第七章总结与展望61
7.1总结 61
7.2 展望 61
参考文献62
致谢63
附录A:
主要源代码65
附录B:
软件使用说明书73
第1章绪论
1.1在线订餐的市场趋势
近年来,电子商务的发展可谓是速度惊人,在线订餐的消费方式也就成了一股热潮。
当然,风起云涌的互联网的应用,为在线订餐创造了良好的发展空间。
同时,在线订餐服务的时尚、丰富、便捷等优点是传统的订餐业务无法比拟的。
此外,传统餐饮业目前面临着经营管理理念和方式上的被动改革等种种压力,因此餐饮企业也会顺应发展潮流,积极谋求一种创新型的发展策略,实现行业的可持续发展。
这时,在线订餐服务必将成为创新型发展的最好战略。
有关调查数据显示,一线城市白领更偏好于选择在线订餐服务,在线订餐消费体验将会成为白领一族获取餐厅信息、进行订餐的更好选择。
在线订餐紧跟着互联网发展的步调,会逐渐被人们所接受、所喜欢。
并且,目前国在线订餐服务普及的围并不广泛,只是在一线城市有较高的普及程度和较多的消费群体,由此可见在线订餐行业的可发掘市场是非常巨大的。
同时,我们很容易理解,在互联网领域,谁能够抢先一步在应用上创新,谁就能够成为未来的掌舵手。
1.2在线订餐的市场优势
时代在不断发展,不断进步,网络技术也日益提高,所以说,在线订餐服务势必会成为一种顺应时代发展的新型餐饮服务。
那么在线订餐对消费者有什么好处呢?
对于商家会有什么市场优势呢?
其实,在线订餐服务就是利用网络技术给人们生活、消费、休闲等各方面带来的影响,从中获取市场商机。
在线订餐是以网络为媒介,消费者直接通过这一媒介在网上轻松订餐,避免了出门就餐的不必要麻烦。
并且,通过在线订餐服务,顾客在店家选择方面比较多,选择类型也很丰富,很容易满足消费者的比较购买心理。
对于商家,通过在线订餐服务,一方面利用客人订餐消费的记录,建立自己餐厅的顾客资料库;另一方面,可以节省运营成本的开销。
1.3解决的主要问题
本文要实现的在线订餐系统是基于市场上现有的网上订餐系统的功能需求与结合用户的消费习惯方式设计的。
如何根据用户需求,设计出满足用户最佳的消费体验的订餐系统是本文要解决的主要问题。
在需求分析方面,要在充分理解用户在线订餐体验需求的基础上,获得用户需求和业务流程,需求包括功能需求和非功能需求。
通过分析总结出合理的设计和开发思路。
在设计方面,分析在线订餐系统的逻辑架构和业务需求,设计出能够更好满足可维护性,灵活性和可扩展性的订餐系统。
在具体实现方面,在实现前文设计基础上,基于B/S架构和MVC思想,采用SSH三大框架技术开发出界面、业务和数据处理之间层次分明的订餐系统,便于今后系统的维护和扩展。
SSH框架是指Struts2、Hibernate以及Spring框架。
之所以采用框架技术,是因为框架(FrameWork)具备有以下特点:
(1)框架拥有自己的一些类库及接口,在某种程度上来讲,是一个半成品的应用(工具)。
(2)程序员只要使用框架来进行开发,框架可以提供很多有用的服务及对一些重复的、冗余的代码进行封装。
(3)通过框架开发可以大大提高开发效率。
1.4本文的主要工作
本文通过分析市场上已存在订餐系统的实际需求和业务流程,并结合分析顾客的习惯消费方式,设计和实现了一个实用的在线订餐系统。
首先本文通过调查在线订餐的市场趋势和市场优势,然后根据调查结果全面分析系统的功能需求和非功能性需求,并对系统需求以用例图和用例描述的形式来详细说明。
当然,在需求分析之前,会简单介绍系统开发的预备知识,这主要包括系统开发的编程语言、开发工具以及使用技术。
在需求分析之后,进行在线订餐系统的架构设计。
首先根据系统需求提出系统设计目标与原则,然后分别对系统技术架构和功能架构进行了设计。
其中,技术架构主要从系统的可维护性,可扩展性以及性能最优等问题来考虑,因此采用分层模型的J2EE架构,并对各层的功能进行了设计分析;功能架构设计主要通过用户角色定义角色功能,因此分模块讨论了系统的功能组成。
最后给出一个动态的系统功能流程。
紧接着系统架构设计,我们进行了在线订餐系统的详细设计。
该部分按订餐用户、餐厅业主用户和系统管理员用户三个模块来设计系统,并对各个模块的设计进行了描述。
在系统建模中,给出了在线订餐系统的整体结构图。
在了解了整体结构之后,分别讨论了订餐用户、餐厅业主用户和系统管理员用户各个模块的详细设计。
详细设计完成之后,进行系统的实现开发,本文最后对在线订餐系统的最终实现情况进行简单介绍,并对系统进行系统测试,通过测试总结出所实现的在线订餐系统存在的问题,已达到后续的改进。
1.5论文的组织结构
第1章绪论,主要描述在线订餐的市场趋势、在线订餐的市场优势、本文解决的主要问题和文章的组织结构。
第2章预备知识,主要介绍在线订餐系统所需要的开发语言、开发工具以及开发过程中所使用的开发技术。
第三章需求分析,主要进行在线订餐系统的需求分析,还包括系统设计目标、总体规划以及可行性分析。
需求分析首先进行了系统功能的概述,以用例图的形式展示。
其次对每个功能用例进行详细的描述。
最后画出系统的E-R图和主要功能活动图。
第四章概要设计,本章主要进行系统的架构设计、数据存储设计以及类模块设计。
首先对系统的运行环境进行阐明以及对实体类进行分析。
其次在架构设计中,主要描述其逻辑架构设计。
最后详细描述系统数据存储的设计过程和类模块设计容。
第五章详细设计,本章主要进行系统的详细设计,包括程序系统的结构描述和程序类设计说明。
首先,画出程序系统的结构图,阐明程序系统的基本结构。
其次,按照程序类描述、类功能方法描述、接口描述三部分,分别进行各个模块的详细设计。
第六章软件的实现与测试,首先描述了系统的整体实现,并对各个模块的实现进行了描述。
其次描述了系统测试的情况,并对测试策略和测试结果进行描述。
第七章总结,对本论文进行总结,并对系统的迸一步提升提出了改进意见。
第2章预备知识
2.1系统开发语言
(1)JSP
JSP全名为JavaServerPages,中文名叫Java服务器页面,其根本是一个简化的Servlet设计,它 是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP实现了HTML语法中的Java扩(以<%,%>形式),与Servlet一样,是在服务器端执行的。
通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
(2)JavaScript
JavaScript和Java语言虽然在语法上很相似,但它们仍然是两种不同的语言。
JavaScript仅仅是一种嵌入到HTML文件中的描述性语言,它并不编译产生机器语言,只是由浏览器的解释器将其动态地处理成可执行的代码。
由于JavaScript由Java集成而来,因此它是一种面向对象的程序设计语言。
它所包含的对象有两个组成部分,即变量与函数,也称为属性和方法。
2.2系统开发工具
(1)编程工具---Eclipse
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它
只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
虽然大多数用户很乐于将Eclipse当作Java 集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++、COBOL、PHP、Android等编程语言的插件已经可用,或预计将会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如容管理系统。
(2)数据库工具---Oracle
OracleDatabase,又名OracleRDBMS,或简称Oracle。
是甲骨文公司的一款关系数据库管理系统。
它是在数据库领域一直处于领先地位的产品。
可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。
它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
比如SilverStream就是基于数据库的一种中间件。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
2.3系统开发框架技术
(1)Struts
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。
Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
(2)Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
(3)Spring
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。
Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。
Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。
然而,这仅仅是完整图景中的一部分:
Spring在使用IOC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。
Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。
Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。
Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。
这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。
Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。
第3章
需求分析
3.1系统分析与设计目标
系统分析是软件开发实施过程中一个不可缺少的环节,为了能够使在线订餐系统更好、更完善地被设计出来,就必须先进行调查研究。
比如说,通过调查问卷的形式,调查人们对在线订餐的需求等问题。
然后根据调查结果得出分析报告,再对新系统的功能进行细致的分析,从而才能够开发出完整的系统设计。
在实际试运行之前,我们需要对系统进行测试。
如果测试满意的话,将进行软件的完善开发,从而实现信息化、规化、系统化、网络化的软件系统,使其具有较好的适应性和推广性。
本在线订餐系统的实现基于B/S架构,使用JSP和Javascript开发语言,以及eclipse和oracle开发工具。
其设计总共包括三种角色:
订餐客户、店主以及系统管理员。
其中,店主实现对餐厅的业务管理,订餐客户实现浏览餐厅信息以及订餐功能,系统管理员实现对整个订餐系统的业务管理
3.2可行性分析
随着互联网应用的普及化,我们的生活与互联网越来越紧密不可分。
近几年,网上购物成为了一种时尚与时代潮流,人们也逐渐不愿出门购买东西。
因此,网上购物将为我们开拓出一个新的消费领域。
在线订餐在一定程度上也是网上购物潮流的新产物。
而对于在线订餐消费是否可行,在此我想进一步分析,分析从以下几个方面分析。
(1)技术可行性分析
在线订餐系统的开发是一项复杂的项目工程。
为了保证系统开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。
这些方法旨在指导开发者进行工程化的系统开发,从而加快系统开发的速度,保证质量以及降低开发成本。
工程化的系统开发方法确实在开发实践中取得了一定的效果。
此次开发使用JSP作为开发语言,采用Struts2、Hibernate、Spring整合框架技术,Tomcat7.0作为Web服务器。
(2)运行可行性分析
随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和技能。
随着Internet的发展,用户对于网络、Windows等环境下的软件使用比较熟悉,对于新鲜事物,用户表现出极大的兴趣和热情。
(3)经济可行性分析
网络订餐系统给人们带来了方便,成为一种全新的商务模式。
因此,不用出门就可以在家购物的新时尚已经到来,构建一个在线订餐系统在经济上是完全可行的。
(4)法律可行性分析
该订餐系统的开发会不会在社会上引起侵权或其它责任问题。
因为该系统是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上是可行的。
就本系统而言,随着电脑的普及,为学生在网络上进行购物提供有利的条件。
而一个在线订餐系统可以为学生提供软件条件,这样学生便可以足不出户的购买美食了。
商家可以从中获得利润,两全其美。
通过以上的分析,开发在线订餐系统是完全可行的。
3.3设计的总体规划
无论哪个都要会有它自己的设计规则与规。
本文设计的订餐系统也一样,它的主要设计规则有:
(1)简单性:
在实现系统功能的同时,尽量让用户觉得本系统的操作简单易懂,这对于一个来说是非常重要的。
(2)针对性:
该系统设计是在线订餐系统定向开发设计,所以具有专业突出和很强的针对性。
(3)实用性:
该系统从订餐用户、餐厅用户、系统管理员三个角色划分,实现订餐用户的订餐功能、餐厅用户的餐厅管理功能以及管理员的系统管理功能,具有良好的实用性。
3.4功能分析
3.4.1用例图
为了能够更好、更直观的了解本订餐系统的功能,所以通过用例图来反映系统的整体功能,详细见图3.1。
图3.1系统功能用例图
3.4.2用例描述
虽然用例图很直观反映系统功能,但关于功能的细节以及注意点,还是需要进一步描述,所以下面通过对每一个用例进行描述,希望可以更好了解本订餐系统的功能。
表3.1登录
用例编号:
1
用例名称:
登录
用例目标:
用户身份进入订餐系统
参与者:
普通用户、餐厅用户、系统管理员
前提条件:
用户已有本订餐系统的账号和密码
基本事件流:
1、进入系统的登录页面
2、输入用户的账号和密码
3、系统访问数据库,验证用户的账号和密码
4、根据验证结果,返回信息:
正确,则以该用户身份进入订餐系统;错误,停留在登录页面,并给予错误提示
表3.2注册
用例编号:
2
用例名称:
注册
用例目标:
获取本订餐系统的用户身份
参与者:
普通用户
前提条件:
用户想要拥有本订餐系统的用户身份
基本事件流:
1、进入系统的注册页面
2、输入注册信息并对信息进行验证
3、注册信息验证正确,系统访问数据库,保持用户信息
4、跳转到登录页面
表3.3注销
用例编号:
3
用例名称:
注销
用例目标:
退出当前的用户身份
参与者:
普通用户、餐厅用户、系统管理员
前提条件:
用户已经登录
基本事件流:
1、点击注销
2、系统擦除该用户在服务器中的信息
3、跳转到登录页面
表3.4修改密码
用例编号:
4
用例名称:
修改密码
用例目标:
修改用户的密码
参与者:
普通用户
前提条件:
用户已经登录
基本事件流:
1、进入用户的安全中心
2、输入用户旧密码和新密码
3、系统访问数据库,更新用户密码,并返回修改信息
表3.5浏览餐厅
用例编号:
5
用例名称:
浏览餐厅
用例目标:
对本订餐系统的餐厅进行浏览查看
参与者:
普通用户
前提条件:
用户已经进入本订餐系统
基本事件流:
1、进入订餐系统主页
2、进入餐厅主页
表3.6搜索餐厅
用例编号:
6
用例名称:
搜索餐厅
用例目标:
根据相关的餐厅信息关键字,获取相应的餐厅信息
参与者:
普通用户
前提条件:
用户已经进入本订餐系统
基本事件流:
1、进入订餐系统主页
2、输入想要搜索的餐厅信息关键字或通过高级搜索选择搜索标签
3、系统访问数据库,返回相关餐厅信息
表3.7浏览美食
用例编号:
7
用例名称:
浏览美食
用例目标:
对餐厅的美食进行浏览查看
参与者:
普通用户
前提条件:
用户已经进入本订餐系统的餐厅美食列表页面
基本事件流:
1、进入订餐系统主页
2、进入餐厅的美食列表页面
表3.8搜索美食
用例编号:
8
用例名称:
搜索美食
用例目标:
根据相关的美食信息关键字,获取相应的美食信息
参与者:
普通用户
前提条件:
用户已经进入本订餐系统的餐厅美食列表页面
基本事件流:
1、进入订餐系统主页
2、进入餐厅的美食列表页面
表3.9购买美食
用例编号:
9
用例名称:
购买美食
用例目标:
把美食加入到菜篮中并且确认订单
参与者:
普通用户
前提条件:
用户已经进入本订餐系统的餐厅美食列表页面、美食为出售状态、用户已经登录
基本事件流:
1、进入订餐系统主页
2、进入餐厅的美食列表页面
3、点击想要购买美食的购买选择按钮
4、填写用户配送信息
表3.10修改菜篮中美食数量
用例编号:
10
用例名称:
修改菜篮中美食数量
用例目标:
对已经选择的美食进行数量修改
参与者:
普通用户
前提条件:
菜篮中已经有选择的美食
基本事件流:
1、进入订餐系统主页
2、进入菜篮页面
3、修改美食数量信息
表3.11删除菜篮中美食
用例编号:
11
用例名称:
删除菜篮中美食
用例目标:
删除已经选择的美食
参与者:
普通用户
前提条件:
菜篮中已经有选择的美食
基本事件流:
1、进入订餐系统主页
2、进入菜篮页面
3、点击想要删除美食的删除按钮
表3.12清空菜篮美食
用例编号:
12
用例名称:
清空菜篮美食
用例目标:
删除所有已经选择的美食
参与者:
普通用户
前提条件:
菜篮中已经有选择的美食
基本事件流:
1、进入订餐系统主页
2、进入菜篮页面
3、点击清空菜篮按钮
表3.13查看订单
用例编号:
13
用例名称:
查看订单
用例目标:
浏览查看订单信息
参与者:
普通用户、餐厅用户
前提条件:
用户已经登录
基本事件流:
1、登录
2、进入订单页面
表3.14留言催单
用例编号:
14
用例名称:
留言催单
用例目标:
给订单餐厅留言,催促订单
参与者:
普通用户
前提条件:
用户已经登录、拥有订单
基本事件流:
1、登录
2、进入订单页面
3、在相应订单中输入催单信息,提交信息
表3.15给餐厅留言
用例编号:
15
用例名称:
给餐厅留言
用例目标:
根据餐厅的各项信息,发表用户自己的留言
参与者:
普通用户
前提条件:
用户已经登录
基本事件流:
1、登录
2、进入餐厅的留言中心
3、发表留言
表3.16评价订单交易
用例编号:
16
用例名称:
评价订单交易
用例目标:
根据交易的满意程度,进行打分评价
参与者:
普通用户
前提条件:
用户已经登录、拥有订单
基本事件流:
1、登录
2、进入订单信息页面
3、选择评价等级,进行打分
表3.17浏览餐厅留言信息
用例编号:
17
用例名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 在线 系统 设计 实现 毕业设计