教职工食堂订餐系统的需求和总体设计前台子系统.docx
- 文档编号:5102213
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:16
- 大小:200.08KB
教职工食堂订餐系统的需求和总体设计前台子系统.docx
《教职工食堂订餐系统的需求和总体设计前台子系统.docx》由会员分享,可在线阅读,更多相关《教职工食堂订餐系统的需求和总体设计前台子系统.docx(16页珍藏版)》请在冰豆网上搜索。
教职工食堂订餐系统的需求和总体设计前台子系统
教职工食堂订餐系统需求和总体设计——前台子系统
目录
1系统需求分析2
1.1系统总体业务流程2
1.2系统功能需求3
1.3系统其它需求5
2前台子系统的总体设计6
2.1MVC设计方法介绍6
2.2系统整体架构8
2.3前台子系统功能模块设计9
2.4前台子系统总体页面设计9
2.5数据库设计10
2.5.1数据库概念结构设计10
2.5.2数据库逻辑结构设计11
2.6开发运行平台选择与分析14
1系统需求分析
1.1系统总体业务流程
图1教职工订餐系统客户端流程图
从图1来看,前台子系统主要分为五大模块:
查询今日菜单模块、留言板模块、购物车模块、注册登录模块、用户中心模块。
图2教职工订餐系统管理端流程图
从图2来看,后台子系统主要分为七个模块:
审查注册员工资格、菜单管理、今日菜单管理、推荐菜管理、信用度管理、订单打印和账单打印。
1.2系统功能需求
这里只对订餐系统的前台子系统五个模块即查询今日菜单模块、留言板模块、购物车模块、注册登录模块、用户中心模块和后台子系统部分的审查注册员工资格模块进行分析,其具体如下:
1.2.1查询今日菜单
1)任何用户登录网站即可以直接查询今日菜单,但是登录之后才能购买各种食物。
2)饮料订购快速窗口,直接查看饮料信息.
3)炒菜订购快速窗口,直接查看炒菜信息
表1:
查询今日菜单模块功能表
序号
功能列表
功能明细
1
查询今日菜单
查看今日菜单全部,点击单个食物可以查看详细信息
2
饮料速订
查看今日菜单后,可以只查看饮料信息
3
炒菜速订
查看今日菜单后,可以只查看炒菜信息
1.2.2留言板
1)任何人登录网站都能查看,回复全部留言和签写新留言。
2)管理员登陆时可以删除留言。
表2留言板模块功能表
序号
功能列表
功能明细
1
查阅留言
可以查看所有留言内容,留言者,留言时间,点击GO按钮可以查看指定页的留言
2
回复留言
点击回复,填写回复内容即可回复该条留言
3
签写新留言
输入昵称,邮箱,留言内容,点击提交即可留言
4
删除留言
当管理员登陆时点击删除留言才能操作成功
1.2.3购物车模块
1)将选中的食物放入购物车。
2)浏览购物车。
3)取消购物车中的某一件食物。
4)继续购买。
5)清空购物车。
6)订餐。
表3购物车模块功能表
序号
功能列表
功能明细
1
将事物放入购物车
在浏览今日菜单,饮料,炒菜或者查看单件事物的详细信息时,单击购买标识,就可以把事物加到购物车中
2
浏览购物车
显示购买的食物名称,购买的食物数量,食物单位价格,每种食物的总价,所有食物总价
3
取消购物车中的食物
从购物车中取消某一种食物,单该事物数量大于一时,则减少该食物数量1
4
继续购买
继续往购物车里添加食物
5
清空购物车
把购物车中的商品全部拿出
6
订餐
正确的填写送餐时间和送餐地址后点提交订单即可订餐,晚上7点后不允许订餐,当天只能订当天的餐
1.2.4注册登录
1)新用户注册,填写正确的注册信息,等待管理员审查。
2)通过审查的用户登录。
表4注册登录模块功能表
序号
功能列表
功能明细
1
用户注册
用户填写正确的信息申请注册,待账号通过管理员的审核以后才能使用该注册账号进行登录
2
用户登录
用户输入用户名和密码进行验证
1.2.5用户中心
1)用户信息修改。
2)用户密码修改。
3)订单管理。
4)用户注销。
表5用户中心模块功能表
序号
功能列表
功能明细
1
用户信息修改
编辑并保存用户的注册信息
2
用户密码修改
修改登录密码
3
订单管理
查看当前拥有订单信息和状态,在送餐之前可以取消不想要的订单,距离订餐时间30分钟内取消订单则会扣除该用户信用度一分
4
用户注销
用户注销
1.2.6管理员审查注册员工资格
1)查看待审查注册员工信息。
2)通过该员工注册。
3)放弃该注册员工。
表6管理员审查模块功能表
序号
功能列表
功能明细
1
查看待审查注册员工信息
查看待审查注册员工详细信息
2
通过注册员工
通过电话或者邮件的方式确认注册员工的信息是否属实,信息正确则通过注册,该系统不对外开放
3
放弃注册员工
放弃该注册人员
1.3系统其它需求
1.3.1系统扩展性要求
系统的运行将为以后的学生食堂在网上运行提供宝贵的经验,所以,对于系统功能的扩充要求比较高,系统后期的升级才能顺利方便,这就要求在建立系统的构架和设计系统时,一定要注意系统的可扩展性,而且现在很多项目开发是分期进行的。
暂时准备的扩展有一些比较高级的功能,比如系统向用户提供收藏夹模块功能,用户可以把喜欢吃的食物收藏起来,下次购买时可以直接生成订单,还有网上充值和结账模块,使订餐的全程除了送餐外,全部实现在网上,达到真正的网络化。
1.3.2时间特性要求
1)在用户执行添加删除食物,取消订单等操作的时候,在运行环境规定的条件下,单次操作的响应时间要求在3秒钟之内。
2)系统同时上线人数不超过数据库承受能力时,相应速度不应超过3秒。
1.3.3错误处理要求
1)在用户输入一些不合理的数据的时候,能够进行合理的提示信息,并且正确处理跳转逻辑,不能因为输入错误而导致系统的错误,或者程序停止运行。
2)程序运行时,对服务器和网络通信故障能够识别并提示,当故障排除后,程序恢复正常运行。
3)数据库要求有备份机制,以防止数据在意外情况下丢失。
1.3.4安全需求
数据库安全:
数据库级备份和恢复。
数据库级用户进行角色和权限授权。
使得在异常情况发生时,系统可以得以快速恢复,避免数据的丢失或将其影响降到最低限度。
同样,要保证存储过程中数据不被非法访问和篡改。
应用系统的安全:
通过对用户的身份鉴别,并实施相应的访问控制策略后,系统之分普通教职工用户和管理员,特殊操作如更改或删除数据库的操作必须受到严格的权限限制,以保证系统的正常运行。
2前台子系统的总体设计
2.1MVC设计方法介绍
图3MVC组件类型的关系和功能[8]
MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)处理。
比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
模型(Model):
就是业务流程/状态的处理以及业务规则的制定。
业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的核心。
目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。
它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。
对一个开发者来说,就可以专注于业务模型的设计。
MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。
抽象与具体不能隔得太远,也不能太近。
MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。
我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。
这点对编程的开发人员非常重要。
业务模型还有一个很重要的模型那就是数据模型。
数据模型主要指实体对象的数据保存(持续化)。
比如将一张订单保存到数据库,从数据库获取订单。
我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。
控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。
划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。
控制层并不做任何的数据处理。
例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。
因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
图4MVC的分工与协作
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。
因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。
这实际上是一种模型的变化-传播机制。
模型、视图、控制器三者之间的关系和各自的主要功能,如图3所示。
2.2系统整体架构
通过对系统的需求分析,确定了整个系统为一个WEB系统,采用的是MVC模式进行网站的开发,在这个系统中使用的WebServer是Tomcat6.0,DBMS(数据库管理软件)是SQLServer2000,并且使用Microsoft提供的JDBC驱动程序。
基于MVC模式的WEB项目的优点在上一节中已经介绍过了,在知道了Jsp、Servlet、Javabean分别在MVC模式中的角色和功能后,这里对网站的整体构架做一个详细描述,工作流程为:
a)Web客户机向Web服务器发出请求;
b)Web服务器把这一请求转送给控制器Servlet;
c)Servlet对JavaBean进行必要的操作;
d)控制器把处理结果转发给JSP视图;
e)JSP视图对模型进行格式化以备显示,并把HTML结果回送给Web服务器;
f)Web服务器再把信息回送给Web客户机。
图5:
系统构架图
2.3前台子系统功能模块设计
前台子系统的功能模块图如下:
图6:
前台子系统功能模块图
1)登录注册:
教职工用户注册为系统用户,登录使用该系统;
2)查询今日菜单:
任何用户都可以查询今日菜单,点击按钮则显示今日菜单;
3)购物车:
用来临时保存登录用户所购买的物品,用户可以对购物车内的物品进行添加删除清空等操作,确认购买后,可以提交订单;
4)用户中心:
用户登录后可以修改自己的注册信息,密码,查看自己的订单状态和信息,并且可以退出系统;
5)留言板:
任何用户均可查看留言,并且允许签写新留言和回复留言,用于普通用户和其他用户交流、与管理员的交互和管理员用户进行答疑等,管理员用户可以删除任何留言。
2.4前台子系统总体页面设计
1).页面框架
开发一个网站,好的界面风格和页面框架是非常重要的,特别是对电子商务网站如本食堂订餐系统更需要有好的”门面”。
本系统采用的是比较传统的框架,如图7所示。
图7页面框架
可以看到,页面包含三个部分,最上面是菜单部分,下面的左边部分是一个固定页面,右边部分包好了根据不同的页面显示的内容,所有页面都直接套用该框架。
2).页面风格
对于本系统来说,网站的美观是用户订餐的一种胃口的保证,是吸引顾客的重要因素之一,所以一般需要在页面里面制作专业的图片和动画,本系统中的头部和左边都有一个精美而且实用的FLASH动画,分别为top.swf和menu.swf,增加了页面的美感。
同时在页面的整体风格上,定义了两个统一的式样单style.css和web.css。
2.5数据库设计
2.5.1数据库概念结构设计
前台子系统以及管理员审查模块的ER图如下:
图8前台子系统部分模块E-R图
教职工实体的主要属性:
教职工号,用户名,密码,性别,联系电话,办公室地址,单位,信用度。
待审查教职工名单实体的主要属性:
教职工号,用户名,密码,性别,联系电话,办公室地址,单位。
管理员实体的属性:
编号,用户名,密码,真实姓名,电话。
菜谱实体的属性:
食物编号,食物名,类型,描述,图片,价格,是否为今日菜。
购物车实体的属性:
食物名,食物数量,总价格,订餐人,送餐时间,送餐地址。
订单实体的属性:
订单号,食物名,单个食物价格,食物数量,订餐用户,送餐时间,送餐地址。
留言的属性:
留言编号,IP,留言者邮箱,留言时间,留言内容,回复内容,回复时间,昵称。
2.5.2数据库逻辑结构设计
以下仅对重要的表进行列举和分析。
表7:
教职工信息表userInfo
字段名称
中文描述
数据类型
非空
缺省值
备注
userId
用户编号
int(4)
Y
PK
userName
用户名
varchar(20)
Y
userSex
性别
char(8)
Y
userPwd
密码
varchar(16)
Y
userTel
电话
char(11)
Y
userAd
地址
Varchar(50)
Y
userDepartment
工作部门
Varchar(50)
Y
为送餐地址的默认值
Feedback
信用度
int(4)
Y
4
信用度小于1时注销账户
说明:
用户使用userName和userPwd进行登录,userTel将作为管理员与用户取得联系的重要方式,其他信息用于管理员进行身份审核时对照只用,信用度每个人初始为4,以后根据规则,信用度将会调整,当信用度小于1时,该用户将被取消订餐功能。
userDepartment将为以后的送餐地址提供默认值。
表8:
菜单表Menu
字段名称
中文描述
数据类型
非空
缺省值
备注
menuId
食物编号
Int(4)
Y
PK
menuName
名称
varchar(20)
Y
menuType
类型
varchar(20)
menuDescribe
描述
varchar(50)
Y
menuPicture
图片
varchar(50)
Y
menuPrice
价格
varchar(50)
Y
istoday
是否今日菜
Int(4)
Y
0
0为非今日菜,1为今日菜
说明:
menuId作为一个菜的唯一标识,menuType只能是荤菜,素菜,凉菜,饮料,米饭,便于在今日菜单中进行菜品分类,menuPicture保存的是图片的路径,istoday作为一个标识,当管理员添加一个菜的时候,默认是没有在今日菜单上的,当管理员发布了之后,该属性值就为1。
表9:
留言信息表Messages
字段名称
中文描述
数据类型
非空
缺省值
备注
id
留言编号
int(4)
Y
PK
ip
IP地址
varchar(50)
Y
邮箱
varchar(50)
time
留言时间
varchar(50)
Y
content
留言内容
varchar(50)
Y
restores
回复内容
varchar(50)
restore_time
回复时间
varchar(50)
xm
姓名
varchar(50)
说明:
id为留言的唯一标识,ip记录了留言者的IP地址,time自动保存提交留言的时间,content为留言内容,而restores作为一个留言的属性,表示一条留言只能有一条回复,如果多次回复,回复内容将会覆盖,之保存最后一天回复内容,回复时间restore_time也是只保留最后一条回复的时间。
表10:
订单信息表Orders
字段名称
中文描述
数据类型
非空
缺省值
备注
Id
菜品标识
int(4)
Y
PK
orderId
个人订单编号
int(4)
Y
goodName
食物名
varchar(50)
Y
goodPrice
食物价格
varchar(50)
Y
goodNum
食物数量
int(4)
Y
username
订餐者
varchar(50)
Y
RoomAddress
送餐地址
varchar(50)
Y
orderTime
送餐时间
varchar(50)
Y
说明:
该表的设计为一个重点。
Id作为主键,标识订单上的某一个食物,以便控制以后扩展功能时对单个食物的控制。
orderId作为一个用户特有的订单号,从1开始,即每个用户都可以有从1开始的订单号,userName表示订餐人,所以一个订单由orderId和userName共同决定。
在一个表中,userName相同并且orderId相同的菜属于同一张订单,一个人可以有多张订单。
如图:
图9orders表图
用户liyanhui有orderId从2到6共5个订单,用户芳芳有2个订单,其中Id为10和11的两个菜都属于同一个订单ordered=2。
2.6开发运行平台选择与分析
系统采用了面向对象的设计方法,所以在开发语言上,理所当然选择了JAVA,凭借JAVA的跨平台性,使订餐系统对操作系统的选择多样化。
JavaWeb应用程序需要在支持Servlet和JSP的Web容器中运行。
现在,很多厂家都开发了支持Servlet和JSP的Web容器。
其中不乏一些优秀的、免费的、开放源代码的产品,比如Apache的JakartaTomcat,JakartaTomcat是ApacheJakarta项目组开发的机遇GPL自由软件协议的JSP引擎,配合JDK就可以搭建一个最简单的JSP试验平台。
Tomcat开发源代码,使用起来比较简单,Tomcat是Servlet和JSP1.1规范的官方参考实现。
Tomcat既可单独作为小型Servlet、JSP测试服务器,也可以继承到ApacheWeb服务器。
考虑到本系统的实际需要和Tomcat的诸多优点和特性,我们使用ApacheTomcat作为Web服务器。
开发环境:
硬件:
CPU:
AMDAthlon(tm)643000+
内存:
512M
操作系统:
MicrosoftWindowsXPProfessional+SP2
服务器:
HPProLiantML370G4
操作系统:
MicrosoftWindows2000Server+SP4
Web服务器:
ApacheTomcat6.0
开发工具:
EclipseV3.1,DreamweaverV8.0
数据库管理系统:
SQLServer2000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教职工 食堂 系统 需求 总体 设计 前台 子系统