今天吃啥APP设计文档
项目组长:杨乾成 张陈杰成员:林朝洋 梁翘楚 孟苏 李景怡 叶沛玟 赵昕颖
1 设计概述
1.1 条件与限制
- 建议系统的运行寿命:5 年
- 经费、投资方面的来源和限制:自营
- 法律和政策方面的限制:不得侵犯学生和商家权利,不得与相关政策违背
- 硬件环境:性能良好的服务器
- 开发环境:Android Stdio、MySQL、JAVA 相关的开发软件等
- 可利用的信息和资源:参考文献,所学的高级编程语言和数据库知识
- 系统投入使用的最晚时间:2 个月
1.2 运行环境概述
- 支持环境:Android ?及以上。
- 数据库:MYSQL。
- 开发平台:Android Stdio。
- 编程语言:JAVA。
1.3 需求概述
见需求文档。
1.4 详细设计方法和工具
- 数据库设计工具:MySQL
- 界面设计工具:Android Stdio
- 原型设计工具:spring+springmvc+mybatis
2 总体设计
2.1 系统体系结构
功能模块的划分
2.2 系统功能结构
2.2.1 主功能清单
主功能模块清单
功能编号 | 功能名称 | 功能简述 |
---|---|---|
F1 | 用户接口模块 | 在此模块用户可以注册后享受美食推荐服务、进行周边美食探索。 |
F2 | 管理员接口模块 | 对于美食信息进行管理,也可以审核用户评价。 |
F3 | 数据服务模块 | 对美食的信息,用户的喜好进行管理,实现推荐算法。 |
2.2.2 子功能清单
子功能清单
功能编号 | 子功能编号 | 子功能名称 | 子功能简述 |
---|---|---|---|
F1 | F1-1 | 用户注册 | 用户可以注册个人信息。 |
F1-2 | 用户登录 | 用户登录后可以修改个人口味,享受推荐功能。 | |
F1-3 | 个人爱好设置 | 用户对甜、辣、酸、咸、油属性的食物设置口味爱好。 | |
F1-4 | 每日推荐 | 向用户于各个饭点,根据用户喜好、当天天气和用户身体状况等进行菜品推荐。 | |
F1-5 | 喜好反馈 | 用户对于推荐的菜品,可以点赞或点踩,反馈给数据库新的喜好特性值。 | |
F2 | F2-1 | 美食信息管理 | 管理员对美食信息进行管理,可以进行增、删、改操作。 |
F2-2 | 用户评价管理 | 管理员对用户提交的评价进行审核。 |
2.3 功能设计
用例图: 用户用例图
管理员用例图
类图:
类图
3 程序模块设计说明
3.1 F1 用户接口模块
3.1.1 F1-1 用户注册
功能要求:用户使用本 app 需先注册,方便软件根据用户口味喜好进行推荐。
性能要求:要求 1 秒内作出相应。
界面要求:简单美观。
输入项:由用户初次点击“推荐”触发该事件,或在登录界面选择注册。
输出项:无
程序流程:
3.1.2 F1-2 用户登录
功能要求:用户登录后可以点击首页的“开始推荐”按钮进行美食推荐。
性能要求:要求 1 秒内作出相应。
输入项:由用户点击登录触发该事件。
输出项:登录是否成功。
程序流程:
3.1.3 F1-3 个人爱好设置
功能要求:用户对于甜、辣、酸、咸、油属性的食物设置口味爱好。
性能要求:要求 1 秒内作出相应。
输入项:注册成功后自动跳转触发,或登录后在个人中心选择设置。
输出项:用户是否喜爱。
3.1.4 F1-4 每日推荐
功能要求:向用户于各个饭店,根据用户喜好、当天天气和用户身体状况等进行美食推荐。
性能要求:要求 1 秒内作出相应。
输入项:时间、用户喜好、天气、用户身体状况,用户点击“推荐”触发。
输出项:根据推荐算法得到的结果。
3.1.5 F1-5 喜好反馈
功能要求:用户对于推荐的菜品进行点赞或点踩,进一步反馈数据库口味喜好特征。
性能要求:要求 1 秒内作出相应。
输入项:点赞或点踩。
输出项:用户对某美食的喜好特征。
3.1.6 F1-6 探索
功能要求:用户根据距离、地区、评价等条件进行筛选或以关键字进行搜索。用户可以点进各结果查看详细信息。
性能要求:要求 1 秒内作出相应。
输入项:筛选条件,关键字,查看详细信息的请求。
输出项:筛选或搜索结果,商家详情。
>3.2 F2 管理员接口模块
3.2.1 F2-1 美食信息管理
功能要求:管理员对美食信息进行管理,可以进行增加、删除、修改等操作。
性能要求:要求 1 秒内作出相应。
输入项:美食,相应的操作。
输出项:修改的结果。
3.2.2 F2-2 用户评价管理
功能要求:管理员对用户提交的评价进行审核。
性能要求:要求 1 秒内作出相应。
输入项:用户提交的评价。
输出项:通过或不通过。
3.3 数据结构
3.3.1 数据库环境说明
软件开发用到的数据库是 MySQL。MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
3.3.2 数据库表设计
(1)用户信息
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|---|---|---|---|---|
UID | Varchar | 20 | 是 | 是 | 用户 id |
Phone | Varchar | 11 | 否 | 是 | 手机号(登录账号) |
Password | Varchar | 20 | 否 | 是 | 密码 |
Feature | Int | 否 | 否 | 特征值(暂定) |
(2)菜品信息
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|---|---|---|---|---|
DID | Varchar | 20 | 是 | 是 | 菜品编号 |
ImagePath | Varchar | 50 | 否 | 否 | 图片存放路径 |
Feature | Int | 否 | 否 | 特征值 | |
Season | Int | 否 | 否 | 季节属性 | |
AID | Varchar | 20 | 否(外键) | 是 | 所在场所编号 |
Remark | Float | 否 | 否 | 评价值 |
(3)场所信息
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|---|---|---|---|---|
AID | Varchar | 20 | 是 | 是 | 场所编号 |
Name | Varchar | 50 | 否 | 否 | 场所名 |
Address | Varchar | 50 | 否 | 否 | 所属地 |
(4)用户反馈日志
字段名 | 数据类型 | 长度 | 主键 | 非空 | 描述 |
---|---|---|---|---|---|
UID | Varchar | 20 | 是 | 是 | 用户编号 |
DID | Varchar | 20 | 是 | 是 | 菜品编号 |
Time | Date | 否 | 是 | 最后一次用餐时间 | |
Count | Int | 否 | 是 | 一周内用餐次数 | |
Comment | Int | 否 | 否 | 评价值(单次) |
分工
UI 界面:赵昕颖、李景怡
推荐算法:张陈杰、孟苏、林朝洋
服务器端:梁翘楚、杨乾成、叶沛玟
原文地址:https://www.cnblogs.com/blogMorningStar/p/11992830.html