资源描述
大连工业大学 2014届本科生毕业设计(论文) 毕 业 设 计(论 文) 题目: 网上订餐系统 子题: 专 业: 网络工程 指导教师: 李吉平 学生姓名: 刘 岩 班级-学号:网络101-18 2014年 6 月大连工业大学本科毕业设计(论文)网上订餐系统THE DESIGN AND IMPLEMENTATION OF ONLINE MEAL ORDERING SYSTEM设计(论文)完成日期 2014 年 5 月 25日学 院: 信息科学与工程学院 专 业: 网络工程 学 生 姓 名: 刘 岩 班 级 学 号: 网络101-18 指 导 教 师: 李吉平 评 阅 教 师: 2014年 6 月大连工业大学 2014 届本科生毕业设计(论文) 摘 要本文分析了系统主要的各个功能的设计、实现过程,有条理地阐述系统的设计思想、系统规划等内容。软件设计部分采用面向对象的软件设计方法,利用UML的标准对系统的主要部分进行建模和设计,采用B/S结构,采用MyEclipse8.5开发工具,结合java编程语言,Tomcat7.0作为服务器,使用JDBC连接数据库,struts2框架做页面间的跳转。系统后台利用MySQL作为数据库服务器支持,完成动态的、交互的网上订餐系统。系统主要功能实现了管理员对系统菜品管理,用户个人基本信息维护,订单管理,特价菜单管理;用户基本信息注册,找回密码,菜单查询及订购各色菜品;登录,查询菜单信息,及菜品的评价等功能模块。系统的实现有效地为订餐管理工作提供方便,提高工作效率。关键字:B/S结构;MyEclipse 8.5;MySQL;JAVA;Strust2ABSTRACTThis paper analyzes the system each function of the design, implementation process, clearly illustrates system design idea, system planning, etc. Software design part adopts the object-oriented software design method, using UML standard modeling and design for the main part of the system, adopts B/S structure, using MyEclipse10 development tools, combined with the Java programming language, Tomcat7.0 as a server, using JDBC to connect to the database, the struts 2 framework to jump between pages. Support system background using MySQL as a database server, dynamic, interactive online reservation system. System main function implements the administrator of food management, users personal basic information maintenance, order management, specials menu management; User registration personal basic information, retrieve password, the menu information query and order dishes; Menu login, query information, and evaluation of food function module. The realization of the system for order management work effectively and provide a convenient, improve the work efficiency. Keywords: B/S;MyEclipse 8.5; MySQL; JAVA; Strust255目 录摘要IAbstractII引 言1第一章 项目概述21.1 现状概述21.2 系统业务流程3第二章 系统需求分析52.1 需求陈述52.2 USE CASE建模62.2.1 定义参与者62.2.2 Use Case图72.3系统功能描述9第三章 总体设计113.1 系统结构113.2 软件架构113.2.1 架构设计目标123.2.2 软件架构设计123.2.3 软件架构类图18第四章 详细设计194.1 系统交互图194.1.1系统架构类交互图194.1.2 参与者与模块间的交互204.1.3 系统协作图224.1.4 系统状态图234.1.5 系统活动描述244.2 业务逻辑对象类设计254.2.1 发现业务逻辑类254.2.2 业务逻辑对象类图254.3 数据库设计264.3.1 数据库概念模型设计264.3.2 数据库表结构设计274.4 开发环境的选择294.4.1 系统开发工具29 4.4.2 数据库的选择294.4.3 系统网络架构设计30第五章 编码315.1 概述开发工具及源程序代码315.2 源程序习惯说明325.3 源程序代码34第六章 测试386.1 测试原则及测试方法概述386.2 测试项目测试用例416.3 软件测试结论446.3.1 软件能力446.3.2 缺陷和限制456.3.3 建议456.3.4 测试评估及总结45第七章 结论46参考文献47致谢48引 言随着科学技术的进步,社会节奏越来越快,网络的迅猛发展,互联网信息技术已日益成为获取信息的最佳方法。餐饮这一行业也面连着巨大的挑战,网上订餐主要是针对工薪阶层还有大学生这些特殊群体,白领们在中午时间或者晚上高峰时间就餐,由于时间的紧凑,不能很好地享受美味,所以网上订餐,这样既可以提前订餐不浪费中午休息的时间,还可和同事加深感情,更可以每天换各种各样的菜品,确保每天的工作效率和身心健康,这些问题就产生了快捷订餐的需求,实现这种式莫过于利用网络,将餐饮业和网络结合起来,就形成最快的方式-网上订餐,这种方式能足不出户,轻松方便地实现自己订购餐饮和食品(包括饭、菜、饮料等)。有能力的餐饮企业可以对菜品、饮料等提供商提供网上订餐服务,不仅提高餐饮企业的服务质量,对于扩大知名度,和提升市场竞争力有很大的益处。随着人民生活质量要求的不断提高,餐饮业及它在服务行业中的地位也越来越重要,如何从激烈的竞争中独树一帜,已经成为每位餐饮老板所要思考的问题。经过多年的发展,对餐饮企业的管理经营已经逐渐的由简单的人为管理,进入到规范的利用科学手段进行管理。在科学管理的具体实现方式和方法中,最有效率的工具就是应用餐饮管理软件进行管理。将应用软件用于现代的餐饮业,解决了传统的笔上记账,统计,对于核算方式计费等费时费力的难题,这种方式既容易操作,又不会出错误,提高了餐饮业管理水平。- 45 -第一章 项目概述1.1 现状概述科学技术在不断发展,计算网络机通信行业让人们人们的沟通越来越便捷,使今天的社会进入了以计算机为核心的社会,网络通信的出现给我们诸多方面带来了无限的商机与便利(比方说餐饮业);计算机与网络的普及也使人们对web的设计和外观要求越来越严格,完美而动感的画面给人们更好的视觉感受,因此,网站作为一个企业的代表需要精心设计。餐饮业经营者也就可以利用自己的网站,发布酒店的信息和菜品信息,每种菜都有精美的图片,这样可以实现酒店或餐馆的自我推荐,从而吸引网民的关注。能够很方便的预定需要的菜品及饮品。足不出户就可以享受上等的佳肴,网上订餐为客户提供的是最方便的饮食方式,以最快、最便捷的订餐服务,并且有自己的类似与肯德基的宅急送,送货上门为客户服务,这省去了客户很多不必要的时间和麻烦,给经营者带来更多利益,同时,网上订餐可以增加社会的就业率。通过信息管理成的方式,可以记录餐饮企业各方面的数据和信息。与过去的的电话订餐相比,网络订餐有着很多的优点。例如如:顾客通过电话订餐时,往往由于本身对餐饮企业提供的信息不太了解,就会进行不必要的咨询,导致时间上的浪费。电话接收人员在同一时间反复重复相同的信息,也造成了人力的浪费。相对而言,网络订餐提供图片及文字介绍,丰富而详实的信息让客户就像在超市里挑选商品一样点击添加自己喜爱的餐品,这在一定程度上满足了客户的自由选择权是购买商品能够更加的惬意。通过网上订餐系统也将订餐推广到更加广泛的群体当中,使得订餐增多,饭店的知名度提高。网络不会同电话一样占线,在高峰期对订餐的处理更是绰绰有余,很少会出现向系统崩溃的现象,而且网上订餐的费用不会想电话订餐那样高,相比之下有自己的竞争力。同时两者有事相辅相成的关系,可以扩大客流量,提升餐饮行业的业务量无论如何网上订餐终将成为一种时尚一种潮流,将使传统的餐饮更加具有勃勃生机,在众多行业中立于不败之地。1.2 系统业务流程经过前期调研分析和综合其它各方面相关理论知识,现归纳网上订餐系统的业务流程如下:1 .用户进入登录页面后,可以选择是否注册个人信息,如果选择注册,即可进入注册信息界面,注册个人信息,成为会员;如果选择不注册,则可进入非会员通道。2. 用户注册后,如果忘记密码,可以找回个人密码。3. 用户成功登录后,即可进入订餐页面,首页显示的是今日特价菜,用户可以订购特价菜,也可以选择其他菜式进行订购。4. 用户选好菜式后,可将其加入购物车,完成订单。5. 用户可以对自己选购的或者未选购的菜品进行评价,可以增加其他用户对菜式的了解。6. 管理员在后台数据库进行菜品的添加加,修改和删除,同时还可设定今日特价菜。同时管理员也对会员进行管理。根据以上总结出来的业务流程,结合在学校学习到的java web知识,经过对需求调研的总结,给出网上订餐系统的业务流程图。业务流程图用于描述现系统各项业务处理过程,并结合业务流程图详细、详实地说明业务处理过程中数据的采集、输入、提交、存储、加工的方法及算法、输出的数量及形式等。业务流程图的图例如表1.1,网上订餐系统业务流程图如下图1.1所示:表1.1业务流程图图例符号名称说明处理可以改变数据的值或建工组件输入输出数据的输入与输出人员使用程序的人或系统数据流指明数据流动方向账册、报表用于记录数据的纸质文档网上订餐系统的开发主要围绕以上的业务流程进行,开发过程采用面向对象的编程思想及使用java开发语言,详细的开发过程见如下章节。图1.1 网上订餐系统业务流程图第二章 系统需求分析2.1 需求陈述为了开发出真正满足用户需求,软件产品首先必须进行需求分析。对软件需求分析和了解是软件开发成功的关键,不论项目人员把设计和编码工作做得多么的出色,不能真正满足用户需求的程序只会令用户失望,从而不断地修改软件给开发者带来烦恼。需求陈述为以下工作提供了良好的机制;了解客户需要什么,分析需求求,估计可行性,讨论决定合理的方案,无歧义的详细说明方案,确认规格说明,管理需求最终将这些需求转化为可运行的软件系统。根据调研分析得知,网上订餐系统共需要完成4项中心任务,即:用户信息管理、菜单信息管理、菜品评论管理、订单管理。每项任务具体描述如下:1.用户信息管理用户的注册信息管理模块主要由后台管理人员负责,用户注册成功后,信息由后台管理人员管理,管理人员根据用户是否已经注册,确定其是否为会员,方便用户管理。会员制是平台应该具备的。通过会员制,不仅可以为顾客订餐提供方便,还可以保持顾客积累量。顾客在登陆系统首页后,可以在用户注册界面点击注册按钮,页面便跳转到用户注册页面,用户在填写完密码,确认密码,联系电话,保留信息等资料后点击提交便可完成注册。用户还可以点击重置按钮来清除已填写的自己想改的信息,方便用户在想重新填写注册资料时使用。2.菜单信息管理菜单信息管理模块主要由管理人员来操作,主要负责对增添新菜品、修改菜品信息、删除菜品、设置特色菜进行管理。方便用户进行菜品的订购。3.菜品评论管理菜品评论管理主要是用户可以对菜品进行评论,方便其他用户对菜品的了解。4.订单管理订单管理主要是指用户订餐后,确定其订购后,将菜品加入购物车中,产生订单,方便用户了解自己的菜品订购。同时方便管理人员对用户订购菜品的管理。系统确认之后,接下来的工作就是进行系统的分析。系统分析主要是包括面向对象分析,分析问题域等,毕竟我们采用的是面向对象的开发语言,如何设置对象,建立对象之间及对象和外度系统之间的关系,建立起必要的对象关系模型,如设置对象中的属性方法,使他能够更精确的表示事物的客观属性,为系统分析提供假设条件。2.2 USE CASE建模2.2.1 定义参与者参与者(actor)是指与系统无关的、需要利用与系统交互的东西,包括人、设备、外部系统等。根据网上订餐系统的需求可以确定2个参与者,即:管理员主要维护用户基本信息管理,菜单信息管理,订单管理,以及菜品评论信息管理。用户主要的功能是注册个人信息,登录,找回密码,订购菜品,以及进行菜品评论。2.2.2 Use Case图用例图定义:由用例(Use Case)、参与者(Actor)和它们之间的关联所组成的用于描述系统功能的动态视图称为用例图。用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素 。用例图的图示见表2.1。符号名称说明用例交互动作的序列说明参与者出系统外需要与系统交互的功能组件关联actor和usecase之间的关系表2.1用例图图例根据系统需求分析,并结合上节系统活动者的定义分析,得到网上订餐系统块的10个用例:1. 用户基本信息维护用例2. 菜单信息管理用例3. 订单管理用例4. 菜品评论用例5. 购物车管理用例6. 订购菜品用例7. 登录用例8. 注册用例9. 找回密码用例10. 特价菜管理用例结合参与者和用例得到网上订餐系统的的用例图如图2-1所示,现对用例描述如下:1.用户基本信息维护维护用户注册的个人信息,包括密码,联系电话,账号提问,账号回答等资料。用户注册后,成为会员,而未注册的是非会员,方便管理人员对其进行管理及维护。2.菜单信息管理主要包括查询菜单,添加新菜品,修改菜单,删除菜品,设定特色菜。图2.1网上订餐系统Use Case 图3.订单管理用户订购菜品后,将其加入购物车,产生订单,管理员可以查看订单,确定用户的订单信息。4.菜品评价用户可以对菜品进行评论,其评论信息会显示到页面中,方便其他用户对菜品的了解。5.购物车管理管理员对每个用户订购的菜品所组成的购物车进行管理。6.订购菜品用户对自己选购的菜品进行订购,从而放到购物车中。7.登录用户和管理员都有自己相应的账号和密码,密码和账号匹配后即可登录到订餐系统,进行相应的操作。8.注册不是会员的用户可以注册成为会员,提升自己使用订餐系统的权限。9.找回密码注册的用户,忘记密码,可以找回密码,方便用户的信息维护。10.特价菜管理主要包括删除,修改特价菜信息的功能。2.3系统功能描述根据上述需求,分析出网上订餐系统功能如下:1. 用户基本信息维护维护用户注册的个人信息,包括密码,联系电话,账号提问,账号回答等资料。用户注册后,成为会员,而未注册的是非会员,方便管理人员对其进行管理及维护。如果用户注册后忘记密码,可以找回密码,加强管理人员对用户信息的维护。2. 浏览菜品信息用户登录后即可进入网上订餐系统,可以查看特色菜,肉菜,素菜,饮料,海鲜等信息。3. 订购菜品用户根据菜单进行菜品的订购,将其加入购物车,生成订单。4. 评论菜品用户可以对菜品进行评价,方便其他用户对菜品的了解,同时也为管理员管理菜单提供信息。5. 增添新菜品管理员可以增添新的菜品,方便用户选购。6. 修改菜品管理员可以修改菜品,更新菜单。7. 删除菜品管理员可以删除菜品。8. 设定特价菜管理员可以依据菜品的订单信息,定期进行特价菜设定。第三章 总体设计需求分析作为软件工程的首要任务那么接下来要做的便是着手解决“怎么做”的问题即软件的总体设计。总体设计首先要考虑出实现平台的可能的多种方案从总选择出最优的解决方法。本章将从系统结构设计、软件架构设计和数据库设计着手,对网上订餐系统进行总体设计。3.1 系统结构通过需求分析阶段的了解和设计讨论出的软件功能描述,抽象的设计出系统结构图,如图3.1所示,如下的各模块只是抽象上的划分,各模块之间需要相互协调数据的传输共享来完成整个系统流程,但是单一模块之间是相互独立的。享数据,相互协作,完成整个系统流程,单一事物功能模块间是相互独立的。图3.1 网上订餐系统系统结构图3.2 软件架构软件的架构是指通过某种特定的技术平台,完成软件系统整体功能的开发过程。也可以一般的理解为:总体设计和总体结构布局。一般而言,软件系统架构有两个要素:1.它是一个软件系统从整体到部分的最高层次的划分。2.搭建一个系统,且该系统能做出最高层次的技术上的决定。3.2.1 架构设计目标软件架构设计要达到如下的目标:可行性:软件可行性是软件设计的基础。可靠性、安全性:软件是否安全不被入侵易于维护是软件必备的资质可定制化、可扩展性:即一个软件具有伸缩性,可以根据需求进行调整也可以称作为功能和性能的扩展可升级性:即可以在运行过程中对出现的bug和漏洞惊醒修改客户体验:软件必须能够有一个客户体验回收机制,便于对我们的软件产品进行了解3.2.2 软件架构设计根据软件架构设计应遵循的原则的到系统的包图,这样得到包图如图3.3 所示:图3.2 系统体系架构图图 3.3网上订餐系统模块包图1. 用户界面包用户界面包的职责是:(1) 负责与用户的交互,根据用户提交的数据及时回馈信息提示 (2)对用户输入的数据进行数据验证,过滤掉敏感或者不合法的数据。(3)调用业务处理对象进行相关业务处理。用户界面展开包图如图3.4所示:图3.4 用户界面展开包图用户界面包包含的类见图3.5:图3.5 用户界面类图2. 业务逻辑包业务逻辑包的职责是:(1)完成各种业务处理逻辑或算法。(2)验证请求者的权限。(3)向数据访问对象发送数据持久化操作的请求。(4)向用户view层返回处理结果。业务逻辑展开包图如图3.6所示:图3.6 业务逻辑展开包图3. Data Access(数据访问)包数据访问层的职责是: (1)实现数据持久化操作;(2)执行事务处理,维持事务原子性。数据访问包图展开如图3.7所示:图3.7 数据访问包图展开在java数据访问的过程中需要完成数据库数据的持久化操作在这里会用到jdbc,连接池,批处理等数据层访问技术,项目开发中我们称其为dao层和service层,数据访问包包含的类见图3.8:图3.8数据访问类图4. 权限管理包权限管理的主要职责是:(1)验证请求者的请求权限。(2)提供请求者的权限列表。权限管理展开包图如图3.9所示:图3.9权限管理包图展开5. 异常处理包异常处理的职责:(1)汇报运行时的详细异常信息。(2)记录异常处理日志。异常处理包图展开如图3.11所示:图3.10异常处理包图展开3.2.3 软件架构类图由包图展开得到类图,它是架构的静态结构图,表明了各个类之间的关系。网上订餐系统架构类图如下图3.11所示。图3.11 系统架构类图第四章 详细设计详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。经过这一阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把整个描述直接翻译成用某种程序设计语言书写的程序。本章主要涉及软件系统的动态建模和系统类图的详细设计。软件系统的动态模型分为交互模型和活动状态模型,其中的交互模型主要由顺序图和协作图构成,活动状态模型主要包括活动图和状态图。通过为软件系统项目建立动态模型,因此可以得出具体的分析结果,即对象的时间特性,任务之间的通信机制和状态变化等信息。4.1 系统交互图4.1.1系统架构类交互图系统架构类的工作流程如下:1.用户窗体对象在接收了用户的登录信息后,进行权限验证,然后显示权限对应的菜单;2.用户窗体在提交业务请求前,先利用Model实体类对数据进行封装,然后将封装的数据对象和业务请求传给业务逻辑类的对象进行处理;3.业务逻辑对象接收到请求后,进行业务处理,生成对应的SQL命令,然后提交给数据库访问层进行执行;4.数据库访问对象连接数据库并执行SQL命令后,如果正常执行则返回数据,若产生异常则交付异常处理对象进行处理;5.业务逻辑对象获得返回的数据进行进一步的业务处理,如发生异常则交付给异常处理对象;6.业务逻辑对象将处理的结果通过Model实体对象返回用户窗体类;7.用户窗体类通过Model实体类进行解除封装,然后显示处理结果在窗体上。 4.1.2 参与者与模块间的交互与网上订餐系统进行交互的参与者主要包括管理员和用户。管理员和用户与网上订餐系统的交互图如下图4.1和图4.2所示: 图4.1系统架构类的交互图 图4.2 用户与网上订餐系统的交互图 下面对网上订餐系统活动的情况进行动态建模,以下论述将以管理员与菜单管理模块、特价菜管理模块、订单管理模块分别进行时序图、协作图、状态图和活动图的建模。1.菜单管理模块菜单管理模块的程序流程如下:(1)管理员登录系统,打开菜单管理窗体;(2)管理员选择要更改的菜品(包括肉菜,海鲜,素菜,主食,饮料),并进行修改,删除或设定为特价菜的操作;(3)管理员添加新的菜式,输入菜品名称,参考图片,菜品种类,价格,会员价的信息。2.特价菜管理模块(1)管理员登录系统,打开菜单管理窗体;(2)管理员选择要更改的特价菜信息,进行删除或者修改的操作;(3)管理员对特价菜进行修改,并更新特价菜信息。3.订单管理模块(1)管理员登录系统,打开菜单管理窗体;(2)管理员选择订单管理,对完成的订单进行删除;(3)更新订单。管理员对订单管理的时序图如下图4.4所示。图 4.4 管理员与订单管理的时序图4.1.3 系统协作图用于说明系统实现的用例及用例场景的交互图叫系统协作图,在UML中有两种交互图,分别是时序图和协作图,二者不同的是前者按时间顺序后者是按时间和空间的顺序描述系统元素间的交互。根据上节描述的管理员对菜单管理的协作图,如下图4.5所示。 图 4.5 管理员与菜单管理的协作图管理员对特价菜管理的协作图,如下图4.6所示。图 4.6 管理员对特价菜管理的协作图4.1.4 系统状态图在菜单管理模块中,系统存在菜单管理界面、菜品信息显示、删除菜品信息、添加菜品信息等状态,管理员对菜单管理的状态图如下图4.7所示。在特价菜管理模块中,系统状态包括显示特价菜菜单界面、特价菜删除、特价菜信息修改等状态。在订单管理模块中,系统存在菜单管理界面显示、订单管理界面显示、删除订单、数据更新等状态。图 4.7 管理员对菜单管理的状态图4.1.5 系统活动描述用于描述系统活动如何进行的图叫做活动图。当一个操作一定要完成一连串事情,但是无法确定以什么样的先后顺序来完成这些事情的时候,活动图可以更清晰地描述这些事情3。在网上订餐管理系统中,主要涉及管理员的活动。在菜单管理模块中,管理员登录系统后,可以选取菜品种类(肉菜,素菜,海鲜,主食,饮料)进行删除、修改、设置今日特价等操作记录,如果是删除,则删除此菜品记录,如果是修改,则修改菜品信息,更新菜单,也可以进行添加菜品的操作,添加新菜品信息,更新菜单。在特价菜管理模块中,管理员进入系统后,需要点击特价菜管理,可以选取特价菜品进行删除、修改等操作。如果是删除,则菜品记录被删除,更新菜单;如果是修改则修改特价菜信息,记录数据更新到数据库。在订单管理模块中,管理员登录系统后,管理员对已完成的订单进行删除,更新信息到数据库中。4.2 业务逻辑对象类设计4.2.1 发现业务逻辑类本节由系统分析中的Use Case交互图可以发现业务逻辑类包括用户类,菜品评评论类,菜单基本类、订单信息类,购物车信息类。鉴于本系统以软件三层架构思想为指导,将系统的业务逻辑和实体模型分离开来,所以根据架构情况设计,将上述发现的业务逻辑类分解为业务逻辑类和实体模型类,其中实体模型类主要描述了实体属性,业务逻辑类描述了实体的方法集合。4.2.2 业务逻辑对象类图系统中,实体类的类图如图4.8所示。图4.8网上订餐系统实体类类图业务逻辑类是建立在实体类之上的,包含了系统业务逻辑的操作。系统业务逻辑类如图4.9所示。图4.9网上订餐系统系统业务逻辑类类图4.3 数据库设计数据库设计是软件开发的页一个重要的步骤,整个系统数据的处理都需要依赖后台数据库的支持,因此数据库设计显得尤为重要。4.3.1 数据库概念模型设计 根据需求描述和软件架构设计,管理员、用户、用户信息、菜单信息、特色菜信息、购物车订单、菜品评论信息等都是模型层的实体bean。网上订餐系统的E-R模型图见图4.10。图4.10网上订餐系统数据库E-R图4.3.2 数据库表结构设计将网上订餐系统E-R模型中的实体转换为物理表,得到物理表结构如下:1.用户信息表tab_user表4.1 用户信息表结构主键标识字段名类型是否为空注释PKidintN用户IDnumberVARCHAR(30)Y用户账号passwordVARCHAR(20)Y密码phoneNumberVARCHAR(20)Y联系电话registDateVARCHAR(15)Y注册日期registQuestionVARCHAR(255)Y账号提问问题registAnswerVARCHAR(255)Y账号回答答案2.菜单信息表tab_dish表4.2 菜单信息表结构主键标识字段名类型是否为空注释PKId INTN菜品编码dishNameVARCHAR(50)Y菜品名称dishPictureVARCHAR(30)Y菜品图片dishKindVARCHAR(10)Y菜品种类priceDOUBLEY菜品价格memberPriceDOUBLEY菜品特价isValidINTY是否有效3.订单信息表tab_order表4.3订单信息表结构主键标识字段名类型是否为空注释PKidINTN订单编号dishVARCHAR(50)Y菜品名称sumPriceDOUBLEY总价contactVARCHAR(20)Y联系电话isValidVARCHAR(10)Y是否有效4.特价菜品信息表tab_special表4.4 特价菜品信息表结构主键标识字段名类型是否为空注释PKidINTN特价菜品编号dishNameVARCHAR(20)Y特价菜品名称dishPictureVARCHAR(50)Y特价菜品图片specialPriceDOUBLEY特价菜品价格5. 临时订单表tab_orderform_temp表4.5临时订单表结构主键标识字段名类型是否为空注释PKidINTN临时订单编号FKuserNumberVARCHAR(50)Y用户账号FKdishIdINTY菜品编号isSpecialVARCHAR(20)Y是否为特价菜6.菜品评论信息表tab_comment表4.6表结构主键标识字段名类型是否为空注释PKidINTN评论编号dishIdINTY菜品编号commentVARCHAR(255)Y评论内容dateVARCHAR(50)Y评论日期isSpecialVARCHAR(20)Y是否为特价菜4.4 开发环境的选择4.4.1 系统开发工具网上订餐系统主要采用MyEclipse 8.5作为开发平台。MyEclipse是在Eclipse的之上发展出来的,在Myeclipse8.5中我们可以集成我们想要的环境,比如说tomcat服务器,Oracle或者Mysql数据库等对我们的网站进行发布和数据库的连接,提升里工作效率。在Myeclipse8.5包含了完整的编码、调试、测试、和发布功能,支持ssh三大框架,jsp web前台技术,SQL,HTML等,在Myeclipse中集成了许多功能强大啊的组件,web开发工具,Ejb组件等;4.4.2 数据库的选择本次设计主要采用MySQL5.5作为数据库存储系统,MySQL相对于Oracle这样的大型数据库而言,具有小巧灵活,存储效率高的特点适用于中小型网站的数据存储管理,他的代码是开源的,并且便于安装,系统特性:1. 支持多线程,充分利用CPU资源。2. 优化的SQL查询算法,有效地提高查询速度。3. 提供用于管理、检查、优化数据库操作的管理工具。4.4.3 系统网络架构设计本网上订餐系统采用传统的B/S结构,系统架构图见图4.11。图4.11 系统网络架构图CPU内存硬盘空间显示模式最低配置Celeron1.7G256M40G800*600推荐配置Pentium 4 3.0G512M80G1024*768第五章 编码5.1 概述开发工具及源程序代码1.开发工具设计通篇采用MyEclipse8.5作为开发工具,它支持各种开源产品,在性能方面无可挑剔。通过此开发工具我们可以在数据库、应用服务器(如tomcat)的存储数据和发布网站方面提高工作效率。2.编程语言设计主要采用java面向对象语言作为开发语言,java是一种跨平台的面向对象的开发语言,是由sun公司推出的,它包括java标准版,java企业版和java迷你版。Java语言不但可移植性强,相对于其他语言来说,他的面向对象特点给开发者带来了极大的便利,它内置的Jdk为程序员提供了很大的方便,另外java虚拟机功能也是十分强大,所以作为一个java程序员,我感到十分的荣幸。5.2 源程序习惯说明程序的编码习惯主要是类的定义、方法的命名、变量的命名及注释的编写等,尽量做到可读性强,增强代码的通俗性和易懂性,使得代码修改和程序维护相对简单。1.变量命名以下规则包含变量规范。int level;/indentation levelint size;/ size of the table不允许写成如下的变量定义:int level,size;不允许在同一行定义不同变量:初始化:局部变量定义的同时必须进行初始化,如果无法确认变量的初始值,则置为null,例如:Object current = null;void myMethod()int in = 0;/在方法体开头定义if(condition)int in2 = 0;/在”if”语句开头定义for(int i = 0;i 0) /判断此用户是否注册flag = true; elseflag = false; catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return flag;public User getUser(String number) User user = new User();try /*连接数据库,查询用户表,获得用户信息*/Class.forName(com.mysql.jdbc.Driver);Connection conn = DriverManager.getConnection(jdbc:mysql:/127.0.0.1:3307/ordering,root,admin);Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(SELECT * FROM tab_user WHERE number=+number+);while(rs.next() user.setId(rs.getInt(id);user.setNumber(number);user.setPhoneNumber(rs.getString(phoneNumber); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return user;详细的源程序代详见附录C。第六章 测试6.1 测试原则及测试方法概述软件测试是主要是为了发现系统存在的bug而不断调试程序的过程。编写测试用例,例如每一网页应该有多少个测试点,但是最多不能超过30个,并利用这些测试用例去运行程序,在发现程序错误的过程编写文档按顺序逐个对测试项目做出说明。软件测试是一个持续进行的过程。现代软件测试已发展成为一个全过程的验证和确认活动,它贯穿于整个开发生命周期始末。为获得最大的受益,测试的开发和准备必须在编码之前就应该开始,同时为了保证软件最终质量,必须在开发过程的每个阶段保证其过程的质量4。软件测试过程应该遵循如下的原则:1.尽早地和不断地进行软件测试。不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中,在软件开发的各个阶段进行技术评测,有效地发现和防范错误,将错误的概率降到最低。2.测试用例包含输入数据和与他对应的结果两个部分组成测试以前应当根据项目经理测试的要求选择测试用例,用来检验程序员编制的程序是否准确,一般case不应多于30个,3.程序员应避免检查自己的程序。程序员应尽可能避免测试自己编写的程序,因为一个人在测试的过程中可能有自己的思维定势,项目有人员紧缺可能程序员会去做测试。这点不能与程序的调试相混淆。调试由程序员自己来做可能会更好更有效。 4.充分注意测试中的群集现象。在被测程序代码中,若发现错误数目太多。这种错误群集现象,已经被许多程序的测试实践证实。 5.对于测试计划应该严格执行,避免随意的测试。 测试之前应对测试的程序详尽考虑,对每一项测试做出周密的计划,包括要测程序的功能、输入和输出、进度安排、资源要求、测试用例的选择、测试的控制方式和过程等,还要包括系统的组装方式、跟踪规程、调试规程,回归测试的规定,以及评价标准等。6.应当对每一个测试结果做全面检查。7.妥善保存测试材料包括测试计划,测试用例,错误统计,和最后的分析报告,方便系统维护。 测试过程大体上按4个步骤进行,即集成测试、单元测试、确认测试和系统测试。如图6.1是软件测试的四个主要步骤及他们之间的联系。图6.1 软件测试的过程软件测试的种类大致可以分为人工测试和计算机测试两种。而基于计算机的测试又可以分为白盒测试和黑盒测试 。1.黑盒测试主要是对软件的外在功能进行测试,举个例子,就是将软件看成一个黑色的盒子里面什么都看不到,我们只能通过他的外在功能对他进行测试。2. 白盒测试 相对于黑盒测试来说,白盒测试就会更容易理解一些,它只是对软件内部代码的测试,检查软件的实际状态是否与预期达到的效果相一致。6.2 测试项目测试用例根据上述理论基础,现采用等价类划分方法对系统的登录、会员的注册、添加菜品管理、菜品更改管理和找回密码模块等功能进行综合测试。根据项目需求:1.登录模块对于登录模块,用户的输入点分别是用户名、密码,根据项目需求,用户名和密码均不能为空。根据输入点的要求,现划分出该模块的等价类见表6.1。表6.1 登录模块的等价类划分序号等价类等价类类别(1)用户名为空无效等价类(2)密码为空无效等价类(3)用户名和密码不匹配无效等价类(4)用户名不为空有效等价类(5)密码不为空有效等价类(6)用户名和密码匹配有效等价类根据黑盒测试等价类划分法的等价类覆盖原则,列举出的测试用例见表6.2。表6-2 登录模块的测试用例用例序号等价类覆盖测试用例预期结果test1(4)(5)(6) super super 成功登陆test2(1)(5)(6)null 0 无法登陆test3(2)(3)(4)super null无法登陆test4(3)(4)(5)super test无法登陆2.会员注册模块输入密码不能为空,确认密码不能为空,确认密码要和输入密码一致。根据输入点的要求,现划分出该模块的等价类见表6.3。表6.3 会员注册模块的等价类划分序号等价类等价类类别(1)输入密码为空无效等价类(2)确认密码为空无效等价类(3)确认密码和输入密码不一致无效等价类(4)输入密码不为空有效等价类(5)确认密码不为空有效等价类(6)确认密码和输入密码一致有效等价类根据黑盒测试等价类划分法的等价类覆盖原则,列举出的测试用例见表6.4。表6.4 会员注册模块的测试用例用例序号等价类覆盖测试用例
展开阅读全文