软件工程-基于Android的咖啡厅点餐系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
摘要 (III)
Abstract ..................................................................................................................................... I V 第一章绪论 (1)
1.1 背景及意义 (1)
1.2 国内外发展状况 (1)
1.3 论文主要工作 (2)
1.4 本文组织结构 (2)
第二章相关技术 (3)
第三章系统需求分析 (5)
3.1 总体业务描述 (5)
3.2 功能性需求分析 (5)
3.2.1基于Android的咖啡厅点餐系统的客户端 (5)
3.2.2 基于Android的咖啡厅点餐系统的服务端 (6)
3.2.3 系统数据流图 (7)
3.4 非功能性分析 (8)
3.5 本章小结 (9)
第四章系统详细设计 (10)
4.1 系统架构设计目标 (10)
4.2 系统功能结构 (10)
4.3 数据库设计 (11)
4.4 功能详细设计 (16)
4.4.2 客户端实现 (16)
4.4.3 服务端实现 (17)
4.5 本章小结 (18)
第五章系统实现与测试 (19)
5.1 系统功能实现 (19)
5.1.1 登录模块实现 (19)
5.1.2 咖啡厅菜单模块实现 (19)
5.1.3 在线下单模块实现 (20)
5.1.4我的订单模块实现 (21)
5.1.5 服务端模块实现 (22)
5.2 系统测试 (24)
5.2.1 客户端功能测试 (24)
5.2.2 服务端功能测试 (25)
5.3 本章小结 (26)
第六章总结与展望 (27)
参考文献 (28)
致谢 (29)
基于Android的咖啡厅点餐系统
摘要
随着科技进步,传统意义上的手机正在被飞速的淘汰,再加上智能手机的普及率也在加速增长,智能手机的应用软件发展前景极其可观。

智能手机能够如此迅速的发展,原因之一是能够随时随地的利用互联网,且智能手机便于携带。

为了解决在任何情况下都能上网的问题,将应用系统拓展到手机终端上,这也就是智能手机的发展历程。

由于智能手机功能强大,在一定程度可代替电脑,再加上操作简单、用户量大,智能手机应用软件也得到了快速发展。

本课题旨在设计一个具有前台点餐功能和后台信息管理功能的咖啡厅系统,系统客户端实现菜单查询、在线下单、人工服务、订单查询、个人信息管理等功能;系统服务端实现对相关信息的管理,主要包括菜单、订单、原材料、类型、人工服务等信息,除此之外,为了便于管理人员对销售信息的统计,还有报表统计的功能。

本系统的开发与设计的目的主要是为到店用餐用户提供简洁、便于使用的在线点餐系统,同时也为咖啡厅管理人员对咖啡厅销售信息的管理提供了便利。

本文主要是对系统开发背景和意义、设计和实现、测试等工作作了描述,以便能够更加具体的了解和运用本系统[1]。

关键词:手机软件,Android,智能系统,在线点餐
Coffee ordering system based on Android
Abstract
With the development of science, technology and the rapid popularization of smart phone, the traditional sense of the phone is been quickly eliminated.Therefore, the application and the serve will have a promising prospect. Smart phones can develop rapidly, one of the reasons is to use the Internet everywhere and smart phones is easy to carry. In order to solve the problem which can use the Internet everywhere, the application system will be extended to the mobile terminal. It is the development of smart phones. Due to the smart phone is powerful it can replace the computer in sometimes. Because of simple operating, large number of users, smart phone application software has been rapid development.
The purpose of this project is to design a coffee system with function which is ordering online in the client and managing information in the service . The system client supports menu query, online order, manual service,order inquiry,personal information management and other applications. The system service provides information management, including order , material , manual and other functions. In addition, in order to facilitate the management of sales information on the statistics, there are statistical reports. The purpose of the development and design of the system is to provide simple and easy-to-use online ordering system for users. It is also convenient for the management to manage sales information.
In order to be able to understand and use of the system.This article is mainly describing background, significance, design and implementation, testing and other work of the system.
Keywords:mobile phone software, Android, intelligent systems, online ordering
第一章绪论
1.1 背景及意义
由于科技飞速发展,传统意义上只能打电话发短信的手机在不断地被淘汰,随之而来地是智能手机使用率的极速增长。

由于基于Android的智能手机相对于别的平台的智能手机来说,开发商数量大、价格相对便宜,用户量也最为庞大,也因此Android平台相较于其他智能手机平台市场占有率最高。

Android占据智能手机操作系统最高使用率的原因之一是由于Android平台是开源的操作系统,所以开发者在开发过程中,根据需求,开发人员可以对系统源代码进行查看;另一个原因是Android的主要采用的开发语言是Java,具备了Java语言所具有的有点。

此后生活方式也随着科技进步的脚步发生了变化,因此在Android平台上开发用以在日常生活中使用的软件是非常必要的。

传统的咖啡厅工作主要为手工作业,基本都需要服务人员进行一对一的服务,这样的工作流程在实行过程中比较容易出错,降低顾客对咖啡厅的用餐享受。

随着智能手机大范围的占有手机通讯市场,近年来Android应用软件目前的发展堪称是形形色色,涉及到多个行业,比如在线支付、出租车行业、购物方式等,Android应用软件的开发也因此而开发人员的推崇。

本系统通过采用Android技术实现了用户在线点餐,其设计与实现旨在为顾客与咖啡厅管理人员提供方便,也为咖啡厅节约人力、财力等资源[2]。

1.2 国内外发展状况
计算机技术的实际应用已经影响到人们生活的方方面面,比如出行方式、付款方式、就餐方式等。

在当今信息化时代,计算机作为信息传递的重要媒介,所以发展计算机技术尤为重要。

但我国当前饮食业管理系统的现状不容乐观,尤其是小型餐馆,由于资金缺乏,受到传统思想的束缚,大部分还是依靠手工作业。

信息资源的限制与需求不足的问题并存,不仅造成经济上潜在的浪费,还直接影响到我国饮食业的整体服务水平。

国内餐饮业的管理理念与经营方式因为管理人员被自己知识面的限制,都比较趋于传统,与当前国际形势上先进的管理系统相比,存在着不小的差距,尤其是中小型的餐厅的管理。

为了在将来餐饮行业能够有更好的发展,就势必要开发出具有自身特点、符合中国使用习惯的点餐系统,这样才能满足国内餐饮管理信息化发展的需要,也是紧随时代进步的步伐。

1.3 论文主要工作
本系统客户端为用户在线点餐、选座提供支持,服务端为餐厅管理人员提供订单信息、用户信息、菜品信息等,便于餐厅管理人员或客户对相关信息进行管理。

在本系统的开发设计与实现的过程中,都是依据软件工程对软件开发的要求,依照严格的设计思维,并且全方面的分析用户需求,以不同的功能划分模块,进而完成了基于Android的咖啡厅点餐系统的需求分析和数据模型建设。

本系统的主要使用Java作为开发语言,后台信息管理使用MySQL系统对数据进行存储和管理。

本系统在开发过程中严格按照软件工程的中对软件开发的标准和规范,从最初对系统进行需求分析、概要设计,到后期对系统进行详细设计、编码等过程都符合软件开发的标准。

在对系统进行需求分析时,主要使用统功能图描述系统总体功能结构,用用例图描述系统中用到的方法与类,用数据流图与E-R图对系统数据库设计进行描述。

在相关技术进行介绍时,主要介绍开发本系统在设计与实现中所采用的一些技术和常用的框架,对本系统的开发做好最基础的准备。

系统在设计与实现的过程中,依据系统需求分析,对系统的设计目标、原则、采用的相关技术、系统布局等内容作了设计。

1.4 本文组织结构
本文分为六章,具体的系统设计和实现内容,都在以下章节中:
第1章绪论,本章主要是简单的论述了本课题的研究背景、意义以及实现本系统的主要工作。

第2章相关技术,本章主要介绍了在系统设计与开发过程中所使用的知识。

第3章系统需求分析,本章主要对系统进行需求分析的描述。

第4章系统详细设计,本章主要包括系统设计过程和思路,对系统的建模也做了一定说明。

第5章系统实现与测试,对系统的一部分具体功能模块的实现与系统部分功能的测试进行简单的阐述。

第6章总结与展望,本章主要总结本系统所遇到的困难以及目前存在的缺陷。

第二章相关技术
1.JSP开发技术
JSP即是Java服务器页面,JSP的本质是简化Servlet设计,是由Sun Microsystems 公司发起,然后由多家公司参与建设的,基于Java Servlet的标准的动态网页开发技术,在Java技术上开发的JSP实现了动态网页与静态网页的分离,先编译后运行的方式也提高了执行的效率[3]。

JSP的特征是面向互联网,除此之外,还具备了Java简单、使用便利、面向对象、平台独立和安全可靠的特性。

JSP的技术的基础Java Servlet,大型Web应用程序开发基本都须要Java Servlet与JSP的配合[4]。

2.MySQL数据库
数据库MySQL是一种关联数据库管理系统,在对MySQL数据库设计时,数据被保存在不同的表中,这样就可以更加快速和灵活的访问数据库。

MySQL数据库的特点如下:
(1)是开源的数据库,在开发过程中不用为额外的费用支付。

(2)支持大型数据库,可以处理具备上千万条记录的数据库。

(3)在设计数据库的过程中采用的是标准的SQL数据语言格式。

(4)可以允许于多个系统上,并且支持多种语言。

(5)自定义功能,使用GPL协议,在开发中能够修改MySQL数据库的源代码。

在系统开发过程中,只要在项目中部署MySQL相关jar包,配置好链接驱动,就可以对MySQL数据库进行操作。

在本次开发中,为了方便操作,使用图形管理工具navicat来管理数据库[5]。

3.Android系统
Android是以Linux与JA V A为基础的开源操作系统,采用了分层的架构方式,一般被使用与便携设备,如手机、平板电脑等设备。

Android系统在开发过程中,可以使用Intent来协助完成Android组件之间的通讯。

Activity主要的功能是展示可视化用户界面,Android系统对控制Activity的生命周期进行控制。

Service的功能是保存和检索数据,实现跨应用程序共享数据[6]。

4.Servlet
Servlet(Server Applet),是在服务器上运行的小程序。

主要的功能有:交互式地浏览、修改数据,并且生成动态Web页面。

(1)客户端将请求发送到服务器端;
(2)服务器又将接收到的请求信息发送到Servlet;
(3)由Servlet产生响应内容并将结果传给服务器;
(4)服务器将接收到的响应结果,并将结果返回给客户端。

理论上,客户端任何类型的请求都能被Servlet响应,而在大多数功能的实际设计过程中,Servlet只用来扩展基于HTTP协议的Web服务器[7]。

5.Hibernate
Hibernate即是对象关系映射框架,源码是开放的,它对JDBC对象的封装是十分轻量级的,把数据库的内容对象化是Hibernate的主要技术特点,每一条记录与一个对象的实例对应,这样就使Java程序员能随心所欲的运用对象编程思维去操作数据库。

Hibernate即是对象关系映射框架,源码是开放的,它对JDBC对象的封装是十分轻量级的,并且JDBC在任何场合都可以使用Hibernate。

把数据库的内容对象化是Hibernate的主要的技术特点,每一条记录与一个对象的实例对应,这样就使Java程序员能随心所欲的运用对象编程思维去操纵数据库。

其优点有:
(1)对JDBC进行封装,减少重复的代码。

(2)DAO层编码简化,开发更面向对象。

(3)可移植性,可应用在各种数据库中,在开发过程中,需要换数据库只需在配置文件中配置文件即可。

(4)具有透明持久化,没有侵入性。

hibernate操作的对象是纯粹的java类,在使用的过程中,没有实现任何接口。

Hibernate的配置文件只要任务是负责与数据库进行连接,包括数据库所在服务器的ip端口、用户名、密码,以及应用数据库的语言等,一般以xml后缀模式存在[8]。

第三章系统需求分析
3.1 总体业务描述
基于Android的咖啡厅点餐系统具有简洁的界面风格和完善的功能,本系统的用户有餐厅管理人员、客户,开发本系统旨在为管理人员和点餐的客户提供了更为方便的服务,同时对比于纯粹的手工操作,咖啡厅日常工作的效率也能够得到提高。

咖啡厅点餐系统主要是为了便于客户点餐,也为咖啡厅管理人员对咖啡厅的管理提供了便利。

本系统具有客户端和服务端,客户端主要功能是方便客户到店点餐工作,服务端主要功能是管理员对用户和餐厅点餐等情况的管理。

主要功能有:菜单查询、在线下单、人工服务、菜单管理、原材料管理、用户管理、人工服务管理、订单管理、报表统计等功能。

3.2 功能性需求分析
基于Android的咖啡厅点餐系统可以为餐厅管理人员提供良好的信息管理功能,可以最大程度的为来店中用餐的人提供方便,同时也为管理人员节省了一定的人力资源,本系统按照功能的不同,本小节将采用用例图、数据库图做详细的说明。

3.2.1基于Android的咖啡厅点餐系统的客户端
本系统模块包括登录、注册、菜单查询、详情查询、在线点餐、选择座位、我的订单、人工服务、个人信息等功能。

本模块的参与者为到店用餐的客户,用户进入详情查询可以选择数量,然后下单;用户登录成功,即可使用本系统,若是第一次使用本系统,需要在注册模块注册账号;使用人工服务功能选择服务桌号,也就是选择座位;在我的订单信息中,若是订单没有完成,用户可以取消订单;用户可在个人信息模块中修改自己的相关信息。

客户端用例图如图3.1所示:
图3.1 客户端用例图
对以上用例图用例描述如下:
(1)菜单查询:用户查询咖啡厅菜单信息;
(2)详情查询:即是对菜品信息的详情介绍,包括菜品的价格、详细介绍以及咖啡厅目前菜品所剩余总数量;
(3)在线点餐:用户选择菜品,输入相关信息,实现在线点餐;
(4)选择座位:用户在使用人工服务时选择服务桌号,实现了选择座位的功能;
(5)我的订单:用户访问个人订单信息,当订单状态是“进行中”时,用户长按该订单,取消订单;
(6)人工服务:当需要了解具体情况,用户可以呼叫服务员面对面服务;
(7)个人信息:用户在此模块修改个人相关信息,包括用户名、账号、密码等。

3.2.2 基于Android的咖啡厅点餐系统的服务端
本系统模块包括登录、菜单管理、用户管理、人工服务、原材料管理、订单管理、报表统计等功能。

管理员可以对咖啡厅的相关信息进行管理,可以修改订单状态,对于呼叫人工服务的用户,管理员可以将已经服务的信息修改成已服务,报表统计可以对咖啡厅销售情况进行统计。

服务端用例图如图3.2所示:
图3.2 服务端用例图
对以上用例图用例描述如下:
(1)菜单管理:本功能用于咖啡厅管理人员对本店菜品的基本信息录入和管理操作,包括添加、修改、查询和删除菜品相关信息,系统对操作的结果给出相应提醒,使得管理人员可以清楚知道自己操作的结果;
(2)原材料管理:本功能用于咖啡厅管理人员对本店菜品的原材料基本信息录入和管理操作,当原材料数量少于系统规定数量,系统会予以提醒,咖啡厅管理人员可据此及时补充原材料;
(3)人工服务管理:本功能用于咖啡厅管理人员对到店用餐客户使用人工服务管理工作,包括将人工服务信息设置为已经完成服务,若是订单已经被取消或者已经完成较长时间,可将该次人工服务信息记录删除;
(4)订单管理:咖啡厅管理人员在此模块对订单信息进行管理,也可改变某条订单的状态信息;
(5)用户管理:本功能用于咖啡厅管理人员对本店用户信息的管理,包括删除用户或者修改用户信息,管理人员可以删除长时间不到点用餐的用户信息,还可对用户信息进行修改;
(6)报表统计:本功能用于咖啡厅管理人员对本店销量进行统计,便于管理人员对咖啡厅的管理作出相应的调整。

报表统计主要包括菜品种类销量统计与按时间销量进行统计,报表可以根据订单的变化动态变化[9]。

3.2.3 系统数据流图
管理员登录系统后,可对菜单、用户、原材料等信息进行管理,用户在客户端可进行菜单查询、在线下单、人工服务、修改个人信息、订单查询等操作。

咖啡厅点餐系统顶层数据流图如图3.3所示,当用户通过客户端或浏览器对系统进行操作时,客户端与服务端的浏览器向服务器发送HTTP请求,通过Java Web服务器(本系统采用Tomcat7.0部署系统项目)处理数据,并且将请求结果返回到浏览器界面。

图3.3顶层数据流图
对顶层数据流细分,系统一层数据流如图3.4所示:
图3.4一层数据流图
服务器对来自客户端或服务端的请求做出响应,根据请求做出相应处理,将信息显示传回客户端或服务端[10]。

3.4 非功能性分析
前面小节对本系统的功能性需求作了详细分析,并对数据流做了一定的阐述,本小节将对基于Android的咖啡厅点餐系统非功能性需求进行分析。

本咖啡厅点餐系统的非功能性需求包括:可靠性、适用性。

可靠性:是指系统能够在规定的条件和时间限制内完成对用户操作的响应,也是系统操作人员在对系统操作或系统相关硬件服务出错时具有处理相应错误的能力。

本咖啡厅点餐系统的可靠性要求系统在出现故障或系统人员错误操作后数据是否可支持恢复,系统能否对错误操作做出及时的处理或提示,平均故障发生率不能超过3次/月。

适用性:为了让用户能尽快地将系统投入使用,在开发的过程中简单快速的通过完成系统业务流程,并不断模拟点餐业务实际流程,做到系统的使用与现实相对应。

本系统的扩展性强,在系统架构方面提供了良好的扩展接口,为系统集成做好了准备。

3.5 本章小结
本章通过需求用例图、数据流图对系统的功能性需求进行描述,对系统需求有了较深的了解,为开发做好了充分准备。

除此,本系统除在非功能性需求部分考虑到了可靠性、适用性,还分析了系统的吞吐量、可容纳客户同时在线使用的数量以及事务的处理数、系统操作响应时间等。

第四章系统详细设计
4.1 系统架构设计目标
本系统通过智能手机进行在线下单,本咖啡厅点餐系统后台管理可以进行销量统计,代替了传统的人工服务、手工记账方法,有效地减少了财务查询、增加、修改等操作的时间,提高工作效率和管理质量。

本系统具有客户端和服务端两个功能模块,客户端的主要功能收集数据并将显示信息出来,其工作原理采集用户输入的信息,并将采集到的信息发送到服务端的Servlet 上,当Servlet接收到信息后,对数据库进行相应的操作,最后将结果发送回客户端,客户端显示出相应的信息。

对于当前的在线点餐系统的实际情况,本系统的具有以下目标:
(1)界面美观,操作简易,可以减少工作量,使系统的使用与维护更加方便。

(2)时时同步,顾客可以查询到咖啡厅最新菜单信息。

(3)具有完善的系统功能,对用户的操作能及时响应。

4.2 系统功能结构
在本系统中,客户端主要功能是到店点餐用户用于点餐、选座、人工服务等,服务端用于咖啡厅管理人员对咖啡厅进行日常管理工作,主要是对咖啡厅的相关信息进行管理,包括菜单、人工服务、原材料、订单、用户等信息还具有报表统计的功能[5]。

系统功能结构图如图4.1所示:
图4.1总体功能结构图
4.3 数据库设计
1. 建立概念模型
概念模型是对信息世界的建模,也是从现实世界到机器世界转变的过程,又是在设计数据库过程中运用的最强大的工具。

概念模型能方便、直接地表达应用中的语义知识,除此之外,还具有简单、清晰、易于用户理解的特性。

E-R图(实体-联系图)常被用来表示概念模型,在画E-R图时,矩形被用来表示实体、椭圆代表属性、菱形被用来表示联系,在使用时需要在矩形框内、菱形框内分别写明实体名、明联系名,将实体型与属性连接起来可表示该实体所具有的属性,实体与实体之间的关系可用联系与之连接起来,同时还需要在线条上标注联系的类型[11]。

(1)本系统所拥有的实体有:用户、管理员、菜单、原材料、人工服务、订单、菜品所属类型等。

(2)各个实体的属性如下列图所示:
管理员属性如图4.2所示:
图4.2 管理员属性图
原材料属性如图4.3所示:
图4.3 原材料属性图
菜品属性如图4.4所示:
图4.4 菜品属性图人工服务与其属性如图4.5所示:
图4.5 人工服务属性图菜品所属类型属性如图4.6所示:
图4.6 类型属性图类型属性如图4.7所示:
图4.7 用户属性图订单属性如图4.8所示:
图4.8 订单属性图
(3)通过以上对系统的分析可知,管理员与用户之间是1:n的关系,管理员与菜品、订单、原材料、人工服务、所属类型是m:n的关系。

系统数据库整体E-R图如图4.9所示:
图4.9系统数据库整体E-R图
2. 建立关系模型
本系统在设计中一共有7个数据库表,每个表的详细设计如下所示:
(1)管理员表:管理员信息表的字段包括管理员用户名、登录所使用的账号、密码,其中id为主键,根据数据库设计,id能够自动递增。

用户表如表4.1所示:
表4.1 admin表
序号列名数据类型长度允许空备注描述
1 id int 11 否主键自动增加编号
2 loginid varchar 255 是登录账号
(2)菜单表:菜单信息表记录了菜单相关信息,包括菜品id、名称、菜品所属类型的id和名称、对菜品的详细介绍、图片、价格、咖啡厅剩余数量、所使用原材料等信息,菜品id可以自动递增。

菜单表如表4.2所示:
表4.2 dishes表
(3)订单表:此表中所包含的信息有:订单id、用户下单用户id和姓名、订单状态、菜品id、价格、购买的菜品数量、下单的时间等,其中菜品id是外键,主键订单id可以自动递增。

订单表如表4.3所示:
表4.3 orders表
(4)类型表:类型信息表包括类型id、类型名称等信息,类型id可以自动递增。

类型表如表4.4所示:
表4.4 shops表
(5)用户表:用户信息表包括用户id、登录账号、用户姓名、密码等信息,用户id可以自动递增。

用户表如表4.5所示:
表4.5 users表
(6)人工服务表:人工服务信息表记录了人工服务相关信息,包括服务id、用户id、用户姓名、所需要服务的桌号、客户呼叫服务的时间等信息,用户id可以自动递增。

人工服务表如表4.6所示:
表4.6 humanserrvices表
(7)原材料表:原材料信息表包括原材料id、名称、以及咖啡厅仓库中目前原材料所剩余的数量等信息,根据数据库的设计,原材料id可以自动递增。

用户表如表4.7所示:
表4.7 burdens表
4.4 功能详细设计
4.4.2 客户端实现
客户端类图由系统实现过程中使用到的类以及类和类之间的关系组成,客户端所涉及的类有dishes、StartActivity、OrdersAdapter、DishesAdapter、orders、shops、AppConstant、CommonApplication、DishesListActivity等,由于篇幅原因,这里不给出类所继承的父类,只给出主要的类以及类之间的关系,客户端类图如图4.10所示:
图4.10客户端类图
4.4.3 服务端实现
服务端类图的组成是在系统实现中使用到的类和类之间的关系,服务端所涉及的类有UploadServlet、ServletService、SalesCount、HinbernateSessionFactory、GridServlet、users、humanservices,由于篇幅原因,这里不给出类所继承的父类,只给出主要的类以及类之间的关系[12],服务端类图如图4.11所示:。

相关文档
最新文档