在线订餐系统开发——需求分析与设计

Lauretta_y 2021-12-27 16:48:26

项目概述

在线订餐系统是具有较为完整的购买美食流程、食品管理、订单处理流程的并且提供给消费者PC Web端,移动 App端,微信小程序端多种使用方式,提供给在线订餐管理人员相应的管理接口的一个系统。主要包括本系统主要包括:用户点餐(PC、移动、小程序)、商家管理、骑手送餐三部分。
在技术上,前后端分离方式开发,涉及到 Web 前端开发、 Java 服务端开发。系统支持数据、应用、管理维护层的分布或集中处理的部署,完成业务功能,提供了分析、设计、开发、测试、部署以及项目管理等方面的完整参考实现。

需求分析

业务分析

本系统主要包括:用户点餐(PC、移动、小程序)、商家管理、骑手送餐三部分。
用户注册、登录系统,可以选择自己喜欢的菜品,加入购物车,当选择完毕之后,点击结算下单。下完单之后,可以在“我的订单”之中查看自己的订单的信息,并且可以对订单进行催单、退款、评价等操作,会从数据库调取菜品信息、用户信息、评价信息、反馈信息、订单信息等数据。
商家部分除了菜品管理、人事管理、评价管理、优惠管理、会员管理、收支管理、权限管理、餐位管理等,餐位、菜品员工、骑手等信息需要录入,同时例如在菜品管理 也会从数据库调取信息。
具体的业务分析如下图所示:

img

功能分析

在线订餐系统,进行经分析,用例图如下,其中有商家、骑手、顾客三个参与者;商家有涉及到登录、人员管理、菜品管理、评价管理、订单管理、反馈管理,骑手有配送、信息管理、骑手登录三个用例,顾客有评价管理、订单管理、反馈管理、登录四大部分。
用例图:

img

功能模块图:

img

系统设计

总体设计

前端架构:
store进行Vuex状态管理,router是前端路由,view是各个业务页面,component存放通用组件,util层存放项目全局的工具函数,service层处理服务端返回的数据,即当其调用了不同的api,就会把不同的返回数据整合在一起在统一发送到 store 中。

img

后端架构:
我们采用了ssm框架,使用springboost进行项目构建,使用数据库Oracle数据库,项目结构具体分为了数据层、持久层、访问层、业务层和控制层,辅以长连接、Aop面向切面编程。

img

类和对象设计

img

动态模型设计

我的订单部分的查看全部的订单的用例图:用户登录之后,创建订单,进入到“我的订单”之后,可以查看所有的订单的列表,当点击某个订单之后,订单的ID会传回后台,然后可以根据ID查到订单的详细信息,在返回给前端的用户。

img

订单评价:
订单的评价的时序图,因为退款等的业务流程和评价相类似,因此就以评价为例。
用户登陆之后,可以获取到订单的详细信息,然后向后端发送评价的请求,并且发送数据,后端收到数据,建立review,并且向前端返回创建的结果。前端收到结果显示。

img

数据库设计

数据库设计的E-R图如下所示,我们对订单和菜品建立了orderItem用来表示每个菜的信息,就是一个订单有多个Item;同时budget部分也采用这个格式。

img

其中我们的数据库表的设计,以订单为例进行展示,订单的主键是订单ID,外键有用户ID、满减ID、餐位ID、配送ID等,通过这些外键来建立表与表之间的联系。

img

作者:527

...全文
372 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧