软件需求规格说明书
1、引言
1.1、目的
本文档将描述项目的各项功能需求、性能需求,阐述项目背景及范围等总体结构和功能结构,便于项目团队成员更好地了解项目情况, 使项目工作开展的各个过程合理有序,也便于用户与开发成员进行沟通交流。
1.2、背景
随着社会经济快速发展,人们的消费水平有了普遍的提高,在吃食上有了更多可选的追求,然而在外吃饭时会经常性的发生“”排队点餐”的问题, 消费者的时间大量用于排队等待点餐的情况,同时在点餐过程中还可能会出现服务员无法及时实现消费者的下单需求。我们的点餐系统就是采用 微信小程序作为承载体,提供快捷方便的应用致力于为消费者解决排队点餐的问题,还加入了多人点餐的功能,提高了点餐的效率。
1.3、 定义
文档中采用的专门术语的定义及缩略词简要如下: tiny hippo 用户点餐系统
1.4、参考资料
[1] GB856T——88,软件设计文档国家标准—软件需求说明书
2、任务概述
2.1、目标
开发基于微信小程序的应用程序,打造一款广泛推广的手机点餐微信小程序,并提供基于web的商家管理系统助力实现线下实体餐厅的智慧化。
我们期望打造出的产品有如下特性:
- 菜谱多分类、多图多彩,点餐功能简单明了
- 通过微信点餐系统后台自由配置菜单信息,随时更换菜单
- 同一桌的顾客可以实现多方点餐且购物车同步实时更新
- 后台可统计顾客点菜数据及管理顾客信息,便于实现推广
- 顾客可以在小程序内连续下单,账单累计
2.2、功能需求
2.2.1、用例图
2.2.2、活动图
-
顾客支付
顾客点完餐后,进入订单界面,点击支付,系统提示是否确认提交订单,顾客点击确定后,系统提示选择支付方式,顾客选择微信支付并成功支付,订单状态自动更新为已支付,购物车被清空。
- 顾客点击支付后发现要修改订单,点击取消支付返回订单页面。
- 顾客选择支付方式为现金支付,到前台要求现金或银行卡支付或支付宝支付,前台服务员提供合适的收款方式收到付款后手动更新订单状态为已支付。
- 如果系统检测到与支付平台通信失败,顾客无法支付,跳转回订单页面顾客重新选择支付。
活动图:
-
顾客提交订单
桌上每位顾客点餐完毕后,询问大家是否点完餐了,点击提交订单,确认并提交订单,订单页面上显示已提交。
- 顾客需要加菜,在主菜单界面添加菜品后,返回订单页面,发现已提交状态变为提交订单,并留意到tips写着不会重复下单,顾客确认新订单后提交新订单,订单状态重新变为已提交。
- 顾客提交订单后,选择支付订单。
活动图:
2.2.3、领域模型
2.2.4、状态模型
2.2.5、功能模型
-
浏览菜单
用户进入主菜单页面浏览菜单
-
今日推荐
用户可以浏览今日推荐的内容
-
获取菜品详细信息
用户获取某个菜品的详细信息
-
支付订单
用户点击微信支付支付订单
-
搜索菜品
用户输入菜品关键字查看相关菜品信息
-
更新菜单
商家输入验证信息和更新内容对菜单进行更新
2.3、用户特点
本点餐系统的最终用户为熟悉微信客户端及微信小程序操作的用户,熟悉扫码、下单、移动端支付等操作;
商家管理系统的最终用户为了解电脑操作的商家用户,只需了解如何使用鼠标以及键盘。
2.4、假定与约束
进行本系统开发的约束条件如下:
- 时间约束:本系统开发周期为3个月,产品经理需要合理规划时间,前后端开发人员需要跟上布置的任务。
- 实现约束:
- 客户端:选择使用微信小程序,一种基于微信的服务形式,比起Web应用更加接近原生态,而且用户省去安装App的时间,提高用户体验;小程序开发使用WePY框架,能够组件化、单文件开发。
- 商家端:选择使用Web端,商家对产品的功能完整性有较高的需求;基于开发难度和社区活力的考虑,Web框架使用Vue进行SPA应用开发。
- 后端框架:基于技术和业务层面的考虑,选择Node.js作为编程语言,Koa作为Web框架。
- 法律和政策约束:
- 商家在菜单展示的商品信息必须属实,并对于消费者提出的有权知悉的情况的问题,应予以告知,不可以隐瞒欺骗,本平台要求商家上交经营许可证之类的证明也是为了保护消费者的知悉真实情况权益
消费者拥有“知悉真实情况权” 即消费者所享有的知悉其购买、使用的商品的过程中或者接受的服务的真实情况的权利。消费者有权知悉的情况具体包括商品的价格、产地、生产者、用途、性能、规格、等级、主要成份、生产日期、有效期限、检验合格证明、使用方法说明书、售后服务,或者服务的内容、规格、费用等等。 选自《中华人民共和国消费者权益保护法》
- 消费者在我们的点餐平台上可以自主选择,不会给商家有强制销售的漏洞,让消费者放心,“选啥买啥”、“买多少花多少钱”
消费者拥有“自主选择权”
即消费者自主选择商品或者服务的权利。包括两方面:一是对商品的品种、服务方式及其提供者应有充分选择的余地;二是对于选择商品服务及其提供者应有自由决定的权利而不受强制。实际生活中,损害消费者自由选择权的现象主要是“官商”习气、商品搭售和强买强卖等。
选自《中华人民共和国消费者权益保护法》 - 本点餐系统平台保证在价格计算方面不会出现计量失误;消费者在符合要求的情况下,可以申请取消订单。对于订单的详情,本平台会予以详细准确永久性的记录
消费者拥有“公平交易权”。
是指消费者在购买商品或者接受服务时,有权获得质量保障、价格公平合理、计量准确无误等公平交易条件,有权拒绝经营者的强制交易。
A. 关于商品和服务的质量,消费者有权要求其符合国家规定的标准或者与生产经营者约定的标准,不致因质量低劣而妨碍消费。如果经营者提供的商品或者服务不符合规定的质量要求,消费者有权要求修理、更换、退货、降价等。
B. 关于商品和服务的价格,消费者有权要求生产经营者执行国家的价格政策、法规或按质论价,商品价格或服务费用合理,不因乱涨价或乱收费而受到经济利益损失。
C. 关于商品和服务的计量,消费者有权要求生产经营者计量准确、足量,不致因短尺少秤而遭受经济利益损害。生产经营者更应自觉守法,遵守职业道德,不在计量上弄虚作假。对于工厂包装的产品,消费者有权要求其注明净重量或容量,并与实际相符;交易时计量的商品,消费者有权查明度量、衡器是否准确,有权看秤、复秤,对不足分量者有权要求退货或退回多收的价款
选自《中华人民共和国消费者权益保护法》
- 商家在菜单展示的商品信息必须属实,并对于消费者提出的有权知悉的情况的问题,应予以告知,不可以隐瞒欺骗,本平台要求商家上交经营许可证之类的证明也是为了保护消费者的知悉真实情况权益
3、需求规定
3.1、对功能的规定
- 顾客可以在小程序的今日推荐页面看到今日推荐的各大菜单,点击进入菜单可以看到该菜单内的菜品与相关介绍,并选择是否加入购物车;
- 顾客可以在小程序的主菜单页面浏览各分类下的各菜品照片与名称以及价钱,并选择是否加入购物车;
- 顾客可以在小程序的订单页面修改自己的购物车内容,在备注栏输入备注内容,确认无误后点击“提交订单”按钮提交订单;
- 顾客可以在小程序的订单页面点击“支付订单”,选择想要的支付方式,包括微信支付和现金支付,现金支付需要移步前台支付;
- 顾客可以在小程序体验到多人点餐的乐趣,在订单页面实时看到同桌其他用户的点餐情况,点餐情况分用户显示,用用户头像与昵称区分;
- 多人点餐环境下一位顾客提交订单会自动触发该桌所有用户提交订单,未支付情况下可以看到已提交项变为灰色,已提交的菜品不可修改;
- 提交订单后,顾客未支付的情况下,可以继续在当前订单中往购物车增加菜品,以及提交购物车新增的内容;
- 多人点餐环境下一位顾客支付订单提交该桌所有订单,支付成功后所有用户的购物车都被清空,并提示支付成功;
- 商家可以登录商家管理系统,添加菜品图片url以及菜品名称、描述、价格等属性;
- 商家可以登录商家管理系统,自定义推荐菜单的封面以及内容。
3.2、对性能的规定
本应用为移动端的web应用,需要有较快的加载速度和页面渲染速度。页面上计算的内容不宜过度,以免造成界面卡顿。
3.2.1、精度
菜品的价格的精度为小数点后两位,如23.00、100.50等。
3.2.2、时间特性要求
a.响应时间
除了初始加载页面的时间在3秒内,跳转和修改菜品数量的响应时间都应在1秒内;
b.数据的转换和传送时间
数据的转换需在2秒内,传送时间需在1秒内;
c.同步时间
用户与其他用户点餐情况同步的时间应在用户修改购物车后3秒之内;
3.2.3、灵活性
-
若点餐系统由于不可抗力而崩溃,用户可以改用该餐厅提供的纸质菜单呼叫服务员点餐;
-
用户只能在微信小程序上进行点餐,商家可以在各操作系统的浏览器上管理菜品;
3.3其他专门要求
3.3.1、可维护性
- 修改某个模块时,对其他模块的影响和修改代价尽可能小(改动不超过5%)。
3.3.2、可扩展性
- 允许更多的功能在必要时可以被插入到适当的位置中。
3.3.3、易读性
- 代码需要有较强的可读性,模块划分清晰,功能明确;
- 需要有合理的注释和软件开发文档说明。
3.3.4 可用性
- 方便操作,不需太多学习成本,操作流程合理;
- 具备容错能力,能拒绝用户的某些不合理的操作
3.3.5、可靠性
- 系统能够在规定的条件下和规定的时间区间完成规定功能
3.3.6、安全性
- 使用微信小程序点餐的微信用户都需要通过认证,商家需要使用登录名和密码登录商家管理系统
3.3.7、可适应性
- 对于不同品牌和尺寸的设备,如 Apple iPhone X,Mix2 等等,我们需要保证页面一致性
- 顾客除了可以使用线上微信支付的方式支付订单外,还可以线下与商家自行协商买单。
3.3.8、故障处理
- 持久性存储中记录错误历史;
- 正常使用时不应该出错,若运行时遇到不可恢复的系统错误,必须保证数据库完好无损
4、运行环境
4.1、设备
用户点餐系统需运行在智能触屏手机,商家管理系统需运行在支持浏览器的操作系统上
4.2、支持软件
用户点餐系统需要运行在微信小程序上,商家管理系统需要运行支持vue1的浏览器上,例如Firefox4.0+,Chrome 5+, IE 9+