基于 Vue 与 Spring Boot 的在线点餐系统
需求分析
1 需求概述
1.1 文档目的
本文档描述了在线点餐系统系统的用户需求。
1.2 读者对象
本文档的读者范围包括:
1.需求分析人员
2.设计人员
3.开发人员
4.项目管理人员
5.测试人员
1.3 参考文档
[1]《UML 基础与 Rose 建模实用教程》,谢星星,清华大学出版社。
[2]《软件工程与计算(卷二)软件开发的技术基础》,骆斌,机械工业出版社。
1.4 原始功能需求
系统分为管理员、客户两种角色。
管理员功能:登录账号、客户管理(对客户信息进行增删改查)、菜单管理(对菜单进行增删改查)、处理订单(对订单进行增删改查)、统计报表。
客户功能:注册账号、登录账号、查看菜单、点餐、查看订单。
1.5 非功能性需求
1.5.1 精度
本系统涉及到的数据,在显示处理时保留小数点后 2 位。
1.5.2 时间特性
(1)响应时间
操作的执行实际应该控制在 5 秒之内。
(2)更新处理时间
在网络没有故障的情况下,对数据库的操作响应时间控制在 1 秒/条之内。
(3)运行时间
程序启动和初始化时间控制在 5 秒之内。
1.5.3 安全性
系统安全性要求高,能有效控制和管理不同的用户的权限,保护数据的安全性。
1.5.4 稳定性
系统稳定性要求高,能够承载大量用户的并发访问
2 用例模型
2.1 用例列表
系统用例如表 2-1 所示。
表 2-1 系统用例列表
参与者 | 用例 | 用例简介 |
---|---|---|
管理员 | UC01 登录管理员账号用例 | 管理员登录该系统 |
管理员 | UC02 增加客户信息 | 管理员向该系统中添加客户信息 |
管理员 | UC03 删除客户信息 | 管理员在该系统中删除客户信息 |
管理员 | UC04 修改客户信息 | 管理员在该系统中修改客户信息 |
管理员 | UC05 查询用户信息 | 管理员在该系统中查询客户信息 |
管理员 | UC06 增加菜单信息 | 管理员向该系统中增加菜单信息 |
管理员 | UC07 删除菜单信息 | 管理员删除菜单信息 |
管理员 | UC08 修改菜单信息 | 管理员向系统修改菜单信息 |
管理员 | UC09 查询菜单信息 | 管理员查询菜单信息 |
管理员 | UC10 增加订单信息 | 管理员向系统中增加订单信息 |
管理员 | UC11 删除订单信息 | 管理员删除订单信息 |
管理员 | UC12 修改订单信息 | 管理员修改订单信息 |
管理员 | UC13 查询订单信息 | 管理员根据订单号查询订单的详细信息 |
管理员 | UC14 统计报表 | 管理员可以对订单总数进行统计 |
客户 | UC15 注册账号 | 客户注册该在线点餐系统的账号 |
客户 | UC16 登录账号 | 客户登录该在线点餐系统的账号 |
客户 | UC17 查看菜单 | 客户查看所有的菜单 |
客户 | UC18 点餐 | 客户选择菜品,进行付款点餐 |
客户 | UC19 查看订单 | 客户点餐完成后可查看订单的状态 |
2.2 用例图
系统的用例图如图 2-1 所示。
图 2-1 系统用例图
2.3 用例规格说明(用例描述)
2.3.1 UC01 用例
项目 | 内容描述 |
---|---|
ID | UC01 |
名称 | 登录管理员账号 |
参与者 | 管理员 |
触发条件 | 管理员进入管理员登录界面 |
前置条件 | 管理员需要进行管理员操作 |
后置条件 | 管理员登录成功并且进入管理员界面 |
正常流程 | 1. 管理员进入登录界面用例开始 2. 管理员输入用户名 3. 管理员输入密码 4. 管理员输入验证码 5. 管理员点击登录,显示登录成功,跳转到管理员界面 6. 用例结束 |
扩展流程 | 5a.若管理员输入的验证码有误,则重新输入,跳转到 45a.若管理员输入密码或用户名有误,则输出“账号或密码有误”,返回到 3 |
特殊需求 | 验证码为 4 位随机字母。密码为数字,字母或下划线,6-16 位。用户名为纯数字。 |
2.3.2 UC02 用例
项目 | 内容描述 |
---|---|
ID | UC02 |
名称 | 增加客户信息 |
参与者 | 管理员 |
触发条件 | 管理员想添加客户的信息 |
前置条件 | 有新客户注册并加入 |
后置条件 | 管理员添加成功客户信息 |
正常流程 | 1. 管理员点击添加客户信息页面。用例开始 2. 管理员在用户信息添加界面填写信息。3. 管理员点击添加按钮。4. 提示“添加成功”,用例结束。 |
扩展流程 | 3a.若数据库中已有该条信息,则提示“该客户已存在”,返回 23a.若输入的数据非法,则提示“数据非法”,返回 2. |
特殊需求 |
2.3.3 UC03 用例
项目 | 内容描述 |
---|---|
ID | UC03 |
名称 | 删除客户信息 |
参与者 | 管理员 |
触发条件 | 管理员进入删除客户信息页面 |
前置条件 | 客户退出,拉黑或注销 |
后置条件 | 成功删除客户信息 |
正常流程 | 1. 管理员进入删除客户信息界面,用例开始。2. 管理员点击删除按钮。3. 界面提示“是否确定删除”。4. 管理员点击“是”,则提示删除成功。否则返回 1。5. 用例结束。 |
扩展流程 | 4.若该客户已被删除,则提示“不存在该客户信息”。 |
特殊需求 |
2.3.4 UC04 用例
项目 | 内容描述 |
---|---|
ID | UC04 |
名称 | 修改客户信息 |
参与者 | 管理员 |
触发条件 | 管理员想修改客户信息。 |
前置条件 | 客户的信息发生变化。 |
后置条件 | 客户信息修改成功。 |
正常流程 | 1. 管理员进入修改界面,用例开始。2. 管理员填写需要修改的客户信息。3. 管理员点击修改按钮。4. 系统提示“修改成功”。5. 用例结束。 |
扩展流程 | 2a.管理员无法修改客户编号。 |
特殊需求 |
2.3.5 UC05 用例
项目 | 内容描述 |
---|---|
ID | UC05 |
名称 | 查询客户信息 |
参与者 | 管理员 |
触发条件 | 管理员进入查询页面 |
前置条件 | 管理员需要查询某个客户的消费记录或其他基本信息 |
后置条件 | 管理员查询成功客户的信息 |
正常流程 | 1. 管理员进入查询客户信息界面,用例开始。2. 管理员填写查询条件,点击查询。3. 界面返回符合要求的客户信息。4. 用例结束 |
扩展流程 | 2a.若输入的信息非法,则提示查询条件非法。 |
特殊需求 |
2.3.6 UC06 用例
项目 | 内容描述 |
---|---|
ID | UC06 |
名称 | 增加菜单信息 |
参与者 | 管理员 |
触发条件 | 管理员点击增加菜单信息 |
前置条件 | 饭店有了新的菜品。 |
后置条件 | 管理员增加菜单信息 |
正常流程 | 1. 管理员店家增加菜单信息,用例开始。2. 管理员补充新增的菜品名称,价格和图片。3. 系统审核无误后,提示添加成功。4. 用例结束。 |
扩展流程 | 2a.若菜品名称重复,则提示 “菜名重复”。2a.若价格非法,则提示“价格非法”。 |
特殊需求 |
2.3.7 UC07 用例
项目 | 内容描述 |
---|---|
ID | UC07 |
名称 | 删除菜单信息 |
参与者 | 管理员 |
触发条件 | 当管理员点击“删除菜单信息”时,用例开始。 |
前置条件 | 当菜品原料、调料缺少时,需要将菜单中菜品信息删除。 |
后置条件 | 管理员成功删除菜单信息,系统保存菜单信息。 |
正常流程 | 1)管理员查看“菜单信息”界面,用例开始。2)系统以列表的形式显示菜单信息。3)管理员单击某一菜单信息,系统显示该菜单的详细信息。4)管理员点击“删除”,系统提示此条记录将永久删除,请确认。5)管理员点击“确认”,系统显示“删除菜单信息成功”,用例结束。 |
扩展流程 | 5a)管理员点击“取消”,则删除失败。 |
特殊需求 |
2.3.8 UC08 用例
项目 | 内容描述 |
---|---|
ID | UC08 |
名称 | 修改菜单信息 |
参与者 | 管理员 |
触发条件 | 当管理员点击“修改菜单信息”时,用例开始。 |
前置条件 | 当菜单信息需要修改更换时。 |
后置条件 | 管理员成功修改菜单信息,系统保存菜单信息。 |
正常流程 | 1)管理员点击“修改菜单信息”按钮时,用例开始。2)系统显示管理员的菜单信息。3)管理员对所要修改的信息进行编辑,修改完成点击保存。4)若数据合法,系统保存修改。5)系统保存修改后显示保存成功,用例结束。 |
扩展流程 | 4a)若数据不合法,系统显示“修改的数据不合法,请重新修改”。 |
特殊需求 |
2.3.9 UC09 用例
项目 | 内容描述 |
---|---|
ID | UC09 |
名称 | 查询菜单信息 |
参与者 | 管理员 |
触发条件 | 当管理员点击“查询菜单信息”时,用例开始。 |
前置条件 | 管理员登录进在线点餐系统。 |
后置条件 | 系统以列表形式列出菜单信息。 |
正常流程 | 1)当管理员点击“菜单信息”时,用例开始。2)管理员输入查询条件点击查询按钮。3)系统以列表的形式显示菜单信息。4)管理员选择目标菜单信息,并查看详细的信息。5)用例结束。 |
扩展流程 | 2a)若查询不到符合条件的菜单信息,系统显示“未找到相关的记录”。4a)管理员不查看菜单详细信息,用例结束。 |
特殊需求 |
2.3.10 UC10 用例
项目 | 内容描述 |
---|---|
ID | UC10 |
名称 | 增加订单信息 |
参与者 | 管理员 |
触发条件 | 当管理员点击“增加订单信息”时,用例开始。 |
前置条件 | 管理员登录成功,并进入订单信息界面。 |
后置条件 | 管理员成功增加订单信息,系统保存订单信息。 |
正常流程 | 1)管理员点击“增加订单信息”按钮,用例开始。2)系统显示增加订单信息界面。3)管理员输入订单创建时间(不为空)、订单金额(不为空)、订单状态(不为空)、菜品(不为空)、手机(不为空)、地址(不为空)、备注、以及系统分配的订单编号,并点击保存按钮。4)若输入数据合法,则系统成功添加订单信息。5)系统显示订单信息后,用例结束。 |
扩展流程 | 3a)若管理员返回,则没有添加订单信息。4a)若输入数据不合法,则添加失败。 |
特殊需求 |
2.3.11 UC11 用例
项目 | 内容描述 |
---|---|
ID | UC11 |
名称 | 删除订单信息 |
参与者 | 管理员 |
触发条件 | 当管理员点击“删除订单信息”时,用例开始。 |
前置条件 | 用户退餐或其他原因需要删除订单信息时。 |
后置条件 | 管理员成功删除订单信息,系统保存订单信息。 |
正常流程 | 1)管理员查看“订单信息”界面,用例开始。2)系统以列表的形式显示订单信息。3)管理员单击某一订单信息,系统显示该订单的详细信息。4)管理员点击“删除”,系统提示此条记录将永久删除,请确认。5)管理员点击“确认”,系统显示“删除订单信息成功”,用例结束。 |
扩展流程 | 5a)管理员点击“取消”,则删除失败。 |
特殊需求 |
2.3.12 UC12 用例
项目 | 内容描述 |
---|---|
ID | UC12 |
名称 | 修改订单信息 |
参与者 | 管理员 |
触发条件 | 当管理员点击“修改订单信息”时,用例开始。 |
前置条件 | 管理员登录成功,并进入订单信息界面。 |
后置条件 | 管理员成功修改订单信息,系统保存订单信息。 |
正常流程 | 1)管理员点击“修改订单信息”按钮时,用例开始。2)系统显示订单的详细信息。3)管理员对所要修改的信息进行编辑,修改完成点击保存。4)若数据合法,系统保存修改。5)系统保存修改后显示保存成功,用例结束。 |
扩展流程 | 4a)若数据不合法,系统显示“修改的数据不合法,请重新修改”。 |
特殊需求 |
2.3.13 UC13 用例
项目 | 内容描述 |
---|---|
ID | UC13 |
名称 | 查询订单信息 |
参与者 | 管理员 |
触发条件 | 管理员需要查询订单的信息 |
前置条件 | 管理员打开订单查询页面 |
后置条件 | 管理员获取到订单的具体信息 |
正常流程 | 1. 管理员打开订单查询界面 2. 管理员输入订单号,点击查询 3. 系统接收该订单号,返回相应的结果 4. a.该订单号存在,显示该订单的具体信息 b.该订单号不存在,提示订单不存在 |
扩展流程 | 无 |
特殊需求 | 无 |
2.3.14 UC14 用例
项目 | 内容描述 |
---|---|
ID | UC14 |
名称 | 统计报表 |
参与者 | 管理员 |
触发条件 | 管理员需要统计所有订单内包含的信息,获取餐厅的营业额等信息 |
前置条件 | 管理员进入统计报表界面 |
后置条件 | 管理员获取统计的信息 |
正常流程 | 1. 管理员进入统计界面 2. 管理员选择需要统计的起止日期,点击统计 3. 系统接收该日期,返回统计的结果 4. 管理员可以对该结果进行查看,并进行导出 |
扩展流程 | 5. 点击导出按钮后,管理员选择报表要导出的位置 |
特殊需求 | 无 |
2.3.15 UC15 用例
项目 | 内容描述 |
---|---|
ID | UC15 |
名称 | 注册账号 |
参与者 | 客户 |
触发条件 | 客户需要使用在线点餐系统 |
前置条件 | 客户点击注册按钮 |
后置条件 | 客户注册成功 |
正常流程 | 1. 客户点击注册按钮,进入到注册界面 2. 客户输入用户名和密码 3. 系统接收用户名和密码,判断是否合法 4. a.用户名和密码合法,系统为客户自动分配一个 id,保存该客户的信息到数据库 b.用户名或密码不合法,系统拒绝该注册请求 5. 系统返回相应的结果,提示用户是否注册成功 |
扩展流程 | 无 |
特殊需求 | 1. 用户名需要大于 3 个长度并且小于 8 个长度 2. 系统为客户分配的 id 唯一 3. 密码需要大于 8 位并且小于 12 位 |
2.3.16 UC16 用例
项目 | 内容描述 |
---|---|
ID | UC16 |
名称 | 登录账号 |
参与者 | 客户 |
触发条件 | 客户需要使用在线订餐系统 |
前置条件 | 客户已经有该系统的账户和密码 |
后置条件 | 客户登录成功 |
正常流程 | 1. 客户点击登录按钮,进入登录界面 2. 客户输入 id 和密码 3. 系统获取到输入的 id 和密码,判断 id 和密码是否匹配 4. a.输入合法,进入客户主界面 b.输入不合法,系统提示登录失败,回到登录界面 |
扩展流程 | 无 |
特殊需求 | 无 |
2.3.17 UC17 用例
项目 | 内容描述 |
---|---|
ID | UC17 |
名称 | 查看菜单 |
参与者 | 客户 |
触发条件 | 客户需要查看所有的菜品,进行点餐 |
前置条件 | 客户已经登录到系统内 |
后置条件 | 客户能查看每一个菜品的信息 |
正常流程 | 1. 客户进入菜单界面 2. 点击某个菜品,跳转到该菜品的详细信息 |
扩展流程 | 3. 在菜品详细信息界面,可以将这道菜加入到购物车,在最后进行结算 |
特殊需求 | 无 |
2.3.18 UC18 用例
项目 | 内容描述 |
---|---|
ID | UC18 |
名称 | 点餐 |
参与者 | 客户 |
触发条件 | 客户需要点餐,进行结算 |
前置条件 | 客户进入购物车界面 |
后置条件 | 客户点餐成功 |
正常流程 | 1. 客户选择好了自己需要的菜品 2. 客户进入购物车界面,点击进行结算 3. 系统计算出菜品的总价,客户点击付款按钮 4. 系统判断支付是否成功,对客户进行提示 |
扩展流程 | 5. a.支付成功,系统自动生成订单,订单编号唯一 b.支付失败,系统提示客户支付失败,回到购物车界面 |
特殊需求 | 无 |
2.3.19 UC19 用例
项目 | 内容描述 |
---|---|
ID | UC19 |
名称 | 查看订单 |
参与者 | 客户 |
触发条件 | 客户需要查看自己已经下单的订单信息 |
前置条件 | 客户已经在在线点餐系统内下单 |
后置条件 | 客户看到订单的详细信息 |
正常流程 | 1. 客户进入到订单界面 2. 客户选择自己要查看的订单 3. 系统根据订单编号,获取该订单的所有信息,返回到界面中进行显示 |
扩展流程 | 无 |
特殊需求 | 无 |
设计
1 文档目的
本文档的目的是描述在线点餐系统项目的详细设计,其主要内容包括:
系统功能简介
系统详细设计简述
在 SSH 框架下各个模块的分层结构
2. 数据设计
2.1 数据库表设计
本系统共建立 5 个表来存储数据,分别是管理员信息、客户信息表、菜品信息表、订单信息表、菜品与订单关系信息表。表的结构介绍如下。
1.管理员信息表(admin)
管理员信息表用于存储管理员信息。
表 2-1 admin 表
字段名称 | 字段描述 | 数据类型 | 长度 |
---|---|---|---|
admin_id | 管理员编号 | varchar | 20 |
admin_psw | 管理员账号密码 | varchar | 20 |
2.客户信息表(user)
客户信息表用于存储客户信息。
表 2-2 user 表
字段名称 | 字段描述 | 数据类型 | 长度 |
---|---|---|---|
user_id | 客户编号 | varchar | 20 |
user_name | 客户账号昵称 | varchar | 20 |
user_psw | 客户账号密码 | varchar | 20 |
phone | 客户联系方式 | varchar | 11 |
3.菜品信息表(food)
菜品信息表用于存储菜品信息。
表 2-3 food 表
字段名称 | 字段描述 | 数据类型 | 长度 |
---|---|---|---|
food_id | 菜品编号 | varchar | 20 |
food_name | 菜品名称 | varchar | 20 |
food_price | 菜品单价 | float | 1000 |
food_type | 菜品类型 | varchar | 10 |
food_msg | 菜品备注 | varchar | 100 |
food_pic | 菜品图片 | varchar | 100 |
4.订单信息表(order)
订单信息表用于存储订单信息。
表 2-4 表
字段名称 | 字段描述 | 数据类型 | 长度 |
---|---|---|---|
order_id | 订单编号 | varchar | 20 |
user_id | 客户编号 | varchar | 20 |
order_time | 订单创建时间 | datetime | 20 |
order_money | 订单总金额 | float | 1000 |
order_state | 订单状态 | varchar | 10 |
5.菜品与订单关系信息表(order_food)
菜品与订单关系信息表用于存储每个订单具体的菜品信息。
表 2-5 表
字段名称 | 字段描述 | 数据类型 | 长度 |
---|---|---|---|
id | 关系信息表 id | varchar | 20 |
order_id | 订单编号 | varchar | 20 |
food_id | 菜品编号 | varchar | 20 |
2.2 数据库逻辑结构设计
数据库表的逻辑结构关系如图 5-1 所示。
图 2-1 数据库逻辑结构图
3. 业务逻辑详细设计
3.1 BUC01 管理员登录用例设计
3.3.1 类的设计
图 3-1 类的设计
3.3.2 业务逻辑动态模型
图 3-2 管理员登录的顺序图
3.2 BUC02 客户信息管理用例设计
3.2.1 类的设计
图 3-3 类的设计
3.2.2 业务逻辑动态模型
图 3-4 客户信息管理的顺序图
3.3 BUC03 菜单信息用例设计
3.3.1 类的设计
图 3-5 类的设计
3.3.2 业务逻辑动态模型
图 3-6 菜单信息的顺序图
3.4 BUC04 订单信息用例设计
3.4.1 类的设计
图 3-7 类的设计
3.4.2 业务逻辑动态模型
图 3-8 订单信息的顺序图
3.5 BUC05 用户登录注册用例设计
3.5.1 类的设计
图 3-9 类的设计
3.5.2 业务逻辑动态模型
图 3-10 用户登录注册的顺序图
3.6 BUC06 点餐用例设计
3.6.1 类的设计
图 3-11 类的设计
3.6.2 业务逻辑动态模型
图 3-12 点餐的顺序图
4. 用户界面原型设计
4.1 系统主界面原型
图 4-1 系统主界面原型
4.2 BUC01 管理员登录界面原型
图 4-2 管理员登录界面原型
4.3 BUC02 客户信息管理用例界面原型
图 4-3 管理员登录界面原型
4.4 BUC03 菜单信息用例界面原型
图 4-4 菜单信息界面原型
4.5 BUC04 订单信息用例界面原型
图 4-5 订单信息界面原型
4.6 BUC05 用户登录注册用例界面原型
图 4-6 用户登录注册界面原型
4.7 BUC06 点餐用例界面原型
图 4-7 点餐界面原型
软件测试
1 引言
1.1 编写目的
为了发现该在线点餐系统在运行时发生的错误,用户在使用时确保基本功能准确无误,扩展功能有待开发。在测试中发现的错误需要记录下来,尽量在以后做到不再犯。
1.2 背景
说明:
a. 被测试软件系统的名称:在线点餐系统;开发背景与目的为方便用户,可以在手机端更加快捷地点餐,同时也节约了现实中商家等待客人点餐的时间和人力;
b. 该软件的任务提出者、开发者、用户,指出测试环境与实际运行环境之间可能存在的差异以及这些差异对测试结果的影响。
3 测试结果
3.1 用户登录界面
用户登录界面测试
测试结果:与预期相同
发现:无
3.2 增加商品信息界面
增加商品信息界面测试
测试结果:与预期相同
发现:无
3.3 修改订单信息界面
修改订单信息界面测试
测试结果:与预期相同
发现:无
参考文献
- 基于微服务的在线教育系统的设计与实现(华中科技大学·毛颖志)
- 基于微服务的在线教育系统的设计与实现(华中科技大学·毛颖志)
- 基于微服务的在线教育系统的设计与实现(华中科技大学·毛颖志)
- 基于微服务的在线教育系统的设计与实现(华中科技大学·毛颖志)
- 基于Spring Boot的智能推荐点餐系统研究与设计(南昌大学·李有三)
- 基于Android平台的订餐系统的设计与实现(西安电子科技大学·赵玉兰)
- 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊)
- 基于JSP的网上订餐系统的设计与实现(厦门大学·谷岳青)
- 基于Spring Boot的智能推荐点餐系统研究与设计(南昌大学·李有三)
- 基于微服务的在线教育系统的设计与实现(华中科技大学·毛颖志)
- 天润酒店配餐管理系统设计与实现(电子科技大学·陈泓舟)
- 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊)
- 基于MVC模式学校在线餐厅系统的设计与实现(华中科技大学·王亮亮)
- 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊)
- 基于安卓平台的平板点餐系统的设计与实现(大连理工大学·郝冰)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码客栈 ,原文地址:https://bishedaima.com/yuanma/35701.html