05 需求分析阶段
文章目录
一、主要工作
需求分析阶段
,对项目的需求进行获取、分析、系统建模、需求规约(验收标准)、验证,完成信息域表达、功能、行为、模型、讲述要做什么,(分析方法:结构化分析)最后形成需求规约说明书。此时进行功能需求等的测试用例设计。
二、主要步骤
- 需求获取途径,从各方面获取需求,包括文档、分析、交流等。
- 阐述具体需求(需求简述),针对每个需求进行简述。
- 完成数据流图(DFD)(输入、加工、输出)
- 完成数据字典(DD)(数据描述)
- 完成加工说明(PSPEC)(加工描述)
- 完成实体关系图(E-R)(可转化到数据库设计)
tips: 结构化分析方法概述
三、需求获取途径
-
访谈与调查
通过对用户的基本访谈与调查,对其基本的需求进行调研,基本情况见文档《02 食尚年华石锅土鲫鱼需求简单描述》。
-
观察用户操作流程
通过到店铺实地进行观察,总结用户操作流程,总结出店铺现有系统,通过系统流程图进行展现,基本情况见文档《03 项目分析阶段(一)》。
-
用况分析
针对简单需求确立的最终用户,对其进行侧写用况,分析其希望系统做什么,每件事什么时候会发生生么。进行分析。基本情况见文档《04 项目分析阶段(二)》。
四、需求简述
4.1 综合需求
根据多个需求获取方法,现将获取到的需求进行简单的描述。首先店铺对本次任务的预计资金是5000元以内,店铺需要在现有的单笔记本情况下能够运行系统,其希望能够支持至少50人同时使用系统,具有较好的安全性、界面美观简洁、使用文档或教学充足、能够对数据进行良好分析、具有较高可靠性、同时能够在本月完成开发。
4.2 功能需求
功能需求针对不同的最终用户有所不同。
-
顾客
能够顺利完成线上点单,可选择就餐信息进行预定,就餐期间能够对订单进行追加,记录修改情况,最后能够在系统选择优惠及结账,同时能拿到纸质的预结单。
-
服务员
能够对顾客的订单进行修改,但需要记录修改操作,最后服务员能够使用结账功能及选择优惠,系统自动计算金额以及打印预结单,客户完成结账后记录实收金额,完结订单。
-
老板
能够查看、修改店铺信息。管理员工信息、餐桌信息、订单信息、菜品信息、客户信息、优惠信息、评价信息、账单统计、营业额信息、库存信息、数据分析等后台管理功能。
-
厨师
能够接收到订单菜品及追加菜品,同时能够对库存进行管理。
五、数据流图(DFD)
5.1 顶层数据流图
将目标系统和外部项联系起来,对信息域内基本的信息通过系统完成功能。
本次的订餐系统主要从顾客、服务员、老板、厨师的角度出发,通过订餐系统实现信息化管理食尚年华石锅土鲫鱼餐饮店的经营活动。
5.2 系统0层数据流图
系统主要由五个子系统构成,由点菜系统给顾客提供点菜服务,通过结账系统联系顾客和服务员进行订单结账,点菜系统接收到订单后向库存系统调用消费原材料,管理系统用于老板管理系统的信息,包括菜品等,数据分析系统用于对信息进行归纳综合,给老板提供更好的经营方向。
5.3 1层点菜系统数据流图
点菜系统主要完成点菜功能,通过对订单信息进行不同处理,完成订单的完善与生成。
5.4 1层结账系统数据流图
结账系统首先检查订单是否处于申请结账状态,然后可以由服务员更改优惠信息,生成预结单,最后完善填充结账金额信息,完成结账后调整今日的账单。
5.5 1层库存系统数据流图
库存系统可以手工对今日的原材料、库存进行管理,同时也有通过订单自动管理及消耗金额的功能。
5.6 1层管理系统数据流图
管理系统是最基础的系统,需要手动操作输入名字等
5.7 1层数据分析系统数据流图
数据分析系统通过已完成的订单进行数据统计,通过顾客,菜品,盈利等方面反应经营情况。
六、数据字典(DD)
6.1 数据流条目
6.1.1 菜单数据流
名称:菜单数据流
简述:将现在系统所有的菜品作为菜单组合出来
组成:菜品+规格+价格+销量+描述+图片+分类
来源:菜品数据库文件
去向:点菜系统,客户
数据量:500次/天
峰值:每晚18:00到20:00处理200次
6.1.2 创建订单信息数据流
名称:创建订单信息数据流
简述:对客户创建的订单进行传递,记录订单信息
组成:客户id+餐桌id+{点菜单}
来源:客户点餐
去向:点菜系统
数据量:50次~100次/天
峰值:每晚18:00到19:00处理50次
6.1.3 加菜信息数据流
名称:加菜信息数据流
简述:客户创建订单后需要加菜
组成:订单id+{点菜单}
来源:客户加菜
去向:点菜系统
数据量:50次~100次/天
峰值:每晚18:00到19:00处理50次
6.1.4 点菜单数据流
名称:点菜单数据流
简述:所有点菜信息的集合
组成:{菜品id+数量+单价}
来源:客户点菜
去向:点菜系统
数据量:500~1000次/天
峰值:每晚18:00到20:00处理500次
6.1.5 调整订单信息数据流
名称:调整订单信息数据流
简述:服务员根据实际情况调整订单的情况
组成:订单id+{调整后的订单信息项}
来源:服务员调整
去向:点菜系统
数据量:500~1000次/天
峰值:每晚18:00到20:00处理500次
6.1.6 客户信息数据流
名称:客户信息数据流
简述:客户首次登陆在系统内注册客户
组成:客户昵称+电话号号码
来源:客户首次登录
去向:管理系统
数据量:根据客户注册情况
峰值:每天1000人/次
6.1.7 订单列表数据流
名称:订单列表数据流
简述:根据条件生成订单列表
组成:{订单}
来源:点菜系统
去向:客户、分析系统、管理系统
数据量:1000次/天
峰值:早上8:00到10:00处理1000次
6.1.8 评价信息数据流
名称:评级信息数据流
简述:客户完成就餐后进行的评价
组成:订单id+评分+评价
来源:客户
去向:管理系统+点菜系统
数据量:50~100次/天
峰值:每晚22:30到23:00处理80次
6.1.9 结账信息数据流
名称:结账信息数据流
简述:服务员记录客户的结账情况
组成:订单id+应收+实收+找零
来源:服务员
去向:结账系统
数据量:50~100次/天
峰值:每晚22:30到23:00处理80次
6.1.10 优惠信息数据流
名称:优惠信息数据流
简述:点菜系统自动计算,根据订单
组成:优惠名+优惠金额
来源:点菜系统
去向:结账系统
数据量:50~100次/天
峰值:每晚22:30到23:00处理80次
6.1.11 预结单数据流
名称:预结单数据流
简述:客户完成就餐准备结账对订单的总情信息
组成:点单id+桌号+就餐人数+{菜品信息}+菜品数量+合计金额+优惠信息+应收
来源:结账系统
去向:打印机给乘客看,服务员
数据量:50~100次/天
峰值:每晚22:30到23:00处理80次
6.1.12 菜品消耗数据流
名称:菜品消耗数据流
简述:根据订单菜品和菜品原料消耗关系产生
组成:{菜品id+菜品消耗量}
来源:点菜系统
去向:库存系统
数据量:500~1000次/天
峰值:每晚22:30到23:00处理800次
6.1.13 购买原材料数据流
名称:购买数据流
简述:每天自动补充原材料到标准量,以此计算一笔支出
组成:{账单id+菜品id+日期+数量+价格}
来源:库存系统
去向:分析系统
数据量:500~1000次/天
峰值:每晚02:00到02:10处理800次
6.1.14 原材料数据流
名称:原材料数据流
简述:原材料的信息
组成:{原材料名+单位+价格+现有数量+标准数量}
来源:老板/厨师
去向:库存系统、管理系统
数据量:50~100次/天
峰值:需要补充时老板使用时间
6.1.15 菜品材料消耗数据流
名称:菜品材料消耗数据流
简述:针对菜品和材料消耗对应关系
组成:{菜品id+原材料id+每份菜品消耗原材料数量}
来源:管理系统
去向:点菜系统、库存系统、管理系统
数据量:50~100次/天
峰值:添加菜品时需要使用
6.1.16 支出数据流数据流
名称:支出数据流
简述:对支出进行记录
组成:{支出名+支出数量+支出价格+支出时间}
来源:结账系统、老板
去向:分析系统
数据量:50~100次/天
峰值:每晚02:00到02:10处理80次
6.1.17 销量榜单数据流
名称:销量榜单数据流
简述:返回菜品销量最高5个菜品信息
组成:{菜品信息}
来源:订餐系统
去向:分析系统
数据量:50~100次/天
峰值:老板使用分析系统时
6.1.18 营收分析数据流
名称:营收分析数据流
简述:对近6月的盈利情况进行分析
组成:{月天数+收入总额+支出总额+订单数量+日均收入+利润}
来源:分析系统
去向:老板
数据量:50~100次/天
峰值:老板使用分析系统时
6.2 文件条目
6.2.1 评价信息
名称:评价数据库
简述:存储了所有的评价信息
组成:订单编号+{评价内容+评价分数}
写文件加工: 2.5 生成评价信息
读文件加工:4.3 评价管理
文件组织:无序
使用权限:顾客产生、老板全部权限
数据量:99999
存取频率:每笔订单完成后存,30条/天。管理时取,全部一次读出。
6.2.2 账单信息
名称:账单数据库
简述:存储每天的账单信息
组成:{账单编号+日期+总收入+总支出}
写文件加工:2.6 调整今日账单
读文件加工:5.6 按日期统计账单
文件组织:以日期从前到后存储
使用权限:每日数据分析系统自动计算、老板使用查看
数据量:99999
存取频率:每天自动计算存储,1条/天。数据分析时取,按条件取出。
6.2.3 客户信息
名称:客户信息数据库
简述:记录客户的信息
组成: {客户id+客户姓名+客户电话}
写文件加工:4 客户管理
读文件加工:1.1 生成订单
文件组织:随机存储
使用权限:点菜系统及数据分析及管理系统可以使用
数据量:99999
存取频率:新用户自动存入客户信息、点菜系统读入客户
6.2.4 客户订单信息
名称:客户订单数据库
简述:客户与订单关系
组成: {客户id+订单id}
写文件加工: 1.1 生成订单
读文件加工:1.6 生成个人订单列表 | 2.5 生成结账信息
文件组织:随机存储
使用权限:点菜系统及结账系统可以使用
数据量:99999
存取频率:创建订单自动生成、每次需要查看客户订单时使用
6.2.5 消费信息
名称:消费信息数据库
简述:对所有的支出项进行记录
组成: {支出名+支出数量+支出价格+支出时间}
写文件加工: 4.5 花费管理
读文件加工: 2.6 调整今日账单
文件组织: 随机存储
使用权限:结账系统、数据分析、管理系统直接使用
数据量:99999
存取频率:每天都自动生成菜品消费记录,同时老板可以主动添加其他项
6.2.6 优惠券信息
名称:优惠数据库
简述:记录所有优惠券情况
组成: {名字+优惠金额+开始时间+结束时间+备注信息}
写文件加工: 4.6 优惠券管理
读文件加工:2.4 生成优惠信息
文件组织:随机存储
使用权限:结账系统和管理系统使用
数据量:99999
存取频率:每次手动添加优惠券,结账时都需要取出来观看
6.2.7 折扣券信息
名称:折扣券数据库
简述:记录所有折扣券情况
组成: {名字+折扣比例+开始时间+结束时间+备注信息}
写文件加工: 4.6 优惠券管理
读文件加工:2.4 生成优惠信息
文件组织:随机存储
使用权限:结账系统和管理系统使用
数据量:99999
存取频率:每次手动添加折扣券,结账时都需要取出来观看
6.2.8 优惠券使用信息
名称:优惠券使用数据库
简述:订单使用优惠券情况记录
组成: {优惠券id+订单id}
写文件加工: 2.4 生成优惠信息
读文件加工:2.5 生成结账信息
文件组织:随机存储
使用权限:结账系统+管理系统
数据量:99999
存取频率:结账系统自行进行记录和查看
6.2.9 折扣券使用信息
名称:折扣券使用数据库
简述:订单使用折扣券情况记录
组成: {折扣券id+订单id}
写文件加工: 2.4 生成优惠信息
读文件加工:2.5 生成结账信息
文件组织:随机存储
使用权限:结账系统+管理系统
数据量:99999
存取频率:结账系统进行记录和查看,管理系统进行查看
6.2.10 菜品信息
名称:菜品信息数据库
简述:对所有的菜品进行记录
组成: {菜品id+菜品名+菜品描述+菜品图片+菜品销量+菜品价格+菜品分类}
写文件加工: 4.1 菜品管理
读文件加工:1.5 生成订单详情
文件组织: 随机存储
使用权限: 顾客、服务员等可查看,老板和厨师可以修改
数据量:99999
存取频率: 菜品更新时进行存入,大量需要获取菜单时读取
6.2.11 原材料信息
名称:原材料信息数据库
简述:对原材料信息进行记录
组成: {原材料id+原材料名+规格+单位价格+数量+标准数量}
写文件加工: 3.7 原材料管理
读文件加工:3.6 调整原材料关联 | 3.2 查找关联消耗
文件组织: 随机存储
使用权限: 库存系统+管理系统
数据量:99999
存取频率: 手动添加原原材料和关联,当需要计算消耗的时候读取
6.2.12 订单信息
名称:订单数据库
简述:记录了订单的基本情况
组成:{订单id+桌子id+账单id+修改时间+创建时间+结账状态+报废状态+备注+人数+结账时间+实收金额+应收金额+找零金额+优惠金额}
写文件加工: 1.1 生成订单 | 1.2 订单调整 | 2.2 申请结账 | 2.5 生成结账信息
读文件加工:1.5 生成订单详情 | 1.6 生成个人订单列表 | 2.1 检查订单 | 2.2 生成结账信息 | 3.1 提取订单菜品
文件组织: 随机存储
使用权限: 顾客可以查看自己的、老板看全部的、服务员看今天的
数据量:99999
存取频率:每日的日常订单中存取最为频繁
6.2.13 菜品原材料信息
名称:菜品原材料数据库
简述:记录菜品和消耗原材料的关系
组成: {菜品id+原材料id+单位菜品消耗原材料量}
写文件加工: 3.6 调整原材料关联
读文件加工: 3.2 查找关联消耗
文件组织: 随机
使用权限:由库存系统主要使用,管理系统进行调整
数据量:99999
存取频率:每日自动的计算菜品支出需要读取,添加关系时保存
6.2.14 订单菜品信息
名称:订单菜品数据库
简述:记录每笔订单所拥有的菜品
组成: {订单id+菜品id+数量+单价}
写文件加工: 1.1 生成订单
读文件加工:1.5 生成订单详细 | 3.1 提取订单菜品 | 4.1 菜品新增
文件组织: 随机存储
使用权限:点菜系统、库存系统、管理系统、分析系统都可使用
数据量:99999
存取频率:每日订单时便需要添加订单菜品,分析时也需要。
6.2.15 购买原材料信息
名称:购买原材料信息数据库
简述:每日自动将昨日用掉的原材料进行购买记录
组成: {购买id+账单id+材料id+购买时间+购买数量+购买价格}
写文件加工: 购买原材料
读文件加工:4.5 花费管理
文件组织:随机
使用权限:分析系统+老板
数据量:99999
存取频率:每日自动添加保存,在进行计算花费的时候读取
6.2.16 餐桌信息
名称:餐桌信息数据库
简述:对餐桌的数据进行记录
组成: {餐桌id+餐桌桌号+餐桌容量+餐桌包间+餐桌二维码+餐桌中午状态+餐桌晚上状态}
写文件加工: 4.3 餐桌管理
读文件加工:4.3 餐桌管理 | 1.1 生产订单
文件组织:随机存储
使用权限:点菜系统和管理系统使用
数据量:99999
存取频率:添加餐桌时进行存,顾客点餐系统需要读取显示
6.2.17 员工信息
名称:员工信息数据库
简述:对员工信息进行的查看
组成: {员工id+员工角色+账户+密码+名字}
写文件加工: 4.2 员工管理
读文件加工:4.2 员工管理
文件组织:随机存储
使用权限:在管理系统使用
数据量:99999
存取频率:员工修改时进行使用
6.3 数据项条目
6.3.1 分类数据项条目
名称:分类
简述:菜品的分类数据项
数据类型:字符串
取值范围:主菜、小菜、酒水饮料、小吃下酒菜、其他
编辑方式:选择
6.3.2 折扣比例数据项条目
名称:折扣比例
简述:折扣券的折扣比例,88折实际是价格*0.88
数据类型:浮点数
数值范围:[0,1]
编辑方式:填写
6.4 加工条目
6.4.1 生成结账信息加工
名称:生成结账信息
加工号:2.5
简述:根据订单菜品情况、优惠情况和收款情况生成预结单
输入数据流:结账信息、订单信息、优惠信息
输出数据流:预结单
加工逻辑:小说明7.1
异常处理:打印预结单出错、更换纸张
6.4.2 生成订单加工
名称:生成订单
加工号:1.1
简述:顾客选择餐桌和菜品后生成订单
输入数据流:顾客信息、餐桌信息、点餐信息
输出数据流:订单详情
加工逻辑:小说明7.2
异常处理:创建订单失败,人工处理
6.4.3 订单调整
名称:订单调整
加工号:1.2
简述:在原有订单的信息上进行修改,调整订单信息
输入数据流:待订单详情
输出数据流:调整后订单详情
加工逻辑:小说明7.3
异常处理:提示手动修改
6.4.4 生成个人订单列表
名称:生成个人订单列表
加工号:1.6
简述:根据客户id返回订单详情列表
输入数据流:客户信息
输出数据流:订单列表i哦
加工逻辑:输入客户id,查询所有订单,查询订单详情并返回为列表
异常处理:返回没有订单
6.4.5 订单详情
名称:生成订单详情
加工号:1.5
简述:根据订单查阅详情信息
输入数据流:订单号
输出数据流:订单数据+菜品信息+客户信息+餐桌信息
加工逻辑:小说明7.4
异常处理:返回空列表
6.4.6 生成优惠信息
名称:生成优惠信息
加工号:2.4
简述: 根据订单优惠券使用情况,分析其具体优惠金额
输入数据流:订单id
输出数据流:优惠信息、优惠金额
加工逻辑:小说明7.5
异常处理:返回无、0
6.4.7 调整今日账单
名称:调整今日账单
加工号:2.6
简述:服务员实收金额等信息后订单更改,今日账单增加收入
输入数据流:实收金额、找零金额、优惠金额
输出数据流:账单信息
加工逻辑:小说明7.6
异常处理:创建今日的账单
6.4.8 原材料消耗
名称:原材料消耗
加工号:3.3
简述:根据订单情况进行原材料消耗
输入数据流:菜品消耗
输出数据流:原材料消耗
加工逻辑:小说明7.7
6.4.9 原材料支出
名称:原材料支出
加工号:4.5 花费管理
简述:每天自动根据原材料消耗水平进行购买记录、创建支出
输入数据流:原材料信息
输出数据流:原材料购买信息、菜品购买支出项
加工逻辑:小说明7.8
6.4.10 定时记录账单
名称:定时记录账单
加工号:4.5
简述:每天早上凌晨两点根据花费进行计算账单,通知生成明日的新的订单
输入数据流:花费记录
输出数据流:账单信息
加工逻辑:小说明7.9
异常处理:记录值为空
6.5 源或宿条目
6.5.1 顾客
名称:顾客
简要描述:顾客作为订餐系统主要使用者,需要能完善的完成点餐流程,即是源又是宿
输入数据流:点菜单、顾客信息、创建订单信息、预定信息、评价信息
输出数据流:菜单、预结单、订单信息
6.5.2 前台
名称:前台
简要描述:前台作为订餐系统服务者,需要能够在结账流程进行功能
输入数据流:调整订单信息、结账信息
输出数据流:订单详细信息、预结单
6.5.2 厨师
名称:厨师
简要描述:厨师作为订餐系统工作者,需要能够对餐厅的工作进行日常管理,对菜品、原料及相应关系的调整
输入数据流:菜品信息、原料信息、菜品原料关系
输出数据流:订单信息
6.5.2 老板
名称:老板
简要描述:老板作为订餐系统最高权限,其他人拥有的功能都有,并且具有管理系统和分析系统
输入数据流:管理信息、员工信息、菜品信息
输出数据流:数据分析结果信息
七、加工说明(PSPEC)
7.1 生成预结单
根据订单id获取订单信息、创建时间、人数,查询餐桌信息、查询菜品信息、计算优惠信息、计算总价,最后创建小票,打印并返回preCheck信息。
7.2 生成订单
根据顾客id和餐桌id加上系列点餐信息,创建顾客和订单关系、订单信息、订单和菜品信息,生成订单的详细信息。
7.3 订单调整
根据现有的详细订单,对其进行更改,保存更改后的数据
7.4 生成订单详情
根据订单id进行查询、从客户订单关系查到客户、从订单中的餐桌id查到餐桌、从订单和菜品关系再查菜品信息生成菜品信息,最后组装成为订单详情。
7.5 生成优惠信息
根据订单信息查询订单优惠券关系、订单折扣券优惠,如果由优惠券信息直接将优惠券金额作为优惠信息,没有则将折扣券信息获取,计算菜品也就是(主菜、小菜、下酒菜)的总额、使用折扣的计算方法计算出来优惠金额。总额*(1-0.88)为优惠金额。
7.6 调整今日账单
每当有完成结账,将实收加入到今日账单的金额。
7.7 原材料消耗
每天的凌晨两点进行统计,原材料进行一一购买记录并补充至标准数据
7.8 原材料支出
每天凌晨两点计算,将几日所花费进行加法,作为账单的支出
7.9 定时记录账单
每天凌晨3点自动创建新订单
八、实体关系图(E-R)
根据以上分析,生成实体关系如下:
九、更多(重要!!!)
注:以上全是乱写