基于Java的网上订餐系统

获取项目源文件,技术交流与指导联系Q:1225467431

随着传统的购物方式正在向网络化发展,出现了“网购”这种越来越受欢迎的新型消费方式。为了提高餐饮业务水平和效率,实现比电话订购更有效的送餐业务,网上订餐系统因运而生。通过对订餐流程和业务进行全面考察分析,结合目前最先进的软件开发技术,实现了订餐的网络化管理。目前,网上订餐业务还处于形成期,成长空间还很大。

论文中详细地对网上订餐系统进行了需求分析和总体设计,系统采用Java语言作为网站的开发语言,数据库为MySQL 5.0,所需图片处理工具为ACDSee5.0;即通过采用Java Swing+JDBC+MySQL技术来实现了系统的设计,并最终以MyEclipse6.5开发环境实现了整个系统。

本网站是能为客户提供浏览餐品介绍、点菜订餐、约定用餐时间、就餐或送餐等服务。本系统的前台主要分前台登录和前台界面两部分,前台界面包括网站首页、订餐流程、餐品展示、网上订餐、信息发布、会员中心和后台登录等模块;后台界面主要包括餐品管理、订单管理、信息管理、用户管理等模块。

本系统适合在中小型餐饮企业中推广使用,它能够优化餐饮业务流程,实现企业价值最大化,同时又使成本最低化,并最终提高自身在餐饮业中的竞争优势。


关键词:网购,网络化管理,SwingJDBC,网上订餐




Abstract

As traditional way of shopping are turning to network development, gradually appeared the increasingly popular new consumption mode "E-Commerce". In order to  improve the catering business level or efficiency and to realize the more effective room services than telephone reservation ; Online order system has emerged because of demand. Through the investigation and comprehensive analysis on process of the business, combined with the most advanced software development technology, it can realize the network management order. Currently, the online business is in formative period, it also has very big growing space.

It has been conducted demand analysis and the overall design on online reservation system detailedly in papers. Java language is adopted as the development language of the site, MySQL 5.0 as database, ACDSee5.0 as tools for dealing with pictures. Namely, Java Swing + JDBC + MySQL technology is used to realize the system, and finally MyEclipse6.5 is used as development environment in order to implement this system.

Customers can browse meal product introduction, order, be agreed mealtimes, repast in this website; also meals can be sent to them in the website.The foreground of the system is made up of two parts,one is foreground login,the other is the interface of foreground. Foreground interface includes homepage, order process, meal product introduction, online order, information  release, the member center and background login ,etc. Background region mainly comprises food information management, order management, information management and user management modules.

This system is popularized in small and medium-sized catering enterprises. It can optimize the catering business flow and realize the maximization of enterprise value.Meanwhile, it also makes the lowest cost, and finally enhance the competitive advantage in the catering industry.

Keyword:E-Commerce , Network Management , Swing , JDBC , Online Order


 

1章 绪论1

1.1 项目背景及研究意义 1

1.1.1 项目背景 1

1.1.2 研究意义 1

1.2 国内外研究现状 2

1.3 主要研究内容 2

1.4 论文结构 3

2系统需求分析4

2.1系统的可行性分析 4

2.1.1技术可行性 4

2.1.2社会可行性 5

2.1.3经济可行性 5

2.1.4可行性研究结论 6

2.2用户需求分析 6

2.2.1功能分析 6

2.2.2用例分析 7

2.3系统设计目标分析 9

3章 系统概要设计10

3.1系统设计 10

3.1.1系统流程概述 10

3.1.2数据流程 11

3.1.3功能用例 11

3.2数据库的设计 12

3.2.1数据库需求 12

3.2.2关系数据模型 13

3.2.3主要的E-R模型 13

3.2.4数据库表结构设计 16

3.3网站整体设计 18

3.3.1文件结构 18

3.3.2系统文件组成 19

4章 系统详细设计与实现21

4.1类的关联关系 21

4.2前台开发 22

4.2.1会员登录后的前台 22

4.2.2用户登录与注册 24

4.2.3游客进入的前台 25

4.3后台开发 26

4.3.1后台总类图 27

4.3.2后台登录 27

4.3.3餐品管理 28

4.3.4订单管理 28

4.3.5信息管理 28

4.3.6用户管理 29

4.4接口类代码 29

4.4.1数据库连接 29

4.4.2部分页面代码 31

5章 系统的部署与测试34

5.1 运行环境的搭建 34

5.1.1系统运行环境的搭建 34

5.2系统测试 34

5.2.1常见错误 35

5.2.2测试的方法 36

5.2.3界面测试 37

5.3 系统维护 45

 46

参考文献48

致谢49


1 绪论


1.1 项目背景及研究意义


1.1.1 项目背景

随着我国餐饮行业的发展,因餐饮业门坎较低,中国的大多数餐饮企业的老板是从小店发展起来的,家族式管理的居多,许多还是“人治”,并没有一套现代企业制度和监督管理体制,所以从观念意识、经营思想和管理水平还有待专业化。随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者所追求的目标。网络订餐实现了小店面大作为的成本效益,解决了因为店面小的限制而无法提高营业额的难题,是一个小投入大成效的经营新模式。

在计算机普及后的今天,中国进入了互联网信息时代,生活方式和工作节奏都随着信息传递速度的加快而变得急促。从信件传递发展成Email,从传统电话交流到IP电话网络电话,一切原本属于现实生活中的行为方式慢慢地向网络转移,传统的购物方式也正在向网络方面发展,出现了“网购”这种越来越受欢迎的新型消费方式。同样,作为服务业支柱的餐饮业不可避免地趋向网络化发展。


1.1.2 研究意义

随着社会经济的发展,人们的生活节奏不断加快,上班时间相当紧张,但一日三餐却不可少。通过网上订餐系统,不必亲临现场,在家中或在办公室上网,便可以为自己、家人、朋友聚会等制办一份既营养又实惠的美食。为了实现对客户点菜信息收集、处理、共享和再利用,以提高餐饮业务水平和效率,实现比电话订购更方便、更迅速、更有效的送餐业务。通过对订餐流程的考察,对业务细节进行了全面的分析,结合目前最先进的软件开发技术,实现了订餐的数字化、网络化管理。

餐饮系统不仅需要将整个餐饮业务通过信息系统进行系统管理,同时需要将各类人工服务的工作交由计算机处理,比如点菜和菜单的传送等等。同时,本网站是一个网上订餐系统,能为客户提供网络选择商家、浏览菜品介绍、点菜订餐、约定用餐时间、就餐或送餐以及注明货币支付方式等服务。这样,传统的订餐方式也正在转向网络化发展,但目前,网上订餐业务还处于形成期,成长空间还很大。


1.2 国内外研究现状

近几年来,热衷于“网上订餐”的群体悄然壮大,上班族和学生更把它看成潮流浪尖上的亮点。在网上订餐的人都是一般都是对电脑比较熟练的人,也就是比较年青化的消费群体,包括白领、大学生、高中生和对计算机操作相对比较熟的人。因为这些人工作都比较忙,而且对计算机也比较熟,思想也比较超前,对于在网上订餐能够接受,并经常上网订餐。登录订餐网站,输入“地址”后点击搜索,出现“外卖店列表”,点击进入店面,明码标价的菜单立即跃入眼帘,用鼠标逐个点击你所要的品种,系统会累计放入“购物车”,输入具体送餐地址即可下订单,外送人员就会将美食送到你面前。网上订餐存在几大瓶颈。

从生产分工来看,网上订餐最终得引入专业物流配送,由现代化的物流公司提供配送服务,这是它要突破的第一个瓶颈。

其次,网上订餐送餐和其它网络服务一样,要面临网络信用问题,从而影响网上订餐业务。

而网络技术问题则是网上订餐送餐的第三个瓶颈,如因技术问题丢失了客户订单,将会造成很大的负面影响。在网上订餐的人相对来说还是比较少的情况下,对网上餐馆的信用度持疑虑态度就成为了一个问题。

另外,就是网上订餐只可以看到物品的说明简介和外观,没有看到实体于细节处,无法通过快速浏览确定是不是自己想要的菜品。而这正是传统的实体餐馆优于网上餐馆的地方。


1.3 主要研究内容

本文主要研究网上订餐系统的设计与实现,在整个过程中主要完成以下工作:

1. 分析网上订餐系统的现状和发展趋势,探讨、选择系统开发技术和开发平台。

2. 研究系统开发所涉及的相关技术和理论,采用软件工程的指导思想,分析系统的功能需求、性能需求和安全需求,进行系统的总体设计。

3. 根据需求分析与总体设计,实现基于Java的网上订餐系统,应用Java Swing技术解决开发过程中所面临的各种技术问题。

4. 对系统进行部署与测试,根据测试结果,继续完善系统。


1.4 论文结构

论文共分为六章,各章主要内容如下:

第一章:绪论。提出项目背景、研究对象及其国内外研究现状,介绍本文的主要工作和组织结构。

第二章:系统需求分析。简要描述了系统的可行性分析、需求分析以及设计目标分析等。

第三章:系统的概要设计。详细描述了系统的数据流程、业务流程,完成系统所需数据库的设计以及网站的整体设计。

第四章:系统的详细设计与实现。系统前台、后台的主要页面的实现。

第五章:系统的部署与测试。主要介绍了系统的运行和测试。

第六章:结论。对开发的系统做了总结,指出了存在的不足之处,提出了以后需要进一步完善的工作。


2章 系统需求分析

主要分为系统可行性分析用户需求分析系统分析要求必须了解系统所实现的功能,这个设计的好坏直接影响的后面的开发。用户需求分析主要是了解用户的有哪些需求,本系统主要是用户的购餐需求以及管理的需求。只有了解了需求分析才能进行系统的开发,否则就会事倍功半,达不到我们预期的效果,因此需求分析是至关重要的。


2.1系统的可行性分析

可行性,是指在当前情况下,设计开发这个系统是否有必要,是否具备必要的条件,它不仅包括必要性,还包括合理性。系统的可行性分析,是针对要设计的系统,研究其设计是否存在内外部的必要条件,包括技术上、资金上、经济上、人力资源以及组织管理上的必要条件,同时要分析在目前条件下是否有必要设计这样一个系统。


2.1.1技术可行性

1.硬件、软件

要求不高,目前市场上的一般计算机软硬件资源均能满足系统开发要求。其中运用的主要软件工具有 MyEclipse6.5 ,ACDSee5.0等,数据库开发采用MySQL5.0。

2. 技术支持

1) Java Swing技术

Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。它对AWT包进行了修订和扩展,Swing中的控件类比AWT更丰富,新增了很多复杂控件;Swing的类不再含有与平台相关的技术,而把这些平台相关技术留给运行环境来处理,因而Swing是纯粹的Java产物,具有最大程度的平台兼容能力。利用Swing的控件类可以开发出各种操作系统风格的应用界面;Swing的控件类使用接口来实现用户事件的处理,简化了用户输入事件的处理机制。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

2) JDBC技术

JDBCJava Data Base Connectivityjava数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC实际上是Java制定的数据库访问操作的规范,它为工具数据库开发人员或者Java程序员提供了一套标准的与数据库无关的JDBC API编程接口,这些编程接口其实就是位于Java.sql包的一些接口和类,利用它们可以方便地对不同数据库进行数据查询、插入、删除和修改等操作。据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java语言编写数据库应用程序。

3) MySQL数据库

MySQL是一个小型关系型数据库管理系统,MySQL被广泛地应用在Internet上的中小型网站中。许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL 是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,MySQL 对于一般中小型,甚至大型应用都能够胜任

而该系统是采用纯Java语言编写而成,所以以上技术足以完成本系统的开发和设计。

3. 维护操作

工作方便,后台操作快捷明了,操作人员可以在短时间内完全掌握维护技术。本系统自主网上订餐管理,系统具有强大的商品管理、购物车、订单统计、会员管理等功能,同时拥有灵活多变的商品管理、新闻管理等功能,系统操作简单。


2.1.2社会可行性

1网络订餐将传统的交易流程信息化、数字化,一方面以信息流代替了面对面的交易,可以大量减少人力、物力,降低了成本;另一方面突破了时间和空间的限制,使得交易活动可以在任何时间、任何地点进行,从而大大提高了效率。

2网络订餐使餐饮业以较低的成本进入信息化市场,使得中小企业有可能拥有和大企业一样的信息资源。它开放性的特点,为企业创造了更多的交易机会,提高了中小企业的竞争能力。

3网络订餐重新定义了传统的流通模式,减少了中间环节,使得生产者和消费者的直接交易成为可能,从而在一定程度上改变了整个社会经济运行的方式。


2.1.3经济可行性

1. 资金可行性:由于系统开发环境配置以及其开发并不复杂,只需一些基本的开发工具。而且开发出的系统操作起来也比较简单,另外具备网络中的一些资源优势,因此开发费用较低。

2经济合理性:由于通过网络进行商务活动,信息成本低,足不出户,可节省交通费,且减少了中介费用,因此整个交易活动会降低成本。


2.1.4可行性研究结论

依据以上因素,本系统开发项目不仅方便快捷、高效,而且社会效益比较好,从而使本系统开发者相信该系统开发出来之后将取得的成功。

综上所述,此项目在技术、经济和社会效益上是完全可行的。


2.2用户需求分析


2.2.1功能分析

作为一个网上订餐系统首先为了保证客户能够很方便的进行餐品订购,系统应该具有分类查看餐品,系统应该实现购物车的功能,用户可以把选中的商品放入购物订单中,在选购完毕后再一起结帐。在系统的后台,管理员能够查看客户购买的订单,发布新闻,管理各类用户等。为了更好进行服务,系统还应该支持用户投诉功能因此可分析出本系统所实现的功能包括前台和后台两部分,前台为系统功能的主要部分。前台主要以会员身份登录后的页面为主,功能包括如下几部分:

1) 首    页    餐馆和餐品部分信息的简单介绍。

2) 订餐流程    实现对不同用户订餐流程的说明。

3) 餐品展示    实现本餐馆餐品的分类展示及查询某餐品的具体信息。

4) 会员中心    会员信息的查看与修改。

5) 信息发布    商城信息的发布以及用户投诉和客户留言。

6) 网上订餐    订单的填写以及发送。

7) 后台登陆    通过相关验证,管理员登陆后台实现对用户、餐品、订单以及消息的管理。

后台功能包括如下几部分:

1) 用户管理    对会员、游客、管理员三类用户的管理。

2) 餐品管理    实现对餐品信息的增删改以及查询等操作。

3) 订单管理    对用户的订单进行管理。

4) 信息管理    商城公告和商城动态信息的发布以及用户投诉和客户留言的管理。

通过调查及需求分析可以了解网上订餐系统的基本功能,并把这些功能以功能结构图形式画出,可以形象地了解本系统实现的具体功能。本系统总功能结构如图2-1所示。

 

2-1功能结构图


2.2.2用例分析

用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模,用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。本系统主要的角色(Actor)包括数据库、管理员、游客、会员;系统主用例图如下:

 

图2-2 系统主用例图

下面介绍应用程序中的主要用例(user case)。

表2-1  管理员用例描述

用例名称:

管理员

参与者:

管理员

前置条件:

管理员成功登录系统后台

用例功能:

订单、用户、餐品、信息的管理

事件流:

当管理员成功登录系统后台,弹出后台界面

异常事件流:

当管理员未登录或输入不合法的数据

后置条件:

系统无改变

2-2 游客注册用例描述

用例名称:

游客注册

参与者:

普通用户

前置条件:

游客未登录系统

用例功能:

主要用于游客注册个人信息,成为系统会员

事件流:

当游客进入注册页面

异常事件流:

当用户输入不合法的数据或该会员号已存在

后置条件:

系统无改变

表2-3 会员订餐用例描述

用例名称:

会员

参与者:

普通用户

前置条件:

会员成功登录系统

用例功能:

会员通过网上订餐模块进行订餐

事件流:

当会员登录系统后选择网上订餐模块

异常事件流:

当会员未登录或输入不合法的数据

后置条件:

系统无改变


2.3系统设计目标分析

开发的软件是简易的网上订餐系统,以各种用户为主要服务对象。提供良好的用户界面,实现与用户的交流,方便会员、游客订餐是本系统设计的目标该系统能够实用户的注册,品查看,购物车式的购,用户投诉等功能,在系统的后台,管理员可以处理用户订单并配送获取,并可以对品信息新闻用户投诉等实现集中管理。初步预想使用Java Swing+JDBC+MySQL等技术完成网上订餐系统。

系统需要提供的主要功能如下:

1. 用户能够随意浏览品,并能获取品的详细信息,如餐品图片预览、简介等。

2. 系统能够向用户提供一些浏览信息,让用户能够快速的了解系统出售餐品信息,如特色餐品等。

3. 系统能够提供公告信息,让用户快速了解系统的通告信息。

4. 用户既可以注册成为本系统的会员,也可以以游客身份订餐;但会员可以享受如下特权:能随时修改自己的信息,可以凭积分享受折扣等。

5. 系统不同权限的用户,如会员游客、系统管理员等。

6. 系统可以管理品(添加、删除、修改、查询),订单,新闻公告以及客户投诉等等。


3章 系统概要设计

系统的概要设计是在系统分析的基础上由抽象到具体的过程。主要包括系统设计、数据库的需求分析以及网站的整体设计三大块。系统设计主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机运行环境的具体方案,进行系统的概要设计,为下一阶段系统详细设计提供必要的技术资料。


3.1系统设计

系统设计主要完成各个模块的设计,以及所需的技术。


3.1.1系统流程概述

用户在浏览网站时首先看到的就是网站首页在首页用户可以了解本餐馆和部分特色餐品的信息。用户如果想要订餐时或者直接通过电话或者直接填写收货人的信息或者注册成为会员在用户查看完商品的信息后可以把自己想要购买的商品加入订单也可以随时修改清空订单里的商品如果用户对订单里的商品都很满意就可以直接下订单(非会员要填写收货人的信息才能下订单)这时相关的程序模块会将用户所提交的所有信息都记录在数据库里以便系统的管理人员可以核对信息并准备餐品专门送餐人员给用户配送餐品并收取现金此时整个订餐的过程便结束在网络订餐的后台管理方面还需要添加修改删除同时各类用户信息的管理商城公告的设置站内新闻的发布和订单的处理等都需要系统的管理人员来操作,网络订餐的业务流程图如图3-1所示:

 

图3-1 业务流程图

 


3.1.2数据流程

本系统涉及的数据较多,因此对于系统的设计首先要了解系统中数据的流向,只有清楚数据之间的关系,才能正确的设计系统的功能。可以通过数据流程图来表明数据之间的关系。从图3-2中可以看到,会员成功登录后,可以修改查看个人信息,并将这些修改完善后的信息存档;还可以在查看餐品信息后下订单,订单会存储在数据库对应表中。尚未注册的用户,可以在查看餐品信息后下订单,订单也会存储在数据库对应表中,同时游客信息会保存在相应的表中。这些数据流最终都要进入数据库,管理员会对这些信息进行分类管理。

 

图3-2  数据流程图

 3.1.3功能用例

会员与游客用例图呈现了会员游客各自具有的功能,以及它们之间的关系;管理员用例图呈现了管理员所具有的主要功能。

1.与游客用例图

   

图3-3 会员与游客用例图

2.管理员用例图

 

图3-4 管理员用例图


3.2数据库的设计

数据库的需求分析主要是数据库和数据库表的建立,该系统中需要存储那些数据,都是这个设计中实现,它们的详细实现过程如下:


3.2.1数据库需求

WEB应用跟踪和管理用户的订单,行为主要有两种措施:一种是使用SessionCookies保存用户活跃期间的信息,但是这些信息在会话结束后将不再存在。对于那些需要持久保存的信息,以及数据量比较大的数据必须通过数据库来进行存储数据库适合存储那些需要持久保存的信息,并且提供很好的方式进行查询,插入,修改和删除。

网上订餐是面向庞大用户的信息化产品, MySQL 是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,MySQL 主要目标是快速、健壮和易用。因此本系统选择MySQL作为数据库。


3.2.2关系数据模型

  

图3-5  关系数据模型


3.2.3主要的E-R模型 

ER模型[Entity Relationship Model]是一种叫做实体联系模型的简称,它是以图形的方式表现的,又被称作实体联系图,ER模型是人们描述数据及其联系的概念数据模型是数据库应用系统设计人员和普通非计算机专业用户进行数据建模和沟通与交流的有力工具,使用起来直观易懂简单易行,ER模型是一种用图形表示数据及其联系的方法所使用的图形构件(元件)包括矩形、菱形、椭圆形和连接线。主要的ER模型图如下:

管理员可以管理订单的各个信息,设计的ER模型如下

 

图3-6 管理员与订单模型

管理员管理会员的各个信息,设计的ER模型如下:

 

图3-7  管理员与会员模型

管理员管理一般的用户游客的各个信息,设计的ER模型如下:

 

图3-8  管理员与游客模型

管理员管理会员投诉的各个信息,设计的ER模型如下:

 

图3-9  管理员与投诉信息模型

管理员管理餐品的信息,设计的ER模型如下:

 

图3-10  管理员与餐品模型

会员可以填写订单并发送订单,设计的ER模型如下:

 

图3-11  会员与订单模型


3.2.4数据库表结构设计

1) 管理员表,主要用于管理用户及用户的订单等,表结构如表3-1所示:

表3-1  管理员表

数据表名

Admin

中文名

管理员表

数据库名

weborder

创建者

周黎

所属模块

网上订餐

设计时间

2010.05.01

字段意义

字段名

字段类型

非空

默认值

主键

备注

ID

Aid

BIGINT

序列

管理员登录名

Alogin

VARCHAR

登录密码

Apwd

VARCHAR

姓名

Aname

VARCHAR

联系电话

Aphone

VARCHAR

2) 会员表,主要用于存储用户的注册信息,表结构如表3-2所示:

表3-2  会员表

数据表名

Users

中文名

会员表

数据库名

Weborder

创建者

周黎

所属模块

网上订餐

设计时间

2010.05.01

字段意义

字段名

字段类型

非空

默认值

主键

备注

ID

Uid

BIGINT

序列

会员号

Ulogin

VARCHAR

登录密码

Upwd

VARCHAR

姓名

Uname

VARCHAR

qq号码

Uqq

VARCHAR

联系地址

Uadrs

VARCHAR

联系电话

Uphone

VARCHAR

身份证号码

Uidcard

VARCHAR

邮箱

Uemail

VARCHAR

积分

Uscore

FLOAT

3) 订单表,主要用于用户的订单资料的存储,表结构如表3-3所示:

表3-3 订单表

数据表名

OrderList

中文名

订单表

数据库名

Weborder

创建者

周黎

所属模块

网上订餐

设计时间

2010.05.01

字段意义

字段名

字段类型

非空

默认值

主键

备注

ID

Oid

BIGINT

序列

餐品名称

Ofname

VARCHAR

餐品份数

Ofnum

VARCHAR

总计

Omoney

FLOAT

折扣

Ocut

FLOAT

订单联系人

Ouname

VARCHAR

联系电话

Ophone

VARCHAR

送餐地址

Oadd

VARCHAR

就餐方式

Oway

VARCHAR

其他需求

Oneed

VARCHAR

订单时间

Odate

DATETIME

就餐成功与否

Oyn

VARCHAR

4) 反馈信息表,主要用于会员留言及投诉等信息存储,表结构如3-4所示:

表3-4 信息反馈表

数据表名

FeedbackNews

中文名

信息反馈表

数据库名

Weborder

创建者

周黎

所属模块

网上订餐

设计时间

2010.05.01

字段意义

字段名

字段类型

非空

默认值

主键

备注

ID

Nbid

BIGINT

序列

会员号

Nulogin

VARCHAR

密码

Nupwd

VARCHAR

餐品名称

Nfname

VARCHAR

餐品评价

Nfping

VARCHAR

网站评价

Nwping

VARCHAR

投诉问题

Nwenti

VARCHAR

答复与否

Nreply

VARCHAR

答复内容

Nrecont

VARCHAR

5) 新闻表,主要用于新闻、公告等信息存储,表结构如3-5所示:

表3-5新闻表

数据表名

News

中文名

信息表

数据库名

Weborder

创建者

周黎

所属模块

网上订餐

设计时间

2010.05.01

字段意义

字段名

字段类型

非空

默认值

主键

备注

ID

Nid

BIGINT

序列

发布人姓名

Naname

VARCHAR

新闻标题名称

Ntitle

VARCHAR

新闻简介

Njie

VARCHAR

新闻类别

Nkind

VARCHAR

新闻内容

Ncontent

VARCHAR

发布时间

Ntime

DATETIME

6) 游客表,主要用于管理游客信息即存储游客信息等,表结构如表3-6所示:

表3-6 游客表

数据表名

Visit

中文名

游客表

数据库名

WebOrder

创建者

周黎

所属模块

网上订餐

设计时间

2010.05.01

字段意义

字段名

字段类型

非空

默认值

主键

备注

ID

Vid

BIGINT

序列

姓名

Vname

VARCHAR

电话

Vphone

VARCHAR

地址

Vadrs

VARCHAR

7) 表,主要用于餐品信息的存储,表结构如表3-7所示:

表3-7 餐品表

数据表名

Food

中文名

餐品表

数据库名

Weborder

创建者

周黎

所属模块

网上订餐

设计时间

2010.05.01

字段意义

字段名

字段类型

非空

默认值

主键

备注

ID

Fid

BIGINT

序列

餐品名称

Fname

VARCHAR

餐品价格

Fprice

FLOAT

餐品种类

Fkind

VARCHAR

快餐简介

Fsmry

VARCHAR

快餐图片地址

Fpict

VARCHAR


3.3网站整体设计

网站整体设计主要是文件架构以及系统文件的组成等。


3.3.1文件

数据库设计完成后就要搭建系统程序的文件结构了通过以上的简要分析得出的整个网站的文件结构,细分为总文件目录结构和src文件结构,具体如下三个图所示:

 

图3-12  总文件目录结构图

src文件夹由于组成文件太多,一个结构图不足以包含所有文件,所以将其中几个文件夹分成两部分,具体如3-13 所示:

 

3-13-1  src文件结构图[1]

 

3-13-2  src文件结构图[2]


3.3.2系统文件组成 

本系统主要组成文件、系统页面对应的文件和相应功能说明如下:

1)UserLogin.java       登录页面,可以实现会员、游客登录。

2)UserRegistration.java  会员注册页面类,实现非会员用户的注册。

3)Homepage.java       会员登录后系统主页面类;系统主页面由七大模块组成,以JTabbedPane标签页的形式嵌套这七大模块对应于不同的页面。

4)VisitMain.java       游客登录后系统主页面类;该系统主页面由六大模块组成,以JTabbedPane标签页的形式嵌套;这六大模块对应于不同的页面。

5)ManagerMain.java    管理员登录后的后台主页类,该页由JMenu套接四大模块。订单管理模块由一个页面OrderManagement.java组成;用户管理由三个页面组成,餐品管理FoodManagement.java;信息管理有四个页面组成。

6) DBLink.java        系统连接数据库的类,实现对数据库连接的打开关闭以及对数据库中元素的操作等。

7) Convert.java        系统数据类型转换类,解决对数据中元素的操作时出现的乱码问题等。


4章 系统详细设计与实现

根据前面的分析和客户的需求,本订餐系统前台和后台两部分组成,前台主要是包括前台登录和前台主界面两部分,后台主要就是后台登录和后台登录后的界面,后台登录作为前台主界面的一个子模块实现。该阶段主要完成各子模块的设计以及页面与数据库的链接工作。


4.1类的关联关系

关联关系类图包括了本网站的主要页面以及它们之间的简单关系(可按页面名称在上节的3.3.2系统文件组成”查询其具体功能)。

图4-1 主要类的关联关系图


4.2前台开发

前台开发主要是包括前台登录和前台主界面两部分,前台主界面由网站首页、订餐流程、餐品展示、网上订餐、会员中心和后台登录、系统消息的发布等模块组成


4.2.1会员登录后的前台

1. 界面总体类图

  

图4-2 会员前台系统类图

2. 详细设计及类图

会员登录后的界面由文件Homepage.java实现;对于一个网络订餐系统,网站首页极为重要,首页设计的好坏将直接影响到顾客的购买欲望。网上首页由文件Primary.Java实现。网站首页中,用户不但可以掌握特色餐网站信息等。

餐品展示页面用FoodInformation.Java完成。其设计思路:为了抓住顾客的购买欲,网络订餐应该引导用户进行购买,因此设置推荐品等,主导为用户提供查看品和订餐方便。另外,对于一个网上订餐系统而言,可以按类别查询餐品,所以设计餐品分类时,应该将品分类制成数据表存储在数据库中,以便动态地进行更新。用户通过输入不同类别中的餐品名就可以进入相应的品详细介绍的展示页面,品展示页面主要实现以下功能

1) 用户可以查看商品的详细信息;

2) 用户可以直接订购”进行品的订购

餐品查询结果页面的类图如4-3餐品展示页面的类图如4-4所示:

                          

图4-3 餐品查询结果类图           图4-4 餐品展示类图

会员订餐由OrderForUser.Java来实现。其中的订单表格是用来临时存储用户购物信息的,用户可以随时增加商品,修改商品数量删除商品以及清空表格。设计思路:将用户的购物信息存入一个临时表或临时文件中,当用户结账下订单时再删除临时记录。由于本系统是一个小型的订餐网站,所以可以考虑使用一个数据表来订餐,使用数据表会员表,订单表,餐;会员订餐页面的类图如4-5所示:

 

图4-5 会员订餐类图

会员中心是仅会员前台系统有的模块,当用户注册成为会员后,可以查看修改个人信息。使用数据表会员表,订单,反馈信息表等;会员信息修改类图如图4-6,订单查看类图如4-7所示:

              

图4-6 会员信息修改类图                  图4-7 会员订单查看类图

系统的信息发布主要有三种:系统公告,会员积分以及对客户投诉系统公告页面类图如图4-8,会员评价投诉页面类图如图4-9,会员评价或投诉流程图如图4-10所示:

                         

4-8 系统公告类图           4-9 会员评价或投诉类图

 

4-10 会员评价或投诉流程


4.2.2用户登录与注册

1. 用户登录

前台登录实际上是用来实现会员和游客这两类用户的登录,同时其上的“注册”按钮可以进去会员注册页面。会员和游客会进入不同的前台主界面。使用数据表:会员表;在会员登录程序中,输入分别为输入会员密码,有4个按钮,分别为:清空、登录、注册和游客;会员登录处理流程如图4-11,前台登录的页面的类图如图4-12所示:

 

  4-11  会员登录处理流程

         

4-12 前台登录类图        4-13  会员注册类图

2. 用户注册

本系统既可以为游客服务也可以为注册的用户服务,没有注册的游客也可以订餐,加入订单待用户选择好所有餐品后就可以点击下面的下订单操作。这会检查用户是否输入用户名、联系电话、联系地址是否输入,如果没有输入,会提示用户输入相应的信息,否则是不能下订单的。为方便用户注册,在会员登录框上点击注册按钮会进入注册页面,使用数据表:会员表会员注册类图如图4-13所示注册页面主要实现以下功能

1) 检查用户输入信息的正确性;

2) 提示注册是否成功的信息;

3) 保存会员信息返回登录框


4.2.3游客进入的前台

1. 界面总体类图

 

4-14 游客前台类图

2. 详细设计及类图

游客登录的前台系统同会员类似,只是少了会员中心模块,而且游客订餐页面与会员订餐模块稍有不同。因此,只对游客订餐页面作出详细分析,游客订餐由OrderForVisit.Java来实现。使用数据表:游客表,订单表,餐;其类图如图4-15所示:

 

4-15  游客订餐类图


4.3后台开发

后台开发主要包括页面设计、后台登录和登录后主页三块,由于后台登录作为前台进入后台的通道,所以,在设计时把后台登录作为前台的一个子模块去实现。登录后主页主要包括商品管理、订单管理、信息管理、用户管理等四部分它们有各自具有自己的子页面,具体的实现分析如下:


4.3.1后台总类图

   

4-16  后台总类图

本网站后台主要有4大功能模块组成,分别是:商品管理,订单管理,信息管理,用户管理;详细设计如下。


4.3.2后台登录

设计思路:后台主要是实现管理功能。功能导航区用于提供网站的管理功能导航,主操作区用于完成各种管理功能。管理员首先要登录后台,登录成功后才可以对各类信息进行管理。后台登页面类图与控制流程图分别如下所示:

 

4-17 后台登录类图

 

4-18后台登录控制流程


4.3.3餐品管理

餐品的管理主要是对餐的信息进行管理,实现对餐品的添加和删除和更改管理。主要用到的表:餐;其类图如图4-19所示:

 

4-19餐品管理类图


4.3.4订单管理

前台用户完成购物后,最终会产生订单而后台订单管理主要就是对这些订单进行处理,并根据订单进行送餐,这样就可以查看那些订单需要配送,那些订单已经完成交易(用以方便用户积分管理),主要用到的表:订单表,餐表,管理员表;类图如图4-20所示:

 

4-20订单管理类图


4.3.5信息管理

信息管理分为对商城公告信息的管理,对商城动态信息的管理,对站内新闻的管理,用户反馈信息的管理等。主要用到的表:新闻表和反馈信息表;反馈信息类图如图4-21所示:

 

4-21 反馈信息管理类图


4.3.6用户管理

用户管理主要分为三大部分:第一部分就是会员信息管理,第二部分是游客管理,第三个部分是对管理员信息的管理;在会员管理上用到了会员表,在游客管理上用到了游客表,对管理员的管理需要使用管理员表。会员管理类图如图4-22所示:

 

4-22 会员管理类图


4.4接口类代码


4.4.1数据库连接

1. 连接数据库weborderJava系统OrderOnLine的类DBLink.java

清单4-1

package JDBC;   /*数据库连接类*/

import java.sql.*;

public class DBLink {

private static Connection conn = null;

private static DBLink dbm = null;

private static Statement sta = null;

   private static String url = "jdbc:mysql://localhost:3306/weborder";

private static String user = "root";

private static String password = "1111";

private static String jdbcDriver = "com.mysql.jdbc.Driver";

private DBLink() {

try {   

Class.forName(jdbcDriver);

  try {  

conn = DriverManager.getConnection(url, user, password);

    sta = conn.createStatement();

    } catch (SQLException e) {

    System.out.println("error 001 :数据库连接异常");

                          }

  } catch (ClassNotFoundException e) {

        System.out.println("error 002 : 数据库驱动异常");

}

}

public static DBLink getDBM() {

     if(dbm == null) dbm = new DBLink();

     return dbm;

}

//数据库增、删、改

 public boolean UpdateData(String sql){

     boolean result=false;

     int re=0;

     try{   

re = sta.executeUpdate(sql);

        } catch (SQLException e){

       e.printStackTrace();

       System.out.println("error 003 修改数据库有问题");

                              }

finally{

        closeDB();

}

    if(re>0)result=true;

    return result;

}

//查询数据

 public ResultSet getRs(String sql) {

       ResultSet rs = null;

       try{   

rs = sta.executeQuery(sql);

        }  catch (SQLException e){

         System.out.println("error 004 查询数据异常");

         e.printStackTrace();

                                }

finally{    

closeDB();

          }

return rs;

 }

//关闭的方法

 public void closeDB() {

 try {  

conn.close();

 } catch (Exception e)  {

System.out.println("error 05 关闭数据库异常");

e.printStackTrace(); 

                                }

                 }

}


4.4.2部分页面代码

1.会员点菜页面OrderForUser.java,其代码清单如下所示:

清单4-2

import Main.Homepage;

/** @author 周黎 * @category 简易网上订餐系统---会员订餐页面*/

public class OrderForUser extends JPanel implements ItemListener {

…………

boxeat,boxnum,boxname;

Object[]   obj11 = {"餐品名称", "份数","单价(元)","是否删除"};

Object[][]  obj12 = new Object[50][4];

Object[]   obj1 = {"1", "2","3","4","5", "6","7","8", "9","10","11", "12","13","14","15"};

ublic OrderForUser( )  {

this.setLayout(null);

Toolkit   kit=this.getToolkit();   

     Dimension   winSize1=kit.getScreenSize();   

     this.setSize(winSize1.width, winSize1.height-100);

//添加餐品panel1

…………

for(int n=0;n<15;n++)

    {  

 box2.addItem(obj1[n]);  

 }

    label4 = new JLabel("餐品类别");

    jtfkind =new JTextField();

    jtfkind.setEditable(false);

    jtfkind.setBorder(new LineBorder(new Color(100, 100, 100), 1));

    jb1 = new JButton("加入订单");

    jbj1 = new JLabel(new ImageIcon("img/dabj/dabj11.jpg"));

    jb2 = new JButton("清空");

   …………

/加入订单按钮事件监听   

    jb1.addActionListener(new ActionListener() {

  public void actionPerformed(ActionEvent e) {

  String food=boxname.getSelectedItem().toString();

String fnum=box2.getSelectedItem().toString();

String price=jtf1.getText();

if(food.equals("请选择餐品名称"))

{  

 JOptionPane.showMessageDialog(null, "还没有选择餐品名称!");

}else{

  try {   

obj12[0][0]= food;

           obj12[0][1]= fnum;

         obj12[0][2]= price;

         obj12[0][3]= "";

         panel4=new JPanel();

         panel4.setLayout(null);

//定义一个表的模板          DefaultTableModel dtm1=new DefaultTableModel(obj12,obj11);

  …………

        String price1=obj12[0][2].toString();

        String num1=obj12[0][1].toString();

        String score1=jtf5.getText();

        float score2=Float.parseFloat(score1);

        float price2=Float.parseFloat(price1);

        float num2=Float.parseFloat(num1);

        float money=price2*num2;

        float moneycut=0;

        if(score2>=100)

        {   

moneycut=(money-score2/100);

             score2=(score2-(score2/100)*100);

        }else

            {   

moneycut=money;

                 }

…………

 } catch(Exception e1){

System.out.println("加入订单异常");    }

                     }         

}

  });

…………

}


5章 系统的部署与测试


5.1 运行环境的搭建


5.1.1系统运行环境的搭建

1.安装JDK

要编译和调试运行Java程序,首先需要安装JDK,可以从Sun公司的站点https://sdlc6b.sun.com下载,当然需要根据使用的平台的不同来下载不同的版本。下载并安装好以后,需要配置环境变量,其作用是让应用程序可以方便快捷地找到所需要的路径。配置 Java运行环境主要用到的环境变量有3个:

l JAVA_HOME:就是Java的安装路径。

l PATHPATHWindows固有的。要加上JAVA_HOME\bin目录,这样在运行javacjava等命令时就不用输入很长的路径了。

l CLASSPATHCLASSPATH是运行Java非常重要的一个环境变量,Java在编译和运行应用程序时都要通过它去找到需要的类文件。放在CLASSPATH里的一般是路径或jar文件,如果是路径的话就是说这个路径下的类可以使用。还要考虑到Java文件的包(package)和文件夹之间的对应关系。

2. MySQL5.0的安装

在安装数据库管理软件MySQL5.0成功后,还应安装Sqlyog来作为MySQL5.0的可视化运行界面。

3. JDBC驱动的安装

下载MySQL链接Java的压缩包mysql-connector-java-5.1.12-bin.jar,并将它放置在安装Java的目录 C:\Program Files\Java\jdk1.6.0_19\jre\lib\ext下。同时,编写程序HelloMysql.Java来测试Java与MySQL是否连通。


5.2系统测试

软件测试是保证软件可靠性的手段,测试阶段的任务就是发现并改正软件中的错误。软件测试是软件开发过程中最繁重的任务。通过编码和调试只能保证程序能够正常的运行起来,不出现编译上的错误,但是这并不意味着程序没有潜藏的错误和逻辑上的错误,而要排除这样的错误就要通过测试来完成。测试在本系统中包括界面的测试和对程序执行结果是否正确的测试。

本系统的测试如图5-1所示。

 

5-1 系统所涉及的测试

在编写完代码之后,要把程序执行过程中所有可能走到的点记下来,这些点是可能导致程序出现错误的点,并且把对走到相应的点的处理也要记录下来,把这些组成的文件称为测试点文件,通过测试点文件可以生成各种合理的测试方案,使得测试尽量能够走遍程序中的所有点,只有这样才能表示测试的成功。这个记录文件就相当于画面设计书一样,测试是交互进行的,并不是各自测试自己的程序,尽管如此,通过测试点文件对方仍能够知道程序执行的具体流程,所以在这个测试中仍然是白盒测试。在单测试都完成之后,再进行系统的集成测试。集成测试包括两种方法,一是先测试每个模块,再把所有模块按照设计的要求组合成所要的程序,这种方法成为非渐增式测试方法,另一个是把下一个要测试的模块同已测试好的那些模块结合起来进行测试,测试完成之后再把下一个要测试的模块结合起来进行测试。这种每次增加一个模块的方法为渐增式测试。


5.2.1常见错误

编完程序后,最后一步就是对系统进行测试本网上订餐系统主要是用Java语言编写的最常见的错误是出现异常。

1)语法错误它是由错误的脚本语法引起的命令的拼写错误或传递函数的参数值错误

2)运行时错误运行时错误是发生在程序开始执行之后它是由试图执行不可能操作的程序所引起的

3)逻辑错误逻辑错误是最难发现的错误通常逻辑错误是由输入错误或程序逻辑上的缺陷引起的,程序运行没有问题运行的结果却不正确。


5.2.2测试的方法

依据前面所说的测试对象,我们把测试划分为几个方面来进行测试。

1)界面测试

界面测试是测试过程中比较简单直观的一种测试方法,只要细心地按界面要求核对就行了。可这一块内容往往是程序开发人员最容易忽视和遗漏的地方,也是常常出Bug的地方。下面是界面测试中经常出现的几种Bug

错别字,即界面中的标题或者文本内容中出现了错别字。这种Bug如果测试人员不细心,很难找出来,可能会出现在提示信息或界面中。

出现了一些根本读不懂的内容,一般多出现在程序的提示信息和一些较长的文本中。这种情况基本上出现在拼起来显示的提示中,页面的简单陈述是通过变量拼组起来的,通过程序将字一个一个地输出来。通常是因为程序中的控制错误或是程序开发人员对程序没有进行认真的自测,导致出现这种Bug

页面类似的内容中,明显有字体,字号不同的情况,使界面整体风格看上去不一致,这种情况只出现在没有CSS定义的情况下,或是已经定义的CSS,在开发过程中没有调用。

标题相近的程序及模块,把标题弄混。这种情况多是因为业务方面的定义名称很相似或很类似,并且业务实体方面也很类似,开发人员在开发过程中忽略了开发名称和模块,只单独地实现其功能。

2)功能测试

顾名思义,功能测试主要是测试程序模块是否实现了设计中所有要求的功能。功能测试中需要注意的有:

订餐功能中,有关于订餐时间有一些常识性的问题,比如:闰年中二月的天数。

关于后台修改各种信息功能的测试,主要是看修改确认后是否数据真正已被修改了。这是最基本的功能,需要注意的是是否把不应该修改的数据也被修改成功了。

3)需求测试

需求测试是测试中很重要的一个环节。因为需求是软件设计,开发乃至软件测试中最重要的依据。要针对需求测试,首先就要对项目的需求和业务有一定的了解。这些需求很多时候是在实现增、删、查、改,这些基本功能之上,结合项目和相关业务所作的一些逻辑上的控制,这就要求程序员在设计和编码的时候要去充分理解考虑需求。

4)性能测试

性能测试在软件的质量保证中起着重要的作用。通常我们把性能指标全部归结到硬件,操作系统和开发环境上,而忽略了代码本身性能上的考虑。性能需求指标中,稳定性,并行访问支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运行中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。


5.2.3界面测试

系统的前台为用户提供了会员注册,餐品信息浏览,网上订餐,会员信息查看、修改,信息发布,后台登陆等功能。

1.用户注册模块的测试

用户在登陆框中点击“注册”按钮,进入会员注册页面。图5-2为注册页面。

 

图5-2 注册页面

2.会员登录模块测试

会员登录测试用例如表5-1所示,会员登录界面如图5-3 所示。

5-1  会员测试用例

用例标识

UserLogin

项目名称

基于Java的网上订餐系统

开发人员

模块名称

UserLogin.java

用例作者

使用信息

数据库weborder表user

测试类型

功能测试

设计日期

2010-05-05

测试人员

测试方法

黑盒

测试日期

2010-05-07

 

 

用例描述

测试会员登录功能

前置条件

编号

权限

(并列关系)

测试项

测试

类别

描述/输入

/操作

期望

结果

真实结果

备注

  

图5-3 用户登录

3.餐品信息模块测试

会员在登陆框中点击“登录”按钮,并通过数据库验证,成功进入会员登录的前台,点击“餐品信息”进入餐品信息页面,图5-4为餐品信息页面。

 

图5-4 餐品信息测试

4.订餐模块测试

会员在登陆框中点击“登录”按钮,并通过数据库验证,成功进入会员登录的前台,点击“网上订餐”进入会员订餐页面,5-5会员订餐测试;会员在登陆框中点击“游客”按钮,成功进入游客登录的前台,点击“网上订餐”进入游客订餐页面,5-6游客订餐测试。此功能测试用例对测试对象的功能测试应侧重于所有可直接追踪到用例或订餐功能的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及订餐规则的实施是否恰当。主要测试技术方法为用户通过GUI(图形用户界面)与应用程序交互,对交互的输出或接受进行分析,以此来核实需求功能与实现功能是否一致。表5-2会员订餐页面测试用例;表5-3游客订餐页面测试用例。

表5-2  会员订餐页面测试用例

用例标识

OrderForUser

项目名称

基于Java网上订餐系统

开发人员

模块名称

OrderForUser.java

用例作者

参考信息

数据库weborder订单表orderlist

测试类型

功能测试

设计日期

2010-05-05

测试人员

测试方法

黑盒

测试日期

2010-05-07

 

 

用例描述

测试会员订餐功能

前置条件

会员登录前台系统

编号

权限

(并列关系)

测试项

测试

类别

描述/输入

/操作

期望

结果

真实结果

备注

  

图5-5 会员订餐

表5-3  游客订餐页面测试用例

用例标识

OrderForVisit

项目名称

基于Java网上订餐系统

开发人员

模块名称

OrderForVisit.java

用例作者

参考信息

数据库weborder订单表orderlist

测试类型

功能测试

设计日期

2010-05-05

测试人员

测试方法

黑盒

测试日期

2010-05-07

 

 

用例描述

测试游客订餐功能

前置条件

游客登录前台系统

编号

权限

(并列关系)

测试项

测试

类别

描述/输入

/操作

期望

结果

真实结果

备注

 

图5-6 游客订餐

5.会员中心测试截图

会员在登陆框中点击登录按钮,并通过数据库验证,成功进入会员登录的前台,点击会员中心进入会员中心页面,图5-7为会员信息修改界面;图5-8为会员查看订单界面。

 

5-7  会员信息修改界面

  

5-8 会员查看订单界面

6.信息公布模块测试

会员在登陆框中点击“登录”按钮,并通过数据库验证,成功进入会员登录的前台,点击“信息公布”进入信息公布模块,5-9会员信息反馈界面;5-10信息发布页面。

 

5-9 信息公布之反馈信息界面

 

5-10 信息公布之信息发布界面

7.后台登录界面测试

会员在登陆框中点击“登录”按钮,并通过数据库验证,成功进入会员登录的前台,点击“后台登录”进入后台登陆模块,在输入正确的管理员名称和密码后可以进入系统后台;5-11为后台登录界面。5-4为后台登录页面测试用例

 

5-11 后台登录界面测试

5-4  后台登录页面测试用例

用例标识

ManagerLogin

项目名称

基于Java的网上订餐系统

开发人员

周黎

模块名称

ManagerLogin.java

用例作者

参考信息

数据库weborderAdmin

测试类型

功能测试

设计日期

2010-05-05

测试人员

测试方法

黑盒

测试日期

2010-05-10

 

 

用例描述

测试管理员登录功能

前置条件

用户进入前台系统

编号

权限

(并列关系)

测试项

测试

类别

描述/输入

/操作

期望

结果

真实结果

备注

8.后台管理页面界测试

管理员进入后台后,增加餐品的测试、删除订单的测试、查看反馈信息的测试、修改会员积分的测试如下面界面所示:

 

5-12 后台管理之餐品管理测试

 

5-13 后台管理之订单管理测试

 

5-14 信息管理之反馈信息管理测试

 

5-15 用户管理之会员管理测试

系统测试和系统设计同步的,下面是我的一些测试的经验教训。首先,我们可以运行,如果运行没有问题的话,就会有页面出现。但是,如果代码错误的话,页面出现错误的提示。并会告诉你在哪一行出错出错的原因。这样的话,我们根据它的提示,可以更改。其次,我们在打开页面正常的,但是不能达到预期的效果,这个就需要我们认真看代码了,并根据我们功能要求对其实现的代码进行分析,通过查阅书籍和网上搜寻资料来解决问题。这个是最难处理的,但是也是锻炼我们编程能力的捷径。另外,我们要时刻备份系统,避免我们的误操作对系统的破坏,万一我们没有备份过的话,我们以前所做的努力就全部付之东流了。所以,这点是非常重要的。


5.3 系统维护

系统维护是为保证系统的正常运行和安全保障等而采取的一系列措施,其中包括数据库维护、信息更新、版面更新、安全测试以及数据备份等操作过程;除此之外,如果要公开这个网站,则还包括服务器和域名空间等的维护。

数据库维护和信息更新:该阶段主要是要求管理员要经常对数据库和过期的信息及时地进行更新和维护,以保证数据库的正常运行和信息的及时性,从而保证了访问者能够顺利地了解到最新的信息动态。

版面的更新:该过程主要是要求对系统的首页和页面定期进行相应的调整或更新,从而使本系统经常以崭新的面貌出现在广大访问者的面前。

安全测试和数据备份:该过程主要是从系统的安全方面考虑,由于目前整个网络体系的安全问题还存在着较大的隐患,所以如何加强系统的安全性能对于一个系统的正常运行具有非常重要的意义。所以,管理员要经常对系统进行诸如一些用户名、密码以及权限的更新或重新设置,从而保证系统的安全性


 

本文是一个小型的网上订餐系统,并通过此系统的实现,对Java应用更加深化。不过要真正掌握好Java+JDBC+MySQL却并不是一件容易的事情,在实际应用的网站开发中,还有很多关于安全方面的问题需要考虑,此外电子商务网站中还涉及到使用网上支付平台以及物流的配送等,本系统则尚未涉及这些方面。

不管用什么平台做系统,其中的指导思想是一致的。系统的社会可行性和实用性方面是必需考虑的,因为当今时代背景下,网上购物对人们的生活带来了很的方便。所以在这过程中,我考虑最多的还是如何利用自己有限的技术制作出出色的系统,由于时间仓促以及技术的不足,本购物系统实现的有一些功能还不是很完善,有的功能也并未真正实现

由于是第一次开发这种Java应用系统,可能还有很多不足之处。所以只有匆匆忙忙地从图书管理借来大量基于Java系统设计方面的书籍,希望通过参阅各种关于系统设计的书籍充分了解系统开发的基本流程、总体布局设计以及系统开发前所需的一些准备工作,做到心中有数。然而,由于实在是经验有限,虽然书本上介绍了许多这方面的知识和操作方法,但是毕竟还是限于理论方面的,所以理解起来比较困难,一切都是按自己的摸索来构建。先去详细地了解了用户对网上订餐系统的总体需求和目的,比如首页需要设计成怎样的形式,一共需要多少个内容版块,需要有哪些功能模块,主页下面有几层子页面,以及哪些地方需要设计成动态模式等等各方面的信息。由于这方面的知识还是不够成熟,所以中间还是没有充分了解用户的需求,后来我再细心地浏览了大量的相关系统的总体布局和设计风格,充分借鉴它们的设计和内容,才开始对本系统进行一个总体布局和页面设计。

然而,进一步对系统的各个功能模块的分析和设计时,我又进入到先前的尴尬境地。因为以前做系统都有一定的步骤和模式可供参考,而至于系统的一些功能模块分析无从下手。回头只好查阅资料,并且只好根据自己所理解的东西进行一步步摸索。至于其他一些诸如数据库设计等方面的分析,则完全参照系统设计的步骤和模式来,并根据以前所学的知识来作详细的分析。

虽然我在需求分析阶段花了很大的力气,但是在后来的实际设计当中还是发现了很多问题。由于对整个系统的设计理解不够深刻,加上需求分析做的不够深入不够透彻就急于进入系统设计阶段,才导致了后来设计过程中出现的大量漏洞,不得不回头来重新分析和弥补漏洞。比如起先认为很好的整个页面布局,然而由于没有考虑到设计软件等各方面的原因,使得原来设计好的布局不得不重新调整,有时又会由于忘了某个功能忘了放进去而又要重新调整,这样弄来弄去以致浪费了大量的时间。另外,在涉及到各功能模块的链接时,往往由于事先没有一个总体的安排和考虑,以至于部分功能链接过程中出现了混乱的状态。还有,由于自己平时在做数据库设计时不是非常细心,也没有做大量的数据分析,以至导致了后来在系统调试时出现了数据的乱和错误。所以,经过这次的设计,我更加深刻地认识到需求分析的重要性,它对于下阶段工作开展的顺利与否具有决定性的意义。

在整个系统的设计过程中,由于时间和各方面的原因,在设计过程中所使用的技术要求难度不高代码只采用纯Java来实现;另外为了达到一定的功能,又限于本人技术有限,所以有些功能是从现有的订餐系统拷贝而来


参考文献

[1] 张峰.JAVA进阶诀窍.清华大学出版社.2009-01.

[2] MySQL公司. MySql中文帮助文档[M].页面文档.2006-02-11.

[3] 吴其东.JAVA模块设计实例经典.北京:冶金工业出版社.2004-06.

[4] 李世祥.Struts框架应用与开发[M].东软电子出版社.2002-06-09.

[5] 陈天河.Hibernate项目开发宝典[M].电子工业出版社.2004-03-23.

[6] 刘升华等.Java从入门到实践.北京:清华大学出版社.2009-09-01.

[7] 良葛格.Java学习笔记(第一版).北京:清华大学出版社.2006-08.

[8] 叶志军等.由浅入深--Java2自学教程.北京:人民邮电出版社.2004-10.

[9] 孙卫琴.精通Struts基于MVCJava Web设计与开发[D].电子工业出版社.2006-11-13.

[10]陈火旺,徐建波,周新莲.Web设计原理与编程技术[M].中南大学出版社.2005-07-14.

[11][]David M·Geary.李建森译.java swing图形设计卷.机械工业出版社.2000-02.[期刊]

[12][]Michael Kofler.杨晓云,王建桥,杨涛等译. MySQL5权威指南.北京:人民邮电出版社.2007-03.

[13][]Herbert Schild.鄢爱兰,鹿江春等译.Java参看大全(J2SE 5 Edition).北京:清华大学出版社.2006-01.






致谢

经过两个月的努力,关于《基于Java的网上订餐系统》的毕业设计和论文终于完成。在这两个月的时间里,如果没有别人的支持和帮助,本次设计是无法顺利完成的。首先要感谢的是我的指导老师 。在毕业设计的开始阶段,张老师给我指明了设计的方向及规范,并且给我提供了一些资料。在设计的中期,又及时的给我解答各个方面的疑难。甚至在毕业论文的写作,他也曾多次指出我论文写作中出现的问题。在这里我再次衷心地感谢张老师,并向他说声谢谢。我还要感谢在设计的过程中帮助过我的同学和舍友们,在他们的帮助下我才成功地连接了数据库。有些功能是借鉴从网上下载的论文后经过一定的修改而成的,在此向网上帮助我的朋友说声谢谢。现在马上就要离开生活四年的大学校园了,我应该感谢大学四年曾给我们带过课程的各位老师,谢谢你们。没有你们大学这几年的教导,我是不能适应社会的激烈竞争的,再次谢谢你们。

猜你喜欢

转载自www.cnblogs.com/rdutdhtfj/p/12657480.html
今日推荐