目录1引言 (1)1.1编写目的 (1)1.2背景说明 (1)1.3 参考资料 (1)2总体设计 (2)2.1需求规定 (2)2.2运行环境 (2)2.3基本设计概念和处理流程 (2)2.4结构设计 (3)2.4.1结构 (3)3数据库设计 (4)3.1概念结构设计 (4)3.2逻辑结构设计 (5)3.3物理结构设计 (6)3.4安全保密设计 (7)4系统出错处理设计 (8)4.1出错信息 (8)4.2补救措施 (8)4.3. 系统维护设计 (8)5程序模块1设计说明 (9)5.1程序描述 (9)5.2功能 (9)5.3算法 (9)5.4注释设计 (9)5.5测试计划 (9)6程序模块2设计说明 (10)1引言1.1编写目的此系统是为美食美客餐饮集团扩展网上订餐服务而开发,但由于开发者和用户之间的行业、领域差异,使得开发者和用户对此系统功能的理解方面存在一定的差别。
为了管理员和系统维护者能清楚地知道此系统的功能和作用,所以要进行软件设计分析,并以文档的形式来记录。
通过软件设计说明书,使开发者和用户之间的沟通更为方便,也有利于使用者充分分析和理解开发者的用意,从而更方便地使用本系统。
同时,为本次项目保留相关信息文档,便于日后系统的升级改建等拓展性工作,另外也为以后类似的系统开发提供借鉴意义。
1.2背景说明1.软件系统名称:美食美客网上订餐系统2.项目提出者:开发者:用户:顾客、餐厅管理员1.3 参考资料本系统的开发过程中所参考的资料为:[1].计算机软件产品开发文件编制指南(GB 8567-88)[2].张海藩.软件工程导论.北京:清华大学出版社.2008[3].王珊.萨师煊.数据库系统概论(第四版).北京:高等教育出版.2006[4].郝玉龙.JavaEE编程技术.北京:清华大学出版社.2008[5].孙延鹏.吕晓鹏.Web程序设计.北京:人民邮电出版社.2008[6] Selman, Daniel .Java 3d Programming. Oreilly & Associates Inc.2005[7] 黎活明 .EJB3.0 入门经典. 清华大学出版社.2008[8] SUN公司的官方网站2总体设计2.1需求规定要求能准确、无误地查询、添加、修改、删除用户、菜单和订单信息,管理员信息;能够精确地进行业务数据汇总来支持决策;做到实时通信来保证业务数据的最新性。
并且有一定的数据恢复能力。
2.2运行环境运行环境:普通微型计算机内存:64MB以上的内存,推荐使用128MB以上内存处理器:奔腾P4或更高的处理器硬盘空间:需要至少20M硬盘安装空间服务器端:tomcat6.0.29系统平台:Windows XP或更高版本的操作系统计算机语言:Java,HQL语言,HTML软件:MySql,MyEclipse,Dreamweaver,Photoshop网络通信协议:TCP/IP开发工具:MyEclipse2.3基本设计概念和处理流程在进入本网上订餐系统之前,首先要进行用户账号和密码的输入,系统会自动根据账号和密码识别用户的身份是管理员还是普通的用户。
如果输入的信息有误,则不能进行登录;输入新的账号,则系统会提示当前登录者进行注册。
只有在全部条件都满足下的情况下,用户才能成功登录,进行各自的功能操作。
大概的系统工作流程如流程图2-1:图2-1 系统流程图2.4结构设计 2.4.1结构图2-2 系统功能图网上订餐系统系统管理个人管理用户注册用户登录找回密码修改资料客户订餐服务浏览菜品下订单确认付款菜品评价订单管理菜单管理用户管理留言管理后台数据库管理查看历史3数据库设计3.1概念结构设计图3-1 用户信息表图3-2 菜单信息表图3-3 订单信息表图3-4 留言信息表用户用户ID用户名密码角色真实姓名邮箱性别菜单菜品ID菜品单价菜品简介菜名菜品图片链接订单用户ID 订单ID下单时间数量付款状态菜单ID口味要求其他要求留言留言ID 用户ID留言标题留言内容留言时间图3-5 送货信息表图3-6 系统E-R 图3.2逻辑结构设计(1)用户信息表(用户ID ,用户名,用户密码,用户真实姓名,性别,角色,电子邮箱) (2)菜单信息表(菜品ID ,菜名,菜品简介,菜品单价)(3)订单信息表(订单ID ,用户ID ,菜品ID ,订购菜品数量,口味要求,其他要求,订单付款状态)(4)留言信息表(留言ID ,用户ID ,留言标题,留言内容,留言时间)(5)配送信息表(配送ID ,用户ID ,送货地址,客户电话,客户手机,备注,送货时间)3.3物理结构设计表3-1 t_user 表(用户信息表)管理员菜单普通用户 留言订单送货信息管理管理管理管理填写 管理发表生成送货信息配送ID 用户ID客户电话客户手机送货地址送货时间备注中文含义字段名称数据类型长度是否为空备注用户ID user_id integer 否主键用户名user_name string 30 否用户密码user_pass string 30 否用户真实姓名user_realname string 50性别user_sex string 30角色user_role string 4 否电子邮箱user_mail string 30表3-2 t_menu表(菜单表)中文含义字段名称数据类型长度是否为空备注菜品ID menu_id integer 否主键菜名menu_name string 50 否菜品简介menu_intro string 50 否菜品单价menu_price double 5 否表3-3 t_orders表(订单表)中文含义字段名称数据类型长度是否为空备注订单ID order_id integer 否主键用户ID user_id integer 否外键菜品ID menu_id integer 否外键订购菜品数量order_num integer 否口味要求order_taste string 50其他要求order_other string 100 否订单付款状态order_state string 4表3-4 t_message表(留言信息表)中文含义字段名称数据类型长度是否为空备注留言ID id integer 否主键用户ID user_id integer 否外键留言标题subject string 50 否留言内容content string 200留言时间msg_date string 50表5 t_userInfo表(配送信息表)中文含义字段名称数据类型长度是否为空备注配送ID id integer 否主键用户ID user_id integer 否外键送货地址address string 200 否客户电话tel string 15客户手机mobile string 11 否备注notice string 200送货时间send_date string 503.3安全保密设计在用户信息表中,通过用户角色user_role来标识其是否为管理员,1为普通用户,0为管理员。
在注册界面,通过隐藏表单域来隐式传递user_role属性值为“1”,防止普通用户注册为管理员。
在管理员管理用户功能中,不允许管理员删除自己的信息,否则会造成系统缺失管理员无法继续进行管理。
用户在浏览菜品信息的时候若选择加入购物车则验证用户登录状态,不允许未登录的用户订餐,防止订单表中出现空用户,不利于餐厅的管理。
4系统出错处理设计4.1出错信息表4-1 出错信息表出错信息形式含义处理方法找不到数据表报错数据库出现问题加载备份恢复数据表NullPointerException 报错空指针错误重新登陆4.2补救措施系统出现故障时,可以利用数据恢复和备份功能,快速,实现数据库的恢复,避免因意外事故,或者人为的误操作而导致的数据丢失。
:4.3. 系统维护设计说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查和维护的检测点和专用模块。
各个程序之间的对应关系,可采用如下的矩阵图的形式;5程序模块1设计说明5.1程序描述菜单管理,包括菜单的添加、删除、查询和修改。
5.2功能模块名输入处理输出菜单添加输入菜单信息,并上传图片调用MenuAction类里的addMenu方法成功向菜单表中添加一条菜单记录菜单删除选中某菜单单击删除调用MenuAction类里的deleteMenu方法成功从菜单表中删除一条菜单记录菜单查询选中某菜单单击查询调用MenuAction类里的menuSearch方法成功根据菜单编号从菜单表中查询信息菜单修改选中某菜单单击修改调用MenuAction类里的updateMenu方法成功更新菜单信息5.3测试计划(1)单击添加菜单按钮,输入菜单(双仁浮皮,16,川菜的一种家常菜肴,它的主要食材是浮皮、腰果、白果、红萝、青豆角、生姜。
主要食材含钙、磷、铁、钾等成分。
),提交后选择图片,单击上传,检查数据表t_menu里是否添加了一条记录,dishes-img文件夹里是否出现和这条记录相关的图片。
(2)单击某菜单后面的删除按钮,看是否能正常从数据库中删除信息,返回删除成功信息。
(3)单击某菜单后面的更新按钮,将跳转到更新菜单信息页面,输入信息后,看能否在数据库中正常更新这个菜单的信息。
(4)在美食天地页面单击某一菜单链接,看能否正常跳转到查看这个菜单详细信息的页面。
6程序模块2设计说明6.1程序描述订单管理,包括订单的查询、删除和审核。
6.2功能表6-1 订单管理设计说明模块名输入处理输出订单删除选中某订单单击删除调用OrderAction类里的deleteOrder方法成功从订单表中删除一条订单记录订单审核选中某订单单击确认结账调用OrderAction类里的submitOrder方法成功审核订单,能显示在已审核列表订单查询查看所有用户订单调用OrderAction类里的searchUserOrder方法成功根据订单编号从订单表中查询信息6.3测试计划(1)单击某订单后面的删除按钮,看是否能正常从数据库中删除信息,返回删除成功信息。
(2)单击某订单后面的审核按钮,看是否能正常修改该订单的审核状态,并能在已审核列表中出现。
(3)单击订单管理,会出现所有用户订单,单击显示未结账用户订单则显示所有未结账的订单供管理员进行审核,单击显示已结账订单按钮则显示所有状态为0的订单。
7程序模块3设计说明7.1程序描述留言管理,包括留言的添加、删除、查询。
7.2功能模块名输入处理输出留言添加输入留言信息,并上调用MessageAction类成功向留言表中添加传图片里的addMessage方法一条留言记录留言删除选中若干条留言单击删除调用MessageAction类里的deleteMessage方法成功从留言表中删除若干条留言记录管理员查询某留言信息单击某留言超链接调用MessageAction类里的showOneMessage方法成功根据留言编号从留言表中查询该留言的详细信息管理员查询所有留言查看所有留言调用MessageAction类里的messageUI方法成功查询到所有留言信息7.3测试计划(1)用户单击添加留言页面,输入主题“美食美客”,输入内容“美食美客,我们的好朋友!”,则成功向数据库中添加一条留言记录,在留言界面显示。