Android 点餐系统体系结构设计.doc_第1页
Android 点餐系统体系结构设计.doc_第2页
Android 点餐系统体系结构设计.doc_第3页
Android 点餐系统体系结构设计.doc_第4页
Android 点餐系统体系结构设计.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android 点餐系统体系结构设计Android 点餐系统 体系结构设计Android Ordering System Architecture Design西安石油大学 计算机学院 软件1002班何虹江 杨梦云 盛开 牛梦越2013/5/1015目录一、文档简介11.1编写目的11.2项目背景11.3参考资料2二、设计目标与原则22.1 设计目标22.1.1 业务流程22.1.2 用例分析42.2 设计原则62.2.1 包设计原则62.2.2 外部接口设计原则7三、体系结构设计83.1 系统物理结构83.2 系统数据流程图83.2.1 客户端数据流程93.2.2 服务器端数据流程图93.3 类图设计103.4 系统功能设计113.4.1 系统功能架构113.4.2 功能模块设计123.5 手机客户端与服务器的交互设计14一、 文档简介1.1 编写目的本文档描述Android 点餐系统的设计过程,此文档的编写目的是为了让设计以及运行人员能通过该文档以明确的软件构造体系设计方案规划来实现软件开发的要求,方于客户、软件设计人员、软件开发人员和整合测试人员了解体系结构具体设计方案,为其制作功能实现提供构造体系提供一定方便的直接性结构说明。本说明书的预期读者为中间用户(指软件的管理人员、设计人员、开发人员、测试人员、维护人员)。1.2 项目背景 智能手机的普及已经使得它的触角伸向了人们生活中的方方面面:聊天,购物,信息查询以及娱乐,体现出了取代个人电脑的态势。目前Android操作系统占据着智能手机60%的份额,并且呈不断上升的趋势,在这种情况下大量开发人员开始研发基于Android平台的应用程序,这些应用程序更加地丰富了人们的移动生活。 随着WLAN技术的普及,一些规模较大的酒楼餐厅开始考虑利用这种最为先进、最具时常潮流的网络技术来建设一套灵活、快捷的信息管理系统。传统的点餐方式主要是应用PDA等手持终端为客户点餐,当点完餐后,服务员把存储的点餐信息发射给接收端,接收端再将点餐信息通过网络传送到前台计算机。最后前台计算机会对点餐信息进行分类,分发给收银台及厨房。目前绝大部分餐厅都采用上述方式,甚至有一部分餐厅还处于手工操作方式。但其不仅要购买充足的PDA还要对服务员进行培训,无形中是会增加很多成本,所以很多小餐馆还是会采用最原始的手工操作方式点菜。正因为传统点菜方式存在许多的缺点值得改进,本文决定研发基于Android平台的点餐系统,以此来提高餐厅工作人员的工作效率。与传统的点菜方式相比,基于Android平台的点餐系统有许多的优势,具体表现在如下几个方面:(1)降低运营成本:整个点菜过程不需要服务员的参与,可由客户自行完成,餐厅可根据需求适当缩减工作人员规模,从而有助于降低餐厅的运营成本。(2)提供工作效率:与传统点菜方式相比,利用点餐系统可简化整个点菜流程,客户点菜完成后可直接传送到前台进行下单,有助于提供工作人员的工作效率。 (3)降低出错率:传统方式均由客户点菜,服务员进行记录再传送到前台进行下单,该过程极其容易出错,经常出现点菜错误的情况,而基于Android平台的点餐系统的点菜过程为顾客选择,服务员下单,基本不会出现点菜错误的清况。 (4)可满足客户的各种需求,有助于提高餐厅的品牌形象:基于Android平台的点餐系统可满足不同客户的需求,对于不愿意进行自助点餐的客户,服务员可通过在自己手机上安装点餐系统来协助客户完成点餐。同时基于Android平台的点餐系统的应用,会吸引更多的年轻客户来餐厅进行消费。 由于点餐系统具备上述优势,与此同时餐厅有上述需求,因此本文的工作重点在于设计实现基于Android平台的点餐系统,并将最终实现的系统应用到餐厅的日常点菜业务中,以便提高整个餐厅的工作效率,并创造更多的利润。1.3 参考资料 1 张友生 软件体系结构(第2版) 北京:清华大学出版社,2006.11 2 卫红春 UML软件建模教程 北京:高等教育出版社,2012.8 3 李丹 基于Android平台的点餐系统的设计与实现D. 北京邮电大学 2012 4 童治军 基于Android平台的C_S结构点餐系统技术研究M. 萍乡高等专科学校学报 2012年12月出版 5 罗钱江 基于IOS平台移动点餐系统设计与实现D. 电子科技大学 2010 6 Marco Bellinaso, Kevin Hoffman. ASP. NET Web高级编程M. 北京:清华大学出版二、 设计目标与原则2.1 设计目标 本节主要从业务流程分析以及用例分析两方面对基于Android平台的点餐系统的功能需求进行介绍。2.1.1 业务流程 业务流程分析的最终目的是分析现行系统中的问题,以便得到改进,同时剔除业务流程中的不合理流向,以便提高平台的工作效率,使酒店在线订餐管理系统的进行工作系统化、规范化和自动化。 因此做好业务流程分析是系统设计一个很重要的部分,一个好的业务流程分析能够优化系统,降低系统的开发成本。 本节将从点餐系统总体流程以及客户端和服务端流程两部分对点餐系统的业务流程进行介绍。 (1)点餐系统总体流程 基于Android平台的点餐系统的总体流程包括如下步骤: 顾客进入餐厅,在服务员的指引下坐到对应的餐桌: 向服务员咨询开台情况,并利用智能手机进行开台操作; 顾客使用智能手机进行点菜; 在点菜完成后,顾客可能会进行加菜或退菜的操作,服务员需及时处理客户要求; 顾客完成点菜过程之后,可在客户端查询已点菜单; 顾客可对已点菜单进行确认,确认完成,由服务员进行下单,即将菜单上传到服务器,经由前台和厨房进行相关操作; 前台完成对订单的确认,并打印订单,厨房根据订单进行做菜; 厨房出菜的时候与前台进行对比,防止出现出菜错误的情形,然后由服务器将菜传送到对应餐桌; 顾客吃完饭后,到前台进行结账操作。根据上述分析可得到基于Android平台的点餐系统的总体流程图,具体如图2-1所示: 图2-1点餐系统流程图 (2)点餐系统客户端和服务器端流程 由基于Android平台的点餐系统的特点可以知道,该系统由客户端和服务器端两部分组成,客户端和服务器端两部分的功能各不相同,客户端的作用主要完成点餐系统总体流程中的(1)-(6)步骤,即顾客从进店到点餐完成的整个环节,在此不再作详细介绍。 服务器端的主要作用在于实现与数据库的交互,完成相应数据的增加、删除以及修改,具体的操作流程如下所示:系统管理员利用正确的用户名和密码登录进入系统。管理员成功登录进入系统后,可对系统的相关信息进行管理,具体包括订单管理、用户管理、菜谱管理、餐桌管理以及系统管理等,根据功能需要可以分离出一个公共服务层,把应用共同访问的业务逻辑放到公共服务层里。根据上述分析可得到基于Android平台的点餐系统的服务器端的工作流程图,具体如图2-2所示:图2-2点餐系统服务器端流程图2.1.2 用例分析 UML属于面对对象的建模语言,利用它来进行需求分析可清晰表达系统所包含的功能,最突出的特征是可以将复杂的系统功能以视图的方式展示出来,以便对系统功能的最终实现进行跟踪。本系统在需求分析中也使用UML建模方式。下面对点餐系统进行用户分析。 (1)系统用例图 根据前文的业务流程分析可以知道,基于Android平台的点餐系统包含五种不同的用户类型,具体为顾客、服务员、经理、厨师、餐厅管理者以及系统管理员,不同用户拥有的功能权限是不一样,面对每个用户的功能权限进行介绍。 顾客:引入点餐系统的目的在于取代服务员的功能,因此其可以进行点菜、查看、评价以及结账,其与服务员的区别在于不具备开台、转台以及并台等相关操作,这些权限若下放到顾客,容易造成出菜出错,不易于管理。 服务员:首先当顾客进入餐厅时,需引导顾客进入对应的餐桌就座,同时为顾客进行开台操作,然后将餐厅提供的智能手机给顾客进行点菜操作,当点菜完成后,由服务员进行下单操作。当客户需要更换位置时,服务员需为顾客进行转台操作,同时还包括并台需求。 经理:餐厅经理的作用在于掌握餐厅的运营情况,并根据顾客评价及时做出调整,同时还能查看餐厅的业绩,并将相关营业报表打印,以便给餐厅拥有者查看,除此以外还可以查看每个员工的业绩。 厨师:根据顾客的菜单做菜,查看顾客对菜谱的评价,以此作为菜品改进的方向,同时还可以查看每到菜品被点的次数。 餐厅拥有者:查看餐厅的日、月营业收入统计报表,查看工作人员的业绩报表,并据此来调整经营方针。 系统管理员:完成各项管理工作,如订单管理、用户管理以及菜品管理等。根据上述分析可以得到点餐系统的用例图,具体如图2-3所示:图2-3点餐系统用例图 (2)无线平台的接口分析 基于Android平台的点餐系统由手机客户端和应用服务器两部分组成,两者之间需通过无线通讯来进行数据的交互,由此可知在两者之间需提供相应的数据接口和通讯接口。 数据接口的设计需考虑各方面的需求,首先需满足可移植性和跨平台的需求,为达到上述目标,本文所使用的数据格式为当前应用较为广泛的XML语言,并且Android平台也支持相关XML接口协议。网络数据的传输需要通信接口,比如GPRS, 3G的传输需要有硬件模块的支持,这些硬件模块在Android手机中己经存在。系统主要采用无线联网技术通信,根据上述分析得到网络过程状态图,具体如图2-4所示:图2-4网络过程状态图 系统详细设计建立在需求分析的基础上,设计的主要目的在于确定点餐系统的体系结构和功能架构,并对系统中各功能进行详细设计,以此为基础来实现系统功能。与此同时,为了实现高效率以及高可靠性的数据存储,系统还对客户端和服务器端的数据库进行了设计。2.2 设计原则 设计实现基于Android平台的点餐系统的目的在于为顾客和餐厅构建一个高效的工作平台,顾客利用此平台可完成点菜操作,工作人员利用该平台替代原有的工作模式,能提高工作效率。为了达到上述目的,本文在进行系统设计时需遵循某些基本原则,本文从包设计原则和接口原则两部分进行介绍。2.2.1 包设计原则 包设计原则必须遵循如下几个方面: (1)发布重用等价原则:重用的粒度就是发布的粒度 一个可以重用的组件,只有在它们被某种发布系统管理以后才能被重用。用户不愿意使用那些每次改动以后都要被强迫升级的组件。所以,就算开发者发布了可以重用组件的新版本,那也必须支持和维护旧版本,这样才有时间让用户熟悉新版本。因此,将什么类放在一个包中的判断标准之一就是重用,并且因为包是发布的最小单元,它们同样也是重用的最小单元。体系结构师应该可将可重用的类都放在包中。 (2)共同封闭原则:一起变化的类放在一起 一个大的开发项目通常分割成很多网状互联的包。管理、测试和发布这些包的工作并不简单。在任何一个发布的版本中,如果改动的包数量越多,那么重建、部署和测试要做的工作也越多。所以我们应该尽量减少在产品发布周期中被改动的包的数量,这也说明了我们要将一起变化的类放在同一个包里。 (3)共同重用原则:不一起重用的类不应该放在一起 对一个包的依赖就是对包里面所有东西的依赖。当一个包改变时,这个包的所有使用者都必须验证是否还能正常运行,即使它们本身没有任何改变也不行。如果把不一起使用的类放在一起,一个无关的类的改变也产生包的一个新版本,就会被迫升级和验证这个包是否影响正常的运行。 这三条原则并不能同时被满足,因为它们是互斥的,每一条原则都只是针对了一方面,只对某一部分人有好处。REP和CRP对想重用组件的人有好处,CCP对维护人员有好处。CCP使得包有尽可能大的趋势,因为如果所有类都属于一个包,那么势必中会有一个包的变化,而CRP却是尽量使用包更小。2.2.2 外部接口设计原则 外部接口在设计时需遵循如下基本原则: (1)用户界面 在用户界面部分,根据需求分析的结果,用户需要一个友善的界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局。系统的用户界面应该具有良好的人机交互特性,简易性和易操作性。 (2)软件接口 本系统需要封装好数据库访问接口,以满足系统对数据库进行所有方式的访问。除此以外还要提供对数据的备份功能。 (3)出错处理设计 一般包括:登录信息错误,转台错误和数据输出错误。具体错误列表如表2-1:表2-1错误信息列表错误类型错误原因错误处理登录信息错误用户在登录的过程中用户名或密码有误输出错误语句,提示用户重新输入数据输入错误用户输入的数据不符合该输入项的域规范输出错误语句,提示用户输入有误操作超时用户超过一定时间未使用系统输入错误语句,提示用户重新提交无响应或操作失败网络中断输出错误语句,提示用户检查网络情况三、 体系结构设计3.1 系统物理结构根据前文的需求分析可以知道,基于Android平台的点餐系统需满足两种不同类型的处理需求,第一种为顾客利用手机客户端完成点餐流程;第二种为顾客在服务员的协助下完成就餐。而目前应用较多的架构为C/S模式,即客户端服务器模式,另一种为B/S模式,即浏览服务器模式。基于Android平台的点餐系统采用的是C/S和B/ S的混合模式结构,其中手机客户端的实现采用的是C/S模式,而服务器端基于B/S模式进行实现。本系统的系统物理结构如图3-1所示:图3-1点餐系统物理结构 由点餐系统物理结构图3-1可以知道,餐厅提供两台服务器,一台为web服务器,用于运行点餐系统的后台,一台为数据库服务器,用于保存系统的数据信息。同时客户端Android系统设备通过无线网络访问后台服务器,如果需要数据访问,则访问后台数据库服务器。3.2 系统数据流程图 基于Android平台的点餐系统由客户端和服务器端两部分组成,两部分具备的功能是不一样,客户端主要负责点菜,服务器端负责信息管理。本节将从客户端数据流程和服务器端数据流程两部分对其进行介绍。3.2.1 客户端数据流程 客户端的基本流程如下所示: (1)用户输入正确的登录凭证进入系统,若登录凭证不对,系统会自动返回到登录页面,提示用户重新输入登录信息,直到用户成功登录进入系统。 (2)用户成功进入系统后,可先进行查台操作,若餐厅存在空余座位,可进行开台操作。 (3)开台完成后,用户可进行点菜,点菜完成由服务员进行下单操作。 (4)就餐后,可进行结账。根据上述流程可得到客户端的数据流程图,具体如图3-2所示:图3-2客户端数据流程图3.2.2 服务器端数据流程图 服务器端的基本流程如下所示: (1)用户输入正确的登录凭证进入系统,若登录凭证不对,系统会自动返回到登录页面,提示用户重新输入登录信息,直到用户成功登录进入系统。 (2)用户成功进入系统后,可进行各类信息的管理,如餐桌信息管理、用户信息管理、订单管理以及菜谱管理等,其实就是对上述信息进行添加、删除以及修改操作。为了简化流程图,本节以菜谱管理为例进行说明,不再将所有信息加入到流程图中,根据上述描述可得到点餐系统服务器端的数据流程图,具体如图3-3所示:图3-3服务器端数据流程图3.3 类图设计 类图是面向对象系统建模中最常用的图,描述的是系统中类的静态结构。类图不仅定义了系统中的类、表现类与类之间的关联、依赖、类属、聚合、组合等关系,还描述了类的内部结构,包括类的属性和类的方法,此外,类图还描述了类集、接口集、协作以及他们之间的关系。因为类图所描述的是一种静态关系,所以它在系统的整个生命周期内都是有效的。类图是对象图、时序图、协作图、组件图、配置图的基础。在类图的基础之上、用例图、状态图、活动图进一步描述系统其他方面的特性。由于本系统包含的类比较多,同时每个类中实现的方法较多,在类图中不展示所有方法,只以重点方法为例来对其进行说明,点餐系统的类图如图3-4所示:图3-4点餐系统类图 由点餐系统程序类图可以知道,首先系统中包含大量的类,如人员管理类、评价类以及选餐类等,同时各个类之间存在不同的关联关系,首先人员管理类实现对系统用户的管理,如厨师、经理以及服务员等,其次统计系统会调用收费系统中的方法来完成相关操作,除此以外,系统用户还会调用其他类的功能,如经理会调用打印报表类的打印方法。同时类图中包含很多实体,如订单,其包含属性包括菜单名、单价以及总价等,而收费系统只包含一个操作即收费功能。3.4 系统功能设计本节主要介绍基于Android平台的点餐系统的功能结构,具体从系统功能架构以及模块设计等两部分进行说明。3.4.1 系统功能架构 本节的主要工作在于明确点餐系统的功能模块组成,并明确各子模块的功能组成。它是需求分析和系统实现的桥梁,也是系统设计阶段的最开始和最重要的阶段。根据上一节的系统需求分析可知,基于Android平台的点餐系统由登录模块、点餐模块、结账模块、餐台管理模块以及更新模块等几大模块组成,每个模块的作用各不相同,并且彼此之间又存在依赖关系,通过分析上述模块之间的联系以及系统需求,可得到点餐系统的功能架构,具体如图3-5所示:图3-5点餐系统功能架构3.4.2 功能模块设计 由于点餐系统包含两个部分,客户端和服务器,下面分两部分对系统的功能模块进行介绍。 (1)客户端 根据点餐系统的功能架构可以知道,客户端包括的主要功能有登录功能、系统主菜单功能、点餐功能、结账功能、查台功能以及更新功能等,下面对上述功能进行详细介绍。 系统登录功能 任意用户在使用点餐系统前,必须提供正确的登录凭证才能进入系统,否则会拒绝用户使用系统相关功能,对于未注册的用户可事先进行注册,这样就可以提高系统的安全性,防止被恶意用户使用。同时,为了让系统有良好的人机交互界面,本软件系统用户界面布局应考虑到用户的操作,做到功能布局明显,空间分配平衡,以及界面结构和风格的一致。 系统主菜单 用户在登录进入点餐系统后,系统会首先将主菜单展示给用户,如点菜以及菜谱查询等,点击菜单项,系统会自动跳转到对应的功能处理页面。本软件在进行设计时充分考虑到系统的简易操作性,具有操作简单,快捷的特点,并尽可能保证在操作上能够与通用的一些常用软件保持一致,以此缩短用户对系统操作的理解时间。同时并且减少用户发生错误选择的可能性。 点餐功能 点餐功能是点餐系统中的核心功能,它主要处理用户的点餐要求,并由此生成菜单,在顾客点餐完成以及服务员下单后,系统会自动将生成的菜单信息传输到前台服务器,由经理和厨房进行处理。 此功能包括了三部分:开桌、点菜和下单。点菜部分的菜品展示可以按类别分开显示,类似书籍翻页的效果,方便顾客点菜。对提交的订单支持修改或取消。同时,尽可能地在界面中使用能适应用户本身的语言,而不能是设计者的语言。在设计界面时必须要考虑到人类大脑处理信息是不稳定并且有限度的。所以对于用户来说,浏览信息要比一记忆更加容易一些。这也是符合记忆负担最小化原则的。 结账功能 顾客在就餐完成后可通过点击“结账”按钮来向前台提交结账请求,具体的结账流程如下所示:首先收银员接收结账请求后,可根据菜单详细列表来进行金额的计算,并以此为最终结果。由于涉及到金额,因此要求计算结果准确,同时不能出现数据混乱的情况,在出现数据库故障的情况下,可实现数据的恢复,防止数据丢失给餐厅带来不必要的损失。 查台功能 当顾客进入餐厅时,服务员需进行查台操作,以此来确定当前餐厅是否有合适的空余座位。若没有空余座位,则需将相关情况告知顾客,请顾客耐心等待。若有空余座位,则引导客户到对应座位就座。 更新功能 为了提高程序的运行效率,将服务器中菜品表(menutbl)和餐桌表(tabletbl)中的数据保存到客户端SQLite数据库中。因此,当服务器中的数据改变时需要及时将服务器中的数据动态地更新到客户端,更新功能就是为此而设计的。 (2)服务器端根据前文的分析可以知道,服务器端包括的功能有登录功能、用户管理、菜谱管理以及系统管理等,下面对上述功能进行详细介绍,在需求分析的时候我们已经决定使用公共服务层进行操作设计,具体构件设计如图3-6所示:图3-6 公共服务层构件图登录功能任意用户进入服务器端,均需提供正确的用户名和密码,否则拒绝用户进入,由于服务器中存储着餐厅非常重要的信息,若用户信息以及菜谱信息等,若上述信息丢失或被窃取,均会给餐厅带来不必要的损失,由此可提高系统安全性。于是我们设计登录控制器实现安全控制,其作用方式如图3-7所示:图3-7系统管理员登录顺序图用户管理用户管理的主要作用在于实现用户的添加、删除以及修改功能。管理员进入系统后可对恶意用户进行删除,也可手动添加管理员用户,或者修改个人信息,如密码等。菜谱管理菜谱管理包含菜品添加、菜品删除以及菜品修改三个部分。管理员

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论