游趣——项目系统设计与数据库设计

游趣 2024-04-23 23:35:11
这个作业属于哪里2023年福大-软件工程实践-W班
这个作业要求在哪里团队作业 概要设计和数据库设计
这个作业的目标完善用况图和类图,并且正式开始开发之前设计好系统和数据库、制定好计划和分工
参考文献《构建之法》、UML之类图UML类图详解数据库表结构设计的几条准则数据库表设计(一对多、多对多)

目录

  • GitCode团队仓库链接
  • 游趣_系统设计说明书.pdf
  • 游趣_数据库设计说明书.pdf
  • 游趣_系统设计和数据库设计答辩PPT.pdf
  • 1. 系统和数据库设计:
  • 1.1 体系结构设计+功能模块层次图
  • 1.1.1 系统分解
  • 1.1.2 层次结构
  • 1.1.3系统模块设计
  • 1. 用户模块
  • 2. 社交模块
  • 3. 论坛模块
  • 4. 语音模块
  • 5. 层次图
  • 1.2 ER分析+表结构设计
  • 1.2.1 ER分析
  • 1.2.2 表结构设计
  • 表结构设计思路
  • 2.类图、系统安全和权限设计
  • 2.1 类图设计
  • 2.1.1 类图
  • 2.2 系统安全
  • 2.3 权限设计
  • 3.改进分析
  • 4.团队绩效
  • 4.1 团队绩效的工作流程
  • 4.2 团队绩效的分工和贡献度
  • 5.开发计划安排
  • 5.1 开发计划
  • 5.2 分工安排


GitCode团队仓库链接

游趣_系统设计说明书.pdf

游趣_数据库设计说明书.pdf

游趣_系统设计和数据库设计答辩PPT.pdf


1. 系统和数据库设计:

1.1 体系结构设计+功能模块层次图

1.1.1 系统分解

img

1.1.2 层次结构

  • 界面层:用户与系统进行交互的工具,主要负责数据的输入和输出,不对数据进行逻辑处理。它负责显示信息,接收用户的操作请求,并展示系统对请求的反馈结果。
  • 控制器层:控制器层接收和处理用户请求。当用户发起请求时,控制器层会根据请求的URL、HTTP方法等信息判断请求的目标,并调用相应的方法进行处理。它还可能调用业务逻辑层进行业务处理,并返回处理结果给前端页面进行显示。
  • 业务逻辑层:主要负责业务规则的制定、业务流程的实现等与业务需求有关的系统设计。它位于界面层和数据访问层之间,作为客户端和数据库交互的桥梁。
  • 数据访问层:主要负责数据库的访问,包括数据的查询、插入、更新和删除等操作。它实现了对象和数据表之间的映射,以及对象实体的持久化操作。

1.1.3系统模块设计

1. 用户模块

用户模块负责管理用户账号和信息。

  • 登录注册:管理用户登录以及注册。
  • 账号管理:管理用户账号,如修改密码、退出登录。
  • 信息管理:管理用户信息,如编辑信息、展示信息。

2. 社交模块

社交模块负责管理用户之间的通信。

  • 好友功能:管理用户的好友,如添加、删除好友。
  • 聊天功能:负责用户之间的交流。
  • 地图功能:地图上展示附近在线的用户。
  • 系统消息推送:向用户推送好友的消息。

3. 论坛模块

论坛模块负责管理所有用户的帖子。

  • 帖子功能:用户可以查看、发布帖子,也可以点赞、评论。

4. 语音模块

语音模块负责管理用户进行语音交流。

  • 房间功能:用户可以创建房间、查找房间。
  • 语音功能:用户在房间内可使用语音交流。

5. 层次图

img

1.2 ER分析+表结构设计

1.2.1 ER分析

img

1.2.2 表结构设计

  • 帖子表
字段名数据类型长度主键非空描述
帖子id整数8自增
用户id整数8发布帖子用户标识符
帖子内容字符串4096
配图字符串4096图片路径列表通过","分割,例如http://xxx/a.png,http://xxx/b.png
评论数整数4
点赞数整数4
发布时间datetime
  • 评论表
字段名数据类型长度主键非空描述
评论id整数8自增
用户id整数8
帖子id整数8
文本内容字符串4096
配图字符串4096图片路径列表通过","分割,例如http://xxx/a.png,http://xxx/b.png
回复数整数4
点赞数整数4
发布时间datetime
  • 回复表
字段名数据类型长度主键非空描述
回复id整数8自增
评论id整数8
发布回复的用户id整数8
被回复的回复id整数8
文本内容字符串4096
配图字符串4096图片路径列表通过","分割,例如http://xxx/a.png,http://xxx/b.png
点赞数整数4
发布时间datetime
  • 用户表
字段名数据类型长度主键非空描述
用户id整数8自增
头像字符串128url字符串
昵称字符串32
邮箱字符串64
账号字符串64
密码字符串256MD5加密后的字符串
生日datetime
性别整数1
签名字符串64
地址字符串256
经度字符串64
维度字符串64
  • 角色表
字段名数据类型长度主键非空描述
角色id整数8自增
角色名字符串20
  • 用户角色表
字段名数据类型长度主键非空描述
用户角色id整数8自增
用户id整数8
角色id整数8
  • 资源表
字段名数据类型长度主键非空描述
资源id整数8自增
资源名字符串64
  • 角色资源表
字段名数据类型长度主键非空描述
角色资源id整数8自增
角色id整数8
资源id整数8
  • 用户社交表
字段名数据类型长度主键非空描述
角色社交id整数8自增
用户id整数8
粉丝数整数8
关注数整数8
  • 用户关注表
字段名数据类型长度主键非空描述
角色关注id整数8自增
用户id整数8
被关注用户id整数8
  • 用户打分表
字段名数据类型长度主键非空描述
角色打分id整数8自增
打分用户id整数8
被打分用户id整数8
语音房间id整数8
分数整数1
  • 语音房间表
字段名数据类型长度主键非空描述
语音房间id整数8自增
创建者用户id整数8
房间号整数4
房间最大成员数整数8
房间成员数整数1
标题字符串64
密码字符串16
标签字符串128
创建时间datetime
房主留言字符串256
  • 语音房间记录表
字段名数据类型长度主键非空描述
语音房间记录id整数8自增
语音房间id整数8
资源文本

表结构设计思路

  • 1.对帖子表中的用户id建立单索引,快速查找用户下的所有帖子。
  • 2.对评论表中的用户id建立单索引,快速查找用户下的所有评论。
  • 3.对评论回复表中的评论id建立索引,快速查找评论下的回复。
  • 4.对用户关注表中的关注用户id和被关注用户id建立联合索引,快速查找粉丝和关注以及好友(相互关注即为好友)。

2.类图、系统安全和权限设计

2.1 类图设计

2.1.1 类图

img

2.2 系统安全

用户在登录时,传输密码给后端时,采用AES加密,前后端共用一个密钥,保证了密码不进行明文传输,提高系统安全性,避免用户密码以明文形式泄露,同时,我们数据库在存储用户密码时采用MD5加密,避免了数据库受攻击时用户密码被窃取。

2.3 权限设计

  • 服务器内部接口,在网关采用白名单机制,仅限服务器内部ip,避免了内部接口暴露给外网。
  • 服务端给用户授权-鉴权-认证,用户登录后,服务器会返回一个token,用户在请求其他接口时,需要在请求头中携带token,服务器会校验token的有效性,保证了用户的合法性。

3.改进分析

  • Q: 既然有了登录和注册的泳道图,那么为什么没有其他功能的泳道图呢?
  • A:这是普通请求如查询帖子、查询评论、查询房间列表的泳道图,如下所示。

    img

  • Q: 类图是不是缺少了好友类,没有表示好友的关系类?
  • A:确实,我们没有考虑周到。在类图中添加Friend类作为User和User之间好友关系的中间类。

    img

  • Q: 那有没有记录用户在房间行为?一个Room类足够说明房间相关类吗?
  • 我们最初是没有考虑要记录用户在房间的行为,因为我们认为用户房间的行为不重要因此不记录。但是经过团队讨论,记录用户行为,是有用的,这样给平台管理员 提供必要审查支持。
  • Q: 为什么开题有匹配功能,到需求分析这个功能就没了?
  • A:用户在创建语音房间的时候可以设置房间标签以及用户可以根据房间标签灵活进行语音房间的筛选,我们理解的匹配就是筛选。用户可以在房间标签中任意标记自己房间的特点。比如,房间的标签可以是游戏及其游戏段位。
  • Q: 为什么开题有评分功能,需求分析又没了?
  • A:在我们的开题ppt不完善并没有评分功能,只是开题报告者口头上说有评分功能,因此在做需求分析的时候未考虑该功能,并不是我们app功能之一。但是我们决定实现开题报告者口头承诺的功能,并完善了如Q2相关类图。

4.团队绩效

4.1 团队绩效的工作流程

img

4.2 团队绩效的分工和贡献度

学号姓名工作内容贡献度
222100331章瑞烨编写系统设计说明书引言、概述部分12%
222100332梁荫铭编写数据库设计说明书其余部分18%
222100333游宗建编写系统设计说明书体系结构设计、功能模块层次设计、类图设计部分14%
222100334谢鹏编写系统设计说明书接口设计部分、数据库设计说明书物理结构设计、系统安全和权限设计部分,并创建GitCode仓库18%
222100309许君毓完成系统设计和数据库设计PPT15%
222100310许家榕完成博客、PPT答辩15%
222100134赛依旦木·艾合买提江完善原型设计8%

5.开发计划安排

5.1 开发计划

时间开发安排
第9、10周进行语音房间模块开发
第11周实现地图模块,查看附近的人
第12周进行好友功能模块开发
第13周聊天模块开发
第14周论坛帖子CRUD
第15周论坛帖子评论、回复功能开发
第16周部署、测试、优化

5.2 分工安排

姓名岗位开发内容
谢鹏前端开发语音房间开发、地图模块开发
梁荫铭后端开发用户部分模块开发、好友模块开发、好友聊天功能开发、系统消息推送功能开发
许家榕后端开发帖子模块开发、评论、回复功能开发、用户部分模块开发
游宗建前端开发登录页面开发、社交模块开发、首页开发
许君毓前端开发论坛模块开发、用户模块
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
助教鲍仁俊 助教 04-24
  • 打赏
  • 举报
回复
更正一下,数据库中字段长度是显示长度,因此设计为1长度也可以是0-9,这块没问题。
FZU_SE_teacherW 教师 04-24
  • 打赏
  • 举报
回复

缺少一个明显风格的体系结构设计;
用户表中的“性别”字段用1位的整数没问题,最好说明取值为何值时表示男,何值表示女,否则0~9个取值,改如何约束呢?
系统设计说明书的3.1.3小节中提到,数据库采用MySQL主从,能否解释一下MySQL主从具体涵义?

助教张宇梦 助教 04-24
  • 打赏
  • 举报
回复

类图的组合、聚合关系并没有展示一对多或者多对多的关系,类与类之间的关系不是很清晰

300

社区成员

发帖
与我相关
我的任务
社区描述
福州大学的软件工程实践-2023学年-W班
软件工程需求分析结对编程 高校 福建省·福州市
社区管理员
  • FZU_SE_teacherW
  • Pity·Monster
  • 助教张富源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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