团队第四次作业_系统设计和数据库设计
这个作业属于哪个课程 | 2021春软件工程实践|W班(福州大学) |
---|---|
这个作业要求在哪里 | 团队作业四——数据库设计和系统设计 |
团队名称 | 创业6+1+2 |
这个作业的目标 | 完成系统设计和数据库设计 |
其他参考文献 | 《构建之法》 |
一、团队项目计划
1、预期开发计划时间安排
周数 | 安排 | 具体时间 |
---|---|---|
第七周 | 全体:参与需求分析过程 前端:学习React开发基础,并大致分工 后端:了解SpringBoot框架基础,学习相关技术框架,测试学生认证的功能,进行大致分工 |
4.12-4.18 |
第八周 | 全体:代码规范制定,github团队开发测试,系统设计和数据库设计,接口初步测试 前端:基本项目结构搭建,插件、路由配置等 后端:初步搭建框架,初步编写接口文档,数据库建立与测试 里程碑:项目初步框架搭建 |
4.19-4.25 |
第九周 | 前端:帖子模块、任务模块、消息模块、个人信息模块等ui和网络请求编写,前后端接口测试 后端:上述功能的接口的编写和提供 里程碑:项目前台部分完成 |
4.26-5.2 |
第十周 | 全体:项目整合、整体测试、bug修复、初步性能优化 里程碑:alpha版本上线 |
5.3-5.9 |
第十一周 | 全体: 1、寻找、反思上一个版本存在的问题。 2、讨论要修改/增加/删除的功能(包括bug如何修复),对系统进行必要的重新设计 里程碑:软件评测 |
5.10-5.16 |
第十二周 | 全体:根据上一周得到的的结果进一步完善代码 | 5.17-5.23 |
第十三周 | 全体:准备软件评测答辩 | 5.24-5.30 |
第十四周 | 前端:举报功能、后台系统ui和网络请求的编写,前后端接口测试。 后端:上述功能的接口的编写和提供 里程碑:项目后台部分完成 |
5.31-6.6 |
第十五周 | 全体:功能检验,代码优化,性能优化 | 6.7-6.13 |
第十六周 | 全体: 1、整体测试、bug修复 2、事后总结 里程碑:beta版本上线 |
6.14-6.19 |
图片链接 |
2、开发计划分工安排
人员 | 负责模块 | 负责内容 |
---|---|---|
蔡家鑫 | 前端 | 登录注册页面、找回密码页面、"我的"页面(设置、学生认证) |
陈毅力 | 前端 | 消息中心页面 |
李嘉林 | 前端 | "我的"页面(发布、收藏、草稿、主题) |
吴寒 | 前端 | 帖子页面、任务页面 |
刘睿珏 | 测试 | 接口数据测试、系统异常测试 |
唐凯秦 | 后端 | 任务模块、帖子模块 |
许晓蕾 | 后端 | 消息模块 |
谢雨欣 | 后端 | 用户模块 |
黄贸之 | 后端 | 框架搭建还有用户权限控制模块的编写 |
二、系统设计
1、体系结构设计图及设计思路
本项目采用B/S架构模式(Browser/Server,浏览器/服务器模式)
Browser的View视图
设计思路:
- 本次项目按照React+SpringBoot+Mybatis+Mysql结构进行设计开发。
- B/S架构,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现。这样使得客户端电脑负荷大大简化,减轻了系统维护、升级的支出成本,降低了用户的总体成本。
- B/S架构要求有操作系统和浏览器就行,与操作系统平台无关(可以实现跨平台),对客户端的计算机电脑配置要求较低。
- B/S架构业务扩展简单方便,通过增加网页即可增加服务器功能。
2、功能模块层次图及绘制思路
根据业务和功能,将系统的逻辑结构划分为前台用户系统和后台管理员系统,在各子系统从功能的角度划分为以下图片所展示的若干功能模块:
前台子系统功能模块层次图(细节):
后台子系统功能模块层次图(细节):
设计思路:
将系统分为前台子系统和后台子系统。前台子系统登录者为普通用户,后台子系统登录者为管理员。用户可以浏览帖子和任务的相关内容,以及对帖子和任务进行发布、评论、点赞、收藏等相关操作;可以接受帖子、任务和管理员推送的消息,以及可以对个人的发布、收藏、用户名等进行相关的查看、修改、删除操作。管理员可以对帖子、任务、评论进行审核和退回。前台依据功能的不同,划分为帖子模块、任务模块、消息模块和用户模块。相应的模块调用相应的功能模块,形成H图。
3、系统安全、权限设计
(1) 系统安全性分析
- 信息合法性
使用福州大学教务处账号及密码进行学生认证,减少不良的系统信息的来源以及内容。 - 信息保密性
在其他用户界面中仅展示用户设置的用户名,用户的详细信息被完全保密。只有经过学生认证后才能选择查看发布任务用户的联系方式。该项目每年对所有用户进行重新学生认证。保护用户的个人隐私。 - 系统安全性
系统能防御一些常见的网站攻击,如XSS攻击,CSRF,SQL注入等。
(2)系统权限设计
权限管理是用户进行系统权限划分和设置的平台,按照管理层次可划分为三个层面进行管理,即用户层面、角色层面和权限层面。
- 用户
即该系统的使用者,用户可以归属于0~3个角色。他的权限集是自身具备有的权限和所属角色具有的权限的集合。 - 角色
为了对拥有相似权限的用户进行分类管理,定义了角色的概念,在本系统中,用户可以是游客、已注册用户、管理员三种角色之一,可以同时拥有管理员和已注册用户两种角色。角色布不具有多对多的关系 - 权限
为规定对各类角色下的用户可进行的操作,引入权限,系统为不同角色配置不同的权限。
用户类型 | 权限 | 关联表格 | 用户场景 |
---|---|---|---|
已注册用户 | 修改 | 帖子表 | 用户修改未发布的帖子 |
已注册用户 | 删除 | 帖子表 | 用户删除已发布帖子;用户取消发布帖子;用户删除草稿 |
已注册用户 | 增加 | 帖子表 | 用户发布帖子 |
已注册用户 | 修改 | 任务表 | 用户修改未发布的任务 |
已注册用户 | 删除 | 任务表 | 用户删除已发布任务;用户取消发布任务;用户删除任务 |
已注册用户 | 增加 | 任务表 | 用户发布任务 |
已注册用户 | 增加 | 帖子评论表 | 用户发布评论 |
已注册用户 | 增加 | 评论消息表 | 用户A在已注册用户的帖子下发表评论 |
已注册用户 | 增加 | 点赞消息表 | 用户A点赞已注册用户的帖子 |
已注册用户 | 增加 | 举报表 | 已注册用户举报用户B的帖子及用户B |
已注册用户 | 增加 | 帖子点赞表 | 用户点赞帖子 |
已注册用户 | 查看 | 评论消息表 | 用户查看信息 |
已注册用户 | 查看 | 点赞消息表 | 用户查看信息 |
已注册用户 | 查看 | 系统消息表 | 用户查看信息 |
所有用户 | 查看 | 任务表 | 用户查看任务列表;用户查看任务详情 |
所有用户 | 查看 | 帖子表 | 用户查看帖子列表;用户查看帖子详情 |
所有用户 | 查看 | 帖子评论表 | 用户查看帖子详情页中的评论区 |
所有用户 | 查看 | 帖子点赞表 | 用户查看帖子的点赞数 |
管理员 | 修改 | 用户表 | 管理员冻结用户 |
管理员 | 修改 | 帖子表 | 管理员审核帖子 |
管理员 | 修改 | 任务表 | 管理员审核任务 |
管理员 | 修改 | 评论表 | 管理员审核帖子 |
管理员 | 查看 | 举报表 | 管理员查看举报信息 |
三、数据库设计
1、ER图
2、表结构设计及设计思路
各个表格具体内容请查看《数据库设计说明书》
数据库表格 | 描述 |
---|---|
用户表 | 记录用户信息 |
角色表 | 记录系统中拥有的角色信息 |
权限表 | 记录系统中拥有的所有权限信息 |
用户角色表 | 由于用户与角色是一对一关系,因此用此表来关联用户表和角色表 |
角色权限表 | 由于角色与权限是一对一关系,因此用此表来管理角色表和权限表 |
帖子表 | 存放所有卡片的帖子类型(帖子的扩展信息) |
任务表 | 存放所有卡片的任务类型(任务的扩展信息) |
帖子点赞表 | 存放所有的点赞信息 |
帖子评论表 | 存放所有的评论信息 |
举报表 | 存放所有的举报信息 |
点赞信息表 | 存放所有消息的点赞类型 |
评论信息表 | 存放所有消息的评论类型 |
系统信息表 | 存放所有的系统消息 |
思路:按照er图、参照类图设计数据库表格。根据RABC模型在用户模块设计用户表、角色表、权限表、用户角色表和角色权限表;在帖子模块设计帖子表、帖子评论表、帖子点赞表;在任务模块设计任务表和举报表;在消息模块设计点赞消息表、评论消息表和系统消息表。
四、类图
设计思路:
通过需求分析,抽取出用户、管理员、帖子、任务、举报、评论项、点赞项以及消息等主要实体类。并根据类与类之间的联系,建立一对一、一对多以及多对多的关系。之后通过添加评论列表和点赞列表,用于消除类之间的多对多关系。同时,由于任务与帖子有较多重复的属性和方法,将相同的部分抽取出来形成一个抽象类卡片,并让任务和帖子继承于这个类。为了增加消息类的可扩展性,将其设置为抽象类,并将具体的评论消息和点赞消息继承于该类。
五、回答问题
1、回答老师、助教和其他队伍提出的问题(待完善)
Q:如果出现多个用户举报同一篇帖子的情况,该怎么做呢?
A:只要有人举报,该帖子/任务就被锁定无法操作。所以,不会出现多个人举报同一个帖子的问题。
Q:任务为什么继承帖子?建议可以提取共同的部分,形成一个抽象类
A:已对类图进行修改。
Q:是不是需要一个帖子列表?以及不同板块的帖子区分
A:我们已在原型设计中展示,贴子首页将帖子以列表形式展现,并划分为校园、新生、考研等类。
2、细节改进
收到的建议:1、建议区分消息,增加不同类型消息的表述,参考加油站例子。2、建议从任务和帖子抽离出一个类,放入任务和帖子共有的方法。 3、用例图采用分层方式表述
(1)修改用例图
原图:
修改说明:按照模块将用例图划分为六个小图
修改后的图片:
(2)修改类图
原图:
修改说明:将帖子类和任务类中重复的属性和方法抽离出来建立一个新的类,名为卡片类,使得帖子类和任务类继承于卡片类。建立点赞消息列表类和评论消息列表类继承于消息类。为消除多对多的关系,建立点赞项类和评论项类。
修改后的图片:
六、团队工作
1、工作流程
任务简述 | 负责人 | 任务详细内容 | 备注 | 时间 |
---|---|---|---|---|
编写接口文档 | 寒、蕾 | 在团队文档中编写接口文档 | 04/18-04/20 | |
绘制ER图 | 秦 | 绘制实体类关联的ER图 | 根据类图设计 | 04/18-04/20 |
绘制系统功能层次图 | 嘉 | 根据需求分析绘制系统功能层次图 | 04/18-04/20 | |
绘制体系结构图 | 毅、鑫 | 绘制系统体系结构图 | 04/18-04/20 | |
编写数据库结构文档 | 欣、贸 | 04/18-04/20 | ||
编写设计说明书目录结构 | 珏 | 设计说明书内容及目录结构 | 04/18-04/20 | |
绘制系统功能层次图 | 嘉 | 根据系统层次绘制系统功能模块层次图 | 完成上阶段任务 | 04/20-04/21 |
编写各类需求分析 | 鑫 | 编写需求概述(2.1.1)和详细需求你分析(3.1.1)、接口需求分析(3.2) | 04/20-04/22 | |
编写关于系统环境的描述 | 鑫 | 编写运行环境概述(2.1.2)(硬件软件、操作系统,即除去数据库部分) 、详细资源需求分析(3.1.3)、详细系统运行环境(系统运行环境的详细描述) |
04/20-04/22 | |
编写系统详细界面划分 | 毅 | 编写系统详细界面划分 | 根据层次图编写 | 04/20-04/22 |
编写部分数据库设计说明书内容 | 蕾 | 编写运行环境概述(2.1.2数据库部分)、数据库设计依据、数据库种类及特点 | 04/20-04/22 | |
编写数据库结构设计 | 欣 | 编写数据库结构设计 | 04/20-04/22 | |
编写系统程序代码架构设计 | 贸 | 编写系统程序代码架构设计 | 04/20-04/22 | |
编写系统性能相关部分 | 秦 | 编写数据库安全、详细性能分析(3.1.2)、系统安全性和权限(4.3) | 04/20-04/22 | |
编写系统功能模块详细设计 | 寒、嘉 | 根据层次图编写 | 04/20-04/22 | |
整理设计说明书,编写引言 | 珏 | 整理系统详细设计说明书和数据库设计说明书 并编写引言 | 等待上方全部任务完成后开始 | 04/21-04/23 |
编写其余文稿 | 珏 | 制作ppt、编写博客、设计评审表、编写报告文稿、设计组内评分表 | 04/22-04/24 |
2、组员分工及贡献度
学号 | 工作内容 | 贡献度 |
---|---|---|
221801113 | 绘制体系结构图、编写关于系统环境的描述、编写各类需求分析 | 11.09 |
221801139 | 编写系统功能模块详细设计、绘制系统功能层次图 | 10.87 |
111801429 | 编写系统功能模块详细设计、编写接口文档 | 11.56 |
221801128 | 编写系统详细界面划分、绘制体系结构图 | 10.99 |
221801318 | 编写系统程序代码架构设计、编写数据库结构文档 | 11.10 |
221801119 | 编写部分数据库设计说明书内容、编写接口文档 | 11.31 |
221801120 | 编写系统性能相关部分、绘制ER图 | 10.91 |
061800217 | 主持会议,分配任务,设计说明书内容,编写报告稿,设计评审稿,制作PPT,整合、完善设计说明书,答辩 | 11.16 |
221801134 | 编写数据库结构设计、编写数据库结构文档 | 11.00 |