1、目录第1章 引言21.1课题背景及意义21.2研究现状4第2章 安卓系统架构分析62.1Android系统的诞生62.2Android系统的特点62.2.1开放性62.2.2平等性72.2.3高效性7第3章 需求分析93.1目标分析93.2开发运行环境需求93.2.1软件需要具有如下功能103.2.2功能描述103.3 性能质量需求分析103.4 总体设计原则113.4.1 开放性、可扩充性、可靠性原则113.4.2 良好的用户操作界面113.4.3 实用性原则113.5 架构概述113.6 系统概要设计133.6.1 模块的划分与功能设计13第四章 数据库设计154.1 数据库需求分析154
2、.2 数据库的逻辑设计154.4 数据库的选择174.5 MySQL 数据库的优化18第五章 终端软件设计215.1 终端软件详细设计215.2 登录界面的设计215.2.1 功能描述225.2.2 界面设计225.3 主菜单界面菜单界面235.3.1 界面设计235.3.2工作流程245.4 并台界面245.4.1 功能描述245.4.2 界面设计245.4.3 工作流程255.4 换台界面255.4.1 功能描述255.4.2界面设计255.5 查台和结账265.5.1 功能描述265.5.2 界面设计26第六章 后台服务器端设计与管理276.1 后台服务器架构与关键技术276.1.1 T
3、omcat 服务器276.1.2 JDBC27第七章 系统测试297.1 测试目的297.2 测试项目297.3测试准则307.4 测试过程307.4.1 登录测试307.4.2 各功能模块测试307.4.3 系统测试317.5 软件需求测试结论317.6 测试结论31总结32参考文献33第1章 引言1.1课题背景及意义伴随着社会的进步和科学技术水平的提高,信息化已经融入了人们的基本生活。时至今日,网络最典型、最传统的代表就是计算机,人们的思维已经认定计算机就是互联网的客观显示形式。网络的传输速率激发了计算机的巨大潜能,而计算机的应用又让网络覆盖了相当广泛的区域。在当代科技社会中,已经没有任何
4、一种技术发明能像Internet那样对社会的各个方面、人们生活的给个角落产生了如此翻天覆地的影响。特别是在无线网络大放异彩的今天,360行都在通过信息技术在拓展自己业务,餐饮业也不例外。使用无线点餐系统的优势具体体现在以下方面: (1)大幅度提升工作效率:传统的单据式手写记录的点菜方式,要求服务员在每一次点菜、加菜及退菜后都另行单独下单并且把每一次的菜单都分发到饭店的每一个部分,如收银、酒水、传菜部、后厨等部门,并且在收银员把全部的点菜单输入电脑中或者用笔和计算器手动计算,才能生成总体的一个账单。但是在使用无线点菜系统时,服务员在客人点菜时就把菜单输入了点餐系统,然后系统又通过终端把菜单分发到
5、各个部分,各个部分按单操作就行,这样避免了传菜单抄菜单的麻烦,节约了时间,保证了正确率,也在一定程度上节约了客人的用餐时间。 (2)节约企业运营成本:原始的记账点菜模式对服务员要求数量较多,要做到服务跟得上那就需要大量的人力资源。而在服务阶段,无论在客人点菜、加菜或退菜时,服务员都只需要在餐饮行业的终端机上按客户要求操作即可让客户信息到达饭店的各个部分,这一切都只是通过无线网络连接到计算机,而计算机又通过网络把信息发送到各个终端设备上,这一系列过程没有手写开单、没有传单送单,降低企业经营成本。而在这种情况下,又不用服务员来回的传送菜单,既减少服务员的工作量,又降低了劳动强度,提高了工作效率,又
6、节约了人力成本。 (3)提高了饭店日常经营管理水平:无线点菜系统的核心是餐饮流程管理软件,它不仅可以起到控制加速点餐流程的作用,还可以加强对企业日常的经营管理。经营管理包括库存管理、质量管理、服务管理、营业关系和营业审核。原材料是餐饮企业从事经营活动做出美味菜品的充分必要条件,假设没有原材料就不能生产出美味的产品供客人享用。由于饭店服务是面向大众,而众口难调,客人对于事物的喜好是不同的,因此餐饮企业对于原材料的库存要做到多种多样。一旦这对原料的库存管理不好,就会产生浪费或出现缺少某种材料的情况,或增加成本或对企业形象造成负面的影响。因此餐饮业要做到合理科学安全卫生的储存保管、控制库存量、保证原
7、材料的食用安全达标、保证采购量与库存量的最佳平衡。传统的库存管理方法是在购买原材料时,人工对原材料进行日常核算登记记录至库存表中,这不仅工作量大而且人工进行采购清点材料时,由于存在主观因素,可能会造成购进量过多或过少的情况,产生资金积压、流动资金链断缺、管理费用上升、原材料变质或库存量不足导致影响客人点餐,影响酒店或餐厅经营的情况。库房管理系统就不一样了,它可以根据点菜信息量的大小多少定 期地自动生成用料数据,方便了核算;原材料的购入、使用和需求情况都由系统控制,这样就避免了原材料的丢失和变质无法使用的浪费;同时系统还可以根据原材料进货的时间来提前预警食品的保质日期,减少原材料由于变质造成的浪
8、费。与传统的库存管理方法相比,能节省很多不必要的浪费,原材料消耗至少降低5%。无线点菜系统为餐饮企业提供了很大的帮助,在营业管理上提供日常营业所涉及到的业务功能,如客户提前预订情况,桌位大小以及使用状况,打印状态监督等,服务人员及管理人员都可通过各自相应的权限进入点餐系统查看酒店或者餐厅各个部分的营业基本情况。同时还可依据自身实际状态对日常的经营模式进行个性化的管理。无线点餐管理系统可以使营业审核的各种信息自动生成各种可直视的统计财务报表,为管理人员和财务人员提供重要的清晰明了的营业数据依据。管理人员和财务人员可以根据自己的权限查看当天酒店或餐厅中各个部分的营业日报表,可以根据多种选择条件,如
9、部门、菜类、菜名、账单、服务员等,来审阅整个企业中所有财务明细或汇总的报表,能使管理者快速的把握知晓每天的饭店的运营状态。同时,在管理系统中还可以查询账单流水、退单信息和统计信息,更加清晰了工作明确了责任和责任人,防止了各种舞弊和错误的产生。管理者同时还可以根据系统提供的分门别类的经营信息进行分析选择,如一段时间的销售量、员工个人工作情况、菜品销售情况、应收款项及应付款项情况、采购领料的状况、毛利状况等,为企业的经营决策和正常管理提供重要数据。(4)提升客人用餐环境,提高饭店形象:传统的手动点菜方式要求服务员写下一个菜单就立刻传送到其他部门,在用餐客人较多的时候,服务员为提高服务效率会经营快速
10、走动,造成餐厅环境比较混乱,影响周边客人的用餐心情。而再使用无线点菜系统后,服务员在客人点餐时候站立就能完成以前的繁琐工作,避免了忙乱的现象,大大提升了用餐环境和服务品质。同时持有先进的点菜系统的终端具有时尚流行的外观以及触摸式点菜屏幕,美观方便实用,给顾客良好的视觉享受,极大提升餐厅档次和企业形象。餐饮企业运用无线点餐系统不仅可以很大幅度提高了员工的工作效率、减少重复不变的工作,降低了企业的用工成本、提高上菜的速度、提升企业现代化的服务形象,而且使企业的日常经营管理更加正规化,管理模式更加强大,并且更规范化,使企业的管理由粗放型向集约型转变,因此餐饮企业进行信息化管理使用无线点餐系统是必须的
11、,而餐饮企业信息化之路的第一条就是点菜系统的无线化、智能化、简便化。1.2研究现状传统的酒店或者餐厅点菜方式是人工手写,由服务员按照顾客的要求用笔和纸记录顾客点的菜,单据为一式四联,分别传递到不同的地方。第一联:存放于收银台,便于顾客用餐完毕后,统计顾客的全部消费并且作为结账的依据;第二联:送至厨房传菜,用于排列厨师做菜的先后顺序以及厨房记录菜品的完成情况,每做完一道菜传送至餐桌就标记已完成;第三联:送厨房配菜员,用于根据菜单中的菜提前做好配菜工作;第四联:存放于顾客所在餐桌,服务员每次上完一道菜后,就做好菜品以上的标志,以免发生上错菜或者漏菜的情况,同时也可以方便客人检查上菜是否有出入、账单
12、结算是否正确。原始的点菜记账的管理方式虽然程序一环套一环,但在执行是还会存在很多容易疏忽的地方,如人工点菜传菜浪费大量人力和时间,较低的效率,直接影响了翻台率;而大饭店的规模又比较大、每日客流量大,菜单多,信息量大,每一个服务环节都紧紧相扣,如果任何一个地方出现问题都会影响大饭店的效率。统计餐费和服务水平,加大了饭店经营管理的难度。而在算账统计收入的时候,又都是按照账单一笔笔来计算,收入无法得到有效的监督保障。此外在具体各个环节的工作中还容易出现很多问题:因服务员字写的各不相同,如有写的潦草的,进而看不清菜单、看错菜单而上错菜,做错菜和其他等等服务方面的问题。这些毛病虽说都是饭店经营管理中常出
13、现的小问题,对饭店不会产生太大的问题,但却或多或少影响了饭店的服务水平。正因如此,随着互联网引入餐饮行业,无线点餐模式的产生可以完全地取代了传统手写点餐。餐饮无线点餐系统,就是利用现代通信传输技术、计算机软硬件应用技术、网络技术、电子信息技术等众多高科技手段,来代替传统服务员用手写单据点菜,通过电子终端来进行点菜的操作系统。餐饮行业通过一系列现代化、信息化的改造,提升了经营管理水平、节约了人力成本,提高员工的工作效率、规范了整个餐饮服务体系,提高整体服务质量和管理水平,为规模化经营提供了坚实的技术基础。第2章 安卓系统架构分析2.1Android系统的诞生 Android一词的本义指的是“机器
14、人”,它是谷歌于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。该平台由操作系统、中间件、用户界面和应用软件四个主要部分组成,号称是首个为移动通信终端打造的真正开放和完整的移动操作系统。 Android的产生还得从AndyRubin(安迪鲁宾)说起。安迪鲁宾是一位硅谷著名的极客,他曾先后在苹果、GeneralMagic、WebTV等公司工作,2000年参与创办了Danger公司。该公司生产的Hiptop(T-MobileSidekick)智能手机具备上网、全键盘和照相功能,2003年曾在美国风行一时。离开Danger之后,安迪鲁宾创办了新的公司,致力于研发手机操作系统。因
15、为LinusTorvalds把自己写的操作系统称为Linux,安迪鲁宾的名字是Andrew,再加上他本身是个机器人迷,所以新公司取名叫做Android。这就是Android的来历。 Android是基于linux的软件平台和操作系统,早期由谷歌开发,后又由开放手机联盟(OpenHandsetAlliance)开发。它包括操作系统、用户界面和应用程序,这些要素构成了移动电话工作所需要的所有软件。其拥有许多移动行业的创新专利,是第一个为移动终端开发的软件产品。Android采用了软件堆层(softwarestack,又名软件叠层)的架构,主要分为三部分:底层以Linux核心为基础,并且由C语言开发
16、,但是只能提供基本功能。中间层还包括函数库Library和虚拟机VirtualMachine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序和上网程序等,应用软件则由相应各公司自行开发,并且以java编写开发。 2.2Android系统的特点 同当前市场上存在的手机操作系统比较来看,Android系统具有以下特点: 2.2.1开放性 Android是一个真正意思上的开放性移动开发平台,它同时包含了应用程序、上层的用户界面和底层操作系统,加上其在移动行业上的专利技术,使得Android系统一面试就被广大厂商欢迎。作为真正开放的平台就是允许任何移动终端厂商加入到Android联盟中来。这
17、个相对其他手机系统而言,Andriod系统可以使其拥有更多的开发者,同时随着应用人群和应用软件的日益丰富,一个崭新的平台也将会很快地走向成熟。作为手机厂商和消费者,在开放的平台中受益,也会投入更多的热情到这个平台。 2.2.2平等性 Android系统的平等性是指在操作系统上运行的应用程序是完全平等的。所有的应用程序工作在同一的核心之上,这个核心引擎就是系统中间层的虚拟机。该虚拟机提供了系统硬件资源与应用程序之间通信的API函数。在这个核心引擎之上,Android系统中所有的应用程序,不管是系统提供的核心应用,还是由第三方厂商开发的应用程序,都是完全平等。这种平等性在其他手机操作系统中是不存在
18、。以前很多移动终端的系统软件都被厂商特别定制,而Android系统的改进使得相同的移动终端可以具有不一样应用程序。 2.2.3高效性 有人认为Android系统的效率比较低,因为在Android系统的上次应用和系统框架都是类JAVA开发的,同时其设计实现了自己的java虚拟机dalvik,所有的应用都是基于JAVA和虚拟机开发的。但实际的现象却不尽然。在目前主流的智能手机平台上,Android的执行速度是最快的。这是为什么呢。我们通过下面这个例子来看一下。Android系统在UI开发时使用xml文件来描述UI,这个传统UI的设计方法不同,这样做的好处就是修改UI界面不需要修改原始代码,而只需要
19、对xml文件进行配置,按照个人的喜好修改UI的布局、颜色设置和字体大小。Android在编译的时候对xml文件进行了优化处理,就是为了在使用的时候更加灵活,此外应用程序在实际解析的过程中也变得非常高效。因此我们经常会看到APK文件解压后都有属于自己的经过优化处理后的资源文件,这些都很好的保障了Android系统运行时候的高效性。此外我们看到Android系统的图形应用是加载SD卡上的所有图像数据的,这是否影响Android系统运行时候的效率呢?其实不会,因为Android系统已经早把相关数据制作成数据库,不需要全部扫SD卡就可以获取所需图像数据,这些都加快了系统启动速度。还有就是Android
20、系统的虚拟机是基于栈操作的,而虚拟机的数据都存放于是寄存器中,这与操作内存数据相比要快很多。Android的开放性打破了应用程序之间的界限,应用程序不仅可以通过标准API访问因特网和核心功能,还可以声明它们的功能供其他应用程序使用。开发人员可以创造出很多全新的体验。第3章 需求分析食物是人类生存所必需的,随着人民生活水平的日渐提高,餐饮业在其他所有行业中占有不可或缺的地位。众多餐饮行业的经营者都为了在日趋激烈的竞争中脱颖而出而努力,以把餐厅经营好为奋斗目标。订餐系统实现了大酒店的高效率系统化的管理,规范服务体系,提高餐饮行业服务质量和管理水平,并为规模化、正规化地经营提供了坚实的技术基础。3.
21、1目标分析 此次设计的点餐系统主要面向具有一定规模、需要改进客人的就餐环境、需要提高餐厅点餐的工作效率、体现出现代化时效性氛围,并借此提高经济效益的餐厅和酒店。并且要求此项目不会占用太大的预算,并能够尽量已开发过免费的软件技术与原来的系统进行良好的整合共用。用于解释软件设计工作时的重要约束和所需开发工作的假定及约束: 1) 实现顾客根据价格、口味和菜品种类的不同点菜,通过前台可视化界面实现顾客多方面选择的空间。 2) 点菜完毕后,实现对顾客所点菜品价格以及服务和其他所有费用的统计,以免顾客花费超出自己的预算。系统还可以实现顾客对不满意菜品的退选或补选增加菜品的要求,在顾客所点菜品上来之后,系统
22、可以通过点击确认上菜进行记录,以免发生漏菜或者上错菜的现象。3) 根据以上功能,该系统主要以Android为操作平台, Java为开发语言,SQL Server为数据库。前台界面实现简便的可视化,方便顾客的点餐选择。后台管理为统一存储数据库,管理员管理菜品的增、删、查、改的实现都借以数据库来体现。 4) 用户的特点:本软件的受益者包括所有就餐的顾客、服务人员和经营者,餐厅的服务人员必须要会最基本的手机操作,以及熟练掌握餐厅或酒店点菜的基本流程。 3.2开发运行环境需求 软件运行平台:AndroidSDK1.5以上版本运行使用内存:1MB所需磁盘空间:10MB 系统要求操作简单方便、界面友好直观
23、,完全控件式的页面布局,使得菜品,价钱,优惠活动,资讯,座位等信息的录入工作更简便;许多选项包括餐厅信息介绍,桌位预订信息,包房预订信息等只需要点击鼠标就可以快捷准确地完成;另外,跟踪出现的提示信息也让使用者清楚直观的看到自己的操作情况。对常见的点餐系统管理的各个方面:菜名等基本信息录入、浏览、删除、修改、搜索等方面都能大致实现,顾客对菜品的特殊要求(如有什么忌口)和对菜品的预定(定时上菜)及结账时的支付方式(现金或刷卡)即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在吧台的总服务器上对应栏目中同步的显示出来,达到“即时点击、即时见效”的实效功能;系统运行应该操作方便、快速、稳定、
24、高效和可靠;在结构上系统应该具有很好的可扩展性,便于将来的扩展、修改和维护,已达到多功能的实现。3.2.1软件需要具有如下功能: 1.系统的登录功能2.更新功能3.结算功能4.系统菜单5.点餐功能 3.2.2功能描述 1) 系统的登录功能:根据数据库中录入的用户基本信息(员工的工号),来区分用户是管理员还是普通用户,来进入功能不完全相同的界面。2) 查台功能:按照餐桌号查询此台的情况;3) 更新功能(管理员): 增加、删除或修改一个菜单信息;增加一个餐桌信息;4) 点餐功能(顾客): 增加一个点菜的菜单信息;增加一个餐桌信息;下单; 5) 结算功能:根据订单编号(包括桌号和点餐人员的工号)查询
25、点餐订单信息和订单信息详情列表(菜品是否上齐)来结算;3.3 性能质量需求分析主要质量属性详细要求正确性按照需要正确的执行任务,完成哥哥模块的相应要求健壮性具有相当高的回复能力和容错能力性能、效率软件的输出结果、更新周期应该与系统的信息更新周期相同。在网络情况良好的正常情况下,相应用户请求在三秒内完成易用性易理解性:软件研制过程中形成的所有文档前后一致,语言简练,易于理解以及语句五歧义。安全性防止软件受到意外或蓄意的攻击,使用、存取、毁坏、修改或 泄密的软件属性其数据都集中存放于总后台的数据库服务器。可扩展性能方便的进行二次开发,满足对功能的扩充或提高并能提高相 应的安全控制。兼容性不易与其他
26、软件发生冲突。3.4 总体设计原则3.4.1 开放性、可扩充性、可靠性原则 开放系统是研发各种计算机产品普遍遵循的基本原则,遵循这种标准的计算机产品都符合一些可以互通操作的、公共的的标准,能够融洽的在一起工作,不发生冲突。开放系统使得各种类型的网络和系统标准统一、互连简单、容易扩展升级版本。从而适应广大用户需求的多变性,提升产品的更新换代的效率。3.4.2 良好的用户操作界面 用户操作界面简单、美观、方便、实用,使用户一目了然,能在较短的时间内掌握其使用方法。使用户能够方便使用,不因使用不得当而抛弃。3.4.3 实用性原则 任何系统的设计都要考虑其在生活中的实用性,系统开发的目的是为了实现业务
27、处理简便化、自动化、规范化,提高工作效率,减少无用功,减轻工作人员的劳动强度,增加收入,减少开支,使得管理更加规范。3.5 架构概述 无线点餐系统主要由用户终端、后台数据库、无线网络和系统管理平台组成。其中的用户无线终端设备、后台服务器和无线路由是系统硬件设备,终端点餐软件、后台数据库系统和管理系统是系统软件部分。无线点餐系统的数据传输主要集中在用户无线终端、后台服务器、厨师终端和收银台设备之间进行传递。整个系统的控制核心是后台服务器主机。顾客无线终端设备利用终端软件通过无线网络连接到后台服务器主机上的数据库系统,通过用户身份验证后可以进行点餐、换台、结帐等日常操作,同时也支持进行信息更新,更
28、新的信息包括新菜单和当前台位信息。厨房区的终端通过无线网络接收到实时点餐信息,提供给当值的厨师和送菜员工。而系统后台管理平台则负责对整个点餐系统进行系统维护,包括人员的权限管理,菜品和价格的录入与更新,点餐单据的更改和撤销,同时还会对系统信息进行分析和综合。 手持终端设备的发展已经从原来的基于PDA产品开发的移动终端和基于嵌入式系统的自主研发的终端设备向大屏手机和平板电脑进行过渡。在无线通信协议的选择上有WIFI和Zigbee两种协议可供选择。两种所占的频带都是2.4GHz。我们本文设计中采用的是WIFI通信协议。另外在整体的系统设计上,为了克服无线网络的弊端,我们在后台服务器与厨房的网络设计
29、上采用有线的方式进行连接,只在顾客终端设备和后台服务器之间使用无线网络实现数据传递,这样既有效避免复杂场景对无线系统造成的影响,又可以发挥无线网络的强大优势。系统管理平台实现对无线点餐系统的所有硬件设备的控制和管理,使其构成一个有效的机体。通过管理平台,除了可以进行日常的点餐操作处理,还可以支持远程监管,通过监管系统的信息收集,不仅可以有效收集到饭店运营的各项有效数据,还可以对饭店运营中的各项表单、账单和财务报表进行审核。这样将信息化的管理融入到餐饮行业这样的传统行业中,使得传统餐饮行业的管理更加有效和透明。 本文主要设计实现了无线点餐系统的软件功能、基于Android平台的软件开发和整体数据
30、库的设计理论。软件设计实现了用户登录、点菜管理、桌位管理和收费管理等点餐系统的基本功能。整个系统运行正常,并且各个页面的交互性较好,反应时长短。在整个设计中运用了基础的Android系统运行库功能编程,也运用到了一些前端页面主控件来控制输入信息,同时检测验证输入的信息并通过JDBC连接数据库确认。在系统规划中先后用系统功能结构图、数据流程图分析了系统所需的各种数据,详细的展示出了系统的各个功能模块并给出了主要功能运行的界面图。该点餐系统目前已经具备了比较完善的管理能力与强大的使用功能。无线点餐系统的开发是为了满足酒店、饭店正常运营管理的需要,以现代化的创新思维结合信息化技术去改变传统的工作模式
31、。3.6 系统概要设计系统的概要设计主要对系统的总体功能有哪些,分别如何设计,如何划分模块,各大模块的主要功能,系统的数据库如何设计进行研究。它为系统的详细设计做铺垫,给出系统的大体轮廓。在系统的设计过程中起着非常重要且不可或缺的作用。3.6.1 模块的划分与功能设计本系统主要分两部分:用户模块子系统和后台管理子系统。用户模块如下图所示,实现选桌,点菜,添菜,计费等功能用户模块结台管理点菜管理并台管理转台管理查台管理更新管理 终端用户子系统主要有以下六个模块构成:点菜管理、并台管理、转台管理、查台管理、结台管理、更新管理、注销、设置等功能。 点菜主要是进行选定桌号,确定人数,开桌以后选择要选择
32、的菜品及下单的过程。 并台是为了方便顾客而能按照他的意思与别人合桌,两桌合到一块吃饭的功能。 转台如果顾客对所在的桌位不满意而设定的,能够换一位置就餐,而其它信息都不改变的功能。 查台顾客进入酒店需要查询有哪些客桌是空的,哪些是预先订过的,方便顾客选桌位。 结台在顾客就餐完毕后,点击桌号,计费信息和付帐的功能一目了然,使顾客可以非常清楚的阅读消费清单,不用担心有什么算错的问题。更新就是对酒店的就餐信息及时更新,例如:桌位,计费,预订情况,加菜等功能的更新,与服务器保持一致。 注销在顾客结账以后,确认结账后进行的步骤,方便后来的客人能够及时了解就餐桌位的信息。 设置系统简单设置功能。 后台管理子
33、系统由餐品管理和服务管理两部分组成。餐品管理模块用于对餐品进行添加、特殊要求、修改和删除管理。服务管理模块用于对菜单和订单的催促进行管理。第四章 数据库设计数据库是按照数据结构的方式对数据进行组织、管理和存储的数字仓库。数据库的设计就是在特定的应用环境下,在对已有数据需求进行有效分析的基础上,构造出物理结构和优化的数据逻辑模式,根据所构造出的结构与逻辑来建立数据库和应用系统。同时设计满足要求的各种实体表格,以及他们之间相互关系,使其通过相互的关系和作用形成数据流的移动。 数据库设计包括数据库的建设和数据库与应用系统的设计。数据库建设是由硬件建设、软件建设和干件建设三部分结合而成的。技术与管理的
34、界面称之为 “干件”。数据库设计应该与应用系统的设计相结合,数据库的设计包括结构数据设计和行为处理的设计。结构数据设计主要是指设计数据库的框架或数据库的结构。行为处理设计是指应用程序的设计和相应事务的处理设计。传统的软件工程忽视对应用中数据语义的分析和抽象,更关注数据模型的建立和建模方法的研究,忽视了对行为的设计。因此构造适合系统的数据库模式,建立数据库及其应用系统,使之能够有效地存储所需数据,才能满足各种用户所提出来的应用需求。4.1 数据库需求分析 无线点餐系统以酒店的服务信息为主体,因此在这个系统中必须要有一个保存所有菜单信息的表。这个表的各个字段应该包括菜品的基本属性。如:菜品的名称、
35、口味、编号、价格等。其中编号应该唯一。所以要用编号做主键。点餐系统是服务人员负责登录的终端系统,也应该有保存全体服务人员信息的表,这个表中也是包括一些基本信息。并且以服务人员的编号即工号作为主键。在一个点餐系统中,桌位的编号是必不可少的。所以还必须有一个桌号表,该表保存桌位信息包括桌位的可容纳就餐人数。顾客可以按照自己的人数和喜好,在酒店布置的尚未入座的桌号中选择自己喜欢的位置。另外既然是酒店就必须要有一个订单表,该表中包括订单号,点餐时间,菜品备注,用户 ID,桌号,就餐人数,是否结账等基本信息。这样也就还需要一个订单详细表用于存储顾客所点的菜品信息等等。还可以根据需要再弄一个菜品分类表用于
36、区分凉菜,热菜等。4.2 数据库的逻辑设计数据库的逻辑设计,即把概念设计所收集的的概念数据库模式转变为逻辑数据库模式,它依赖于 DBMS。 根据无线点餐系统的需求分析,以及数据库的概念逻辑设计,得到以下的数据库表和表的相关说明如下:1) 菜谱表:菜谱图的表结构及相关说明如下表所示。字段名称数据类型说明Id自动编号编号,主键typeid数字外键,引用菜单类型表IDName文本姓名price文本价格picture文本菜图片remar数字菜品描述2) 服务人员信息表:服务人员信息图的表结构及相关说明如下表所示字段名称数据类型说明Id自动编号编号,主键name文本服务员账号Password文本服务员密
37、码3) 菜谱分类表:菜谱分类图的表结构及相关说明如下表所示。字段名称数据类型说明Id自动编号编号,主键Name文本类型名称 4) 桌号表:桌号图的表结构及相关说明如下表所示。字段名称数据类型说明Id自动编号编号,主键Number数字桌号flag数字标志位description文本描述5) 订单表:订单图的表结构及相关说明如下表所示。字段名称数据类型说明Id自动编号编号,主键orderTime数字下单时间tableId数字桌号,外键引用桌号IdPersonNum数字人数isPay文本是否结算Remark文本备注6) 订单详细表:订单详细图的表结构及相关说明如下表所示字段名称数据类型说明Id自动编
38、号编号,主键orderId文本外键,参照订单IdmenuId数字外键,参照菜谱IdNumber数字数量Remark文本备注4.4 数据库的选择 在本系统设计中还需要一个后台的数据库来进行数据的管理和保存。对数据库的要求就是运行稳定并且具有强大的数据处理功能。Oracle 数据库是一个成熟的大型数据库管理系统,但是使用这样的大型软件,需要高昂的软件购买费用和技术维护费用,同时对技术人员的要求也相对高,因此整体的费用比较大。对于我们目前设计的点餐系统应用,使用大型的数据库的性价比并不高。而使用MySQL 数据库则具有很好的性价比。MySQL 大的优势就是,在 Unix/Linux 操作系统上可以从
39、网站上下载 MySQL的新版本并且免费使用。在 Windows 的环境下使用 MySQL 数据库,可以从网上下载比较低的版本,如果使用新版本只要支付一定的费用。虽然 MySQL 数据库是免费的,但其功能一点也不逊色,其具有以下特色: 1) 易用性。同 oracle 等大型数据库相比,MySQL 数据库是一个相对简单但具有高性能的数据库系统,MySQL 的结构复杂程度较低,易于技术人员学习、熟悉和使用。(2)高效性。MySQL 数据库的运行速度快。2) 标准化。MySQL 支持使用结构化查询语言 SQL种所有的流行数据库系统都能够使用和支持的数据库操作语言。 3) 支持 ODBC 协议。MySQ
40、L 支持 Microsoft 开发的开放式数据库连接协议 (ODBC)。 4) 多用户操作。MySQL 数据库支持多个客户机同时连接操作,同时支持多用户的分级访问权限管理。此外 MySQL 数据库系统还支持多个客户机终端访问多个数据库的操作模式。 5) 良好的移植性。在应用的软件环境上,MySQL 数据库不仅可以运行在不同版本的 Linux 和 Unix 操作系统上,还可以运行在 windows 操作系统环境下。在应用的硬件环境上,MySQL 数据库系统不仅可以运行在高档服务器上,还可以应用于普通 PC 机上。 6) 开放性。通过 MySQL 的官方网站和其他相关的网站,可以下载到 MySQL
41、的组件。对于不满足自己要求的组件,可以下载到其对应的源代码来进行修改,使其满足自己的个性化需求。 7) 强大的技术支持。MySQL 的官方网站提供有 MySQL 数据库全部版本的参考指南,参考指南内容非常详尽和全面。此外网上还有很多 MySQL 开发组和论坛,通过邮件可以随时和开发组成员进行讨论,一般问题可以通过这种方式进行解决。 8) 易实现性。MySQL 数据库为常用的编程语言(C、JAVA、PHP、C+等)都提供了 API 函数接口,这样适用的技术人员就非常广泛,使得 MySQL 数据库的设计和实现更加容易。4.5 MySQL 数据库的优化 数据库的优化工作相对来说比较复杂,其基本的指导
42、思想是使得系统运行速度快。因此在优化数据库之前需要知道目前系统的状况和影响系统高速运行的瓶颈。常见的瓶颈有: 1. 磁盘的查询速度:数据库操作需要在磁盘中查找数据,比如表的操作。 对目前常用的磁盘,一次查找时间一般小于 10ms,这样平均每秒可以进行 100 次左右的查询操作。使用新的硬盘对于这个指标的改进和提升并不高,因此常用的解决方案是使用多个硬盘,把数据分开存储,通过并行的方式来提升性能。2. 磁盘的读写速度:数据库进行数据更新、增加和删除需要对磁盘进行读 写操作。当前磁盘读写速度一般平均在 20MB/秒左右。和磁盘查询的优化方案类似,同样可以使用多个磁盘并行操作来提升读取和写入数据的性
43、能。3. CPU 主频:当数据从磁盘读取到主内存后,对这些数据的处理速度取决 于 CPU 的工作主频。因此如果在这方面的操作频繁,需要考虑多核架构或者提升 CPU 的工作频率。4. 内存带宽:CPU 进行数据处理的时候,会将大部分的数据从磁盘读出并 缓存在系统内存中,因此系统内存的带宽在一定程度上也是影响整个系统运行速度瓶颈的因素之一。 上面列举的是数据库运行的硬件瓶颈因素,我们除了针对这些硬件做相应的调整和改进来提高系统的运行速度之外,还可以通过对 MySQL 自身进行优化配置来提升运行速度。对 MySQL 的优化配置工作主要是对 MySQL 数据库配置文件中的参数进行优化。以下就是我们在实
44、际设计中用到的对性能有较大影响的重要参数: 1) MAX_CONNECTIONS:大连接数参数。由于 MySQL 数据库支持并行连接,而且其会为每个连接提供缓冲区,当服务器接收到的并发请求多的时候,就会消耗掉很多系统内存。如果要支持的并发连接需求大的时候,要适当调高该参数来支持,但不能一味的调高,需要结合系统本身资源和常用连接数量综合考虑。 BACK_LOG:MySQL 具有的连接数量参数。该参数在 MySQL 的线程在一个非常短的时间里收到很多连接请求的时候起作用。该参数的值是指 MySQL 在停止回答一个新的请求之前有多少个请求被缓存到堆栈里面。如果需要缓存的请求多的话,需要增加这个值。该
45、参数的设置还需要考虑你的操作系统对于网络侦听队列大小的设置,如果操作系统对于系统连接本身有自己的限制条件,那么该参数的设置的上限要以系统设置为依据。不可盲目提高,否则也不能起到实际作用。 2) KEY_BUFFER_SIZE:关键缓冲区尺寸参数。该参数影响 MySQL 数据库的索引处理速度。该参数的设置是通过请求和实际操作比的对应关系来进行设置的,我们要保证这个比例尽可能的高。关键缓冲区大小参数只对 MyISAM 表有效,但需要知道的是临时磁盘表也是 MyISAM 表,即使你自身不使用 MyISAM 表,也需要对该参数进行配置。 3) QUERY_CACHE_SIZE:查询缓冲区尺寸。为了提升
46、查询的速度,MySQL 在新版本中使用了查询缓冲机制,对于第一次使用 SELECT 语句得到的查询结果,MySQL会将其保存到查询缓冲区中,如果后面碰到相同的 SELECT 语句,就不需要进行磁盘操作,而是直接从查询缓冲区找到对应的查询结果。通过使用查询缓冲区机制,查询缓冲可以提升接近 240%的性能。我们在实际操作中,可以通过Qcache_%来检查系统状态值,通过状态值来判断缓冲区大小设置的是否合理。如果缓冲区尺寸设置的太小,会导致 Qcache_lowmem_prunes 的值比较大。如果此时 Qcache_hits 的值也很大的话,说明 MySQL 在频繁使用查询缓冲区如果是这种状态下,
47、就适当增大缓冲区。反之如果 Qcache_hits 的值较小,说明查询缓冲区的使用率非常低,查询缓冲机制没有起作用反而占用系统开销,这种情况下可以考虑不设置查询缓冲区。 4) INNODB_BUFFER_POOL_SIZE:InnoDB 缓冲池大小参数。该参数功能与关键缓冲区尺寸参数类似,不同之处在于该参数针对的对象是 InnoDB 表。InnoDB 表根据这个参数来设置用于数据和索引缓存的内存大小。5) INNODB_LOG_BUFFER_SIZE:InnoDB 日志缓冲区尺寸参数。在 MySQL 数据库的表操作中如果有很大数量的并发事务,而且在事务提交前要进行日志记录,那么需要对日志进行缓冲处理,需要适当提高该参数,用于提升日志的记录效率第五章 终端软件设计5.1 终端软件详细设计 移动终端是使用者直观且触手可及的东西,包括是否能够让客户很方便、快捷的使用,操作