结账系统
1.引言
1.1.编写目的
此说明书在概要设计的基础上,对小二结账系统的各个模块、程序分别进行了实现层面上的要求和说明。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。在本阶段中,确定应该如何具体的实现所要求的系统,以便在编码阶段可以把这个描述直接翻译成用具体程序语言书写的程序。
主要工作包括:根据软件需求说明书所描述的数据、功能、运行、性能、需求,并依照概要设计说明书所确定的处理流程、总体设计、模块外部设计、设计软件系统的结构设计,逐个模块的程序描述。软件开发小组的产品实现成员应该阅读和参考此说明书,从而进行代码的编写、测试。
1.2.背景
开发的软件系统的名称:小二结账系统;
软件系统应用范围、用户:商家和用户。
随着社会经济的发展,移动端互联网规模急速增长,人们的生活习惯也发生了巨大的改变,网上点餐、查看订单,减少排队时间且不需要人员记忆价格,目前,很多餐饮行业都改进了销售模式,减少人员成本,用机器代替人工服务的时代已经到来。
高校餐厅支付效率低,但在饭点的时候人流量大,往往会看到很多排的长队,无小票,结账有可能出错。造成人员拥挤,导致很多学生选择外卖这一点餐方式。
1.3.术语
1)软件架构:软件系统的总体是辑结果。按照不同的设计方法,有不同的总体逻辑结构。采用面向功能或面向数据的设计方法,总体逻辑结构为一树形的功能模块结构图。采用面向对象或面向部件(构件)的设计方法,总体逻辑结构为部件(结构)的组装图。
2)数据结构:数据结构包括:数据库表的结构、其他数据结构等。
3)子系统:具有相对独立功能的小系统叫做子系统。一个大的软件系统可以划分为多个子系统,每个子系统可由多个模块或多个部件组成。
4)模块:具有功能独立、能被调用的信息单元叫做模块。模块是结构化设计中的概念。
5)内部接口:软件系统内部各子系统之间、各部件之间、各模块之间的接口,叫做内部接口。接口描述包括:调用方式、入口信息、出口信息等。
1.4.参考资料
1)数据库系统概论.嫔师鳩,高等教育出版社.2004 年第三版
2)软件工程.齐治昌、谭庆平、宁洪编着,高等教育出版社出版.1997 年 7 月第 1 版
3)管理信息系统,彭澎,机械工业出版社,2005 年 1 月第 1 版.第 3 次印刷
4)张孝祥. 深入 Java Web 开发内幕------核心基础[M]. 北京:电子工业出版社. 2006
5)刘京华. Java Web 整合开发王者归来[M]. 北京:清华大学出版社,2010
6)Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA: Prentice Hall,2006
2.程序系统结构
用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。
- 系统结构图
图 1 是 controller 的程序结构图,它表明了 controller 类中分别包含有 CustomerController、DishesController、FeedbackController、OrderController、FeedController、BusinessController 等等的类。

图 1 controller 结构图
图 2 是 Mapper 结构图,它包含了 CustomerMapper、DishesMapper、FeedbackMapper、OrderMapper、BusinessMapper 等等的类。

图 2 Mapper 结构图
图 3 是 service 的结构图,它包含了 CustomerService、DishesService、FeedbackService、OrderService、BusinessService 等等接口,以及上述接口的实现类 CustomerServiceImpl、DishesServiceImpl、FeedbackServiceImpl、OrderServiceImpl、BusinessServiceImpl 等等。

图 3 service 结构图
图 4 描述了数据库表所对应的所有实体类。

图 4 实体类结构图
- 模块结构图
图 5 是系统结构图,它描述了系统的结构,包含了用户模块、商家模块两部分。

图 5 系统结构图
图 6 描述了注册结构图,包含了用户注册的步骤以及可能出现的结果。

图 6 注册结构图
图 7 描述了登录结构图,包含了用户登录的步骤以及可能出现的结果。

图 7 登录结构图
图 8 描述了用户模块结构图,它体现了用户点餐记录的流程及过程。

图 8 用户模块结构图
3.功能模块设计说明
3.1 模块一
3.1.1 模块编号
DB_c01。
3.1.2 功能描述
调用数据库操作,展示菜品、添加菜品、修改菜品、删除菜品。
3.1.3 与本模块相关的代码表和表
说明与本模块相关的数据库代码表及表格。格式可如下:
表 1 模块 1 的相关表
|--------------|-------|----|----|-----------|
| 名称 | 中文注释 | 类型 | 作用 | |
| 代码表 | 表 | | | |
| DishesMapper | 数据库操作 | √ | | 调用数据库操作方法 |
| dishes | 菜品表 | | √ | 数据库表,保存菜品 |
作用指在本子系统中对该表的操作为:Select(查询)、Insert(添加)、Update(更新)、Delete(删除)。
3.1.4 输入信息
菜品编号 INT,菜品名称 VARCHAR(50),菜品价格 INT。
3.1.5 输出信息
成功输出结果:插入成功;失败输入结果:插入失败
3.1.6 算法
@Select()注解用于查询数据库表中的数据,可以按条件来进行查询;
@Insert()注解用于将指定对象插入到相应的数据库表中;
@Update()注解用于将菜品进行更新,更新同步到数据库表中;
@Delete()注解用于将菜品从数据库中进行删除;
3.1.7 处理流程
流程图如下:

图 10 功能模块 1 流程图
3.1.8 类设计
3.1.8.1 类图
菜品管理的类图包含 3 个类分别是菜品实体类、调用类、功能实现类。

图 11 模块 1 类图
3.1.8.2 类说明
1)Dishes 说明:
(1)、功能:存储菜品基本信息,包含菜品 ID,名称,价格等。
(2)、主要方法:public Dishes()方法
2)DishesMapper 说明:
(1)、功能:调用数据库实现对菜品的具体功能。
(2)、主要方法:selectALL()、add(Dishes dishes);updateDishes(Dishes dishes)等方法
3)DishesService 说明:
(1)、功能:服务层类,通过调用 mapper 类实现对数据库的操作。
(2)、主要方法:selectALL()、add(Dishes dishes);updateDishes(Dishes dishes)等方法
4)DishesController 说明:
(1)、功能:实现前后端数据交互,实现具体的菜品管理功能:增加菜品,删除菜品,查询菜品等。
(2)、主要方法:selectAll(Model model)等方法
3.1.9 应说明的问题与限制
打开网站时,需要注意左边共有五大功能分别是用户管理,菜品管理,评论管理,订单管理。这里只介绍菜品管理,当输入不符合数据类型的数据时会返回错误提示,并提示你重新输入,有重新购入和重新购入并上架等按钮,应该按提示输入数据,不容许输入不符合数据类型的数据。订单管理内容在 3.2 节。
3.1.10 界面设计与说明
界面的详细设计,本网站有明显的"结账系统后台"提示,由管理员进入登录界面登录后,左侧有五个选项,是由用户管理,菜品管理,评论管理,订单管理组成,每个组成部分点开分别都有相应的功能。界面干净整洁,内容清晰,操作非常方便易懂。
3.2 模块二
3.2.1 模块编号
DB_c02。
3.2.2 功能描述
调用数据库操作,订餐操作和显示订单操作。
3.2.3 与本模块相关的代码表和表
说明与本模块相关的数据库代码表及表格。格式可如下:
表 2 模块 2 的相关表
|-----------------------------|---------|----|----|-----------------------------|
| 名称 | 中文注释 | 类型 | 作用 | |
| 代码表 | 表 | | | |
| OrderMapper | 订单数据处理类 | √ | | 订单的添加及查询操作 |
| OrderServiceOrderController | 订单数据调用类 | √ | | 调用 OrderMapper 类的对应方法,实现松耦合 |
| Order | 订单数据库 | | √ | 存储订单信息 |
| Feedback | 反馈数据库 | | √ | 存储反馈数据 |
作用指在本子系统中对该表的操作为: Select(查询)、Insert(添加)等。
3.2.4 输入信息
菜品编号 INT,用户编号 INT,日期 DATE。
3.2.5 输出信息
成功输出结果:插入成功;失败输入结果:插入失败
3.2.6.算法
@Select()注解用于查询数据库表中的数据,可以按条件来进行查询;
@Insert()注解用于将指定对象及指定菜品,根据连接必须将数据库中存在的用户和菜品插入到相应的数据库表中;
3.2.7.处理流程
流程图如下:

图 12 功能模块 2 流程图
3.2.8 类设计
3.2.8.1 类图
订单管理的类图包含了 3 个类分别是订单实体类、调用类、功能实现类。

图 13 模块 2 类图
3.2.8.2 类说明
1)Orders 说明:
(1)、功能:存储订单基本信息,包含订单 ID,客户 ID,菜品 ID,等。
(2)、主要方法:public Orders()方法
2)OrdersMapper 说明:
(1)、功能:调用数据库实现对订单的具体功能。
(2)、主要方法:selectALL()、add(Orders orders);updateDishes(Orders orders)等方法
3)OrdersService 说明:
(1)、功能:服务层类,通过调用 mapper 类实现对数据库的操作。
(2)、主要方法:selectALL()、add(Orders orders);updateDishes(Orders orders)等方法
4)OrdersController 说明:
(1)、功能:实现前后端数据交互,实现具体的订单管理功能:添加订单,查询订单等。
(2)、主要方法:selectAll(Model model)等方法
3.2.9 应说明的问题与限制
需要注意对于商家管理员和顾客,都只能查看订单,顾客可以添加订单,但商家不可以。
3.2.10 界面设计与说明
界面的详细设计,本网站有明显的"结账系统后台"提示,由管理员进入登录界面登录后,左侧有五个选项,是由用户管理,菜品管理,评论管理,订单管理组成,每个组成部分点开分别都有相应的功能。界面干净整洁,内容清晰,操作非常方便易懂。
2.软件概述
2.1.功能
1)用户信息管理:注册,登录,注销
2)订单管理:添加/查看订单
3)用户反馈
4)商家对菜品管理:上架/下架,更改菜品,显示菜品列表
5)评论管理:回复用户评论
6)用户管理:删除用户
7)管理员管理:修改信息
2.2.性能
2.2.1.数据精准度
输入、输出及处理数据的精度:小数点后两位
2.2.2.时间特性
响应时间:3s
处理时间:3-10S
数据传输时间:3-10s
2.2.3.灵活性
在操作方式、运行环境需做某些变更时软件的适应能力强。
3.运行环境
3.1.硬件
1)客户端:
CPU 最低要求 1 GHz Pentium 4 处理器
推荐 1.7 GHz Pentium 4 处理器
内存 最低 RAM 要求512MB
推荐 1G 内存
硬盘 需要1GB以上的可用空间
驱动器 需要 CD-ROM 或 DVD-ROM 驱动器
显示 Super VGA (800x600) 或更高分辨率的显示器(颜色设置为32位真彩色)
鼠标 Microsoft 鼠标或兼容的指点设备外存储设备的容量、媒体
2)服务器端:
CPU 最低要求 600 兆赫 (MHz) Pentium III 处理器及以上
推荐 1 GHz Pentium 4 处理器
内存 最低 RAM 要求256MB
硬盘 需要 500 MB 以上的可用空间
驱动器 需要 CD-ROM 或 DVD-ROM 驱动器
显示 Super VGA (800x600) 或更高分辨率的显示器(颜色设置为32位真彩色)
鼠标 Microsoft 鼠标或兼容的指点设备
3.2.支持软件
-
操作系统名称及版本号:window7, window10,
-
语言编译系统或汇编系统的名称及版本号: IDEA 2019, IDEA 2020
-
数据库管理系统的名称及版本号: MySql .2019
-
其他必要的支持软件。
4.操作流程
根据系统特点,当操作规范、日常操作流程与业务流程以综述方式进行描述较适宜时,则在本章节进行描述;当需要在每个功能中具体描述操作规范、日常操作流程与业务流程时,则本章节可以进行剪裁,相关的内容直接在第5章节中描述。
4.1.操作规范
按下一章节说明步骤完成操作
4.2.日常操作流程
1.首页界面

2.管理员登录

3.用户登录

4.3.主要业务操作流程
1.管理员的主要业务
管理员主要完成五大功能模块,用户管理,商品管理,评论管理,订单管理,管理员管理。

管理员功能图
2.用户操作模块

5.使用说明
5.1.功能点名称:用户管理
5.1.1.功能介绍:查看,删除系统用户。
5.1.2.业务介绍
商家点击用户管理模块下用户列表。点击要删除的用户,确认删除,刷新页面。用户信息被删除。
5.1.3操作界面图示
1.点击用户信息列表

2.选择要删除的用户,点击删除

3.确认是否删除,点击确认

4.刷新界面

5.2.功能点名称:菜品管理
5.2.1.功能介绍:显示菜品列表,菜品上架/下架,修改菜品。
5.2.2.业务介绍
点击所需要查看的模块包括,显示菜品列表,菜品上架/下架,修改菜品。
5.2.3操作界面图示
1.点击商品管理模块下,菜品列表

2.显示菜品列表

3.点击添加菜品,输入菜品信息


4.选择删除的菜品,提示框点击确认或取消。


5.3.功能点名称:评论管理
5.3.1.功能介绍:显示用户的评论,并选择回复。
5.3.2.业务介绍
显示用户的评论,并选择回复
5.3.3操作界面图示
1.点击评论管理的评论列表

2.选择回复,在页面上输入回复内容



5.4.功能点名称:订单管理
5.4.1.功能介绍:显示用户订餐记录。
5.4.2.业务介绍
商家查看订单
5.4.3操作界面图示
1.点击订单管理模块的订单列表

2.显示订单记录

5.5.功能点名称:管理员管理
5.5.1.功能介绍:修改登录密码。
5.5.2.业务介绍
5.5.3操作界面图示
1.点击管理员管理的修改密码功能

2.修改新的密码

3.重新登录


5.6.功能点名称:用户信息
5.6.1.功能介绍:用户登录,注册,注销
5.6.2.业务介绍
在该模块下,未注册过的用户需要先去注册账号,然后选择登录,登陆后也可以选择注销用户信息。
5.6.3操作界面图示
1.用户注册
点击注册按钮,填写信息,提交后点击首页返回。



2.用户登录


5.6.4注意事项
用户注册输入信息注意:账号和其他输入项不能为空,否则不能注册。

-
登录时账号和密码不能为空

5.6.功能点名称:订单管理
5.6.1.功能介绍:添加订单,查看订单
5.6.2.业务介绍
用户登陆后在首页点击马上点餐,即可进入点餐页面,选择要点的餐品。
5.6.3操作界面图示
1.添加订单
首页中点击马上点餐,进去点餐,添加自己的订单




5.6.4注意事项
5.6.功能点名称:用户反馈
5.6.1.功能介绍:用户对商品进行评价。
5.6.2.业务介绍
该部分业务是用户对所选菜品进行评论
5.6.3操作界面图示



5.6.4注意事项
无