团队第四次作业_系统设计和数据库设计

这个作业属于哪个课程 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视图

设计思路

  1. 本次项目按照React+SpringBoot+Mybatis+Mysql结构进行设计开发。
  2. B/S架构,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现。这样使得客户端电脑负荷大大简化,减轻了系统维护、升级的支出成本,降低了用户的总体成本。
  3. B/S架构要求有操作系统和浏览器就行,与操作系统平台无关(可以实现跨平台),对客户端的计算机电脑配置要求较低。
  4. B/S架构业务扩展简单方便,通过增加网页即可增加服务器功能。

2、功能模块层次图及绘制思路

根据业务和功能,将系统的逻辑结构划分为前台用户系统和后台管理员系统,在各子系统从功能的角度划分为以下图片所展示的若干功能模块:

前台子系统功能模块层次图(细节):

后台子系统功能模块层次图(细节):

设计思路

将系统分为前台子系统和后台子系统。前台子系统登录者为普通用户,后台子系统登录者为管理员。用户可以浏览帖子和任务的相关内容,以及对帖子和任务进行发布、评论、点赞、收藏等相关操作;可以接受帖子、任务和管理员推送的消息,以及可以对个人的发布、收藏、用户名等进行相关的查看、修改、删除操作。管理员可以对帖子、任务、评论进行审核和退回。前台依据功能的不同,划分为帖子模块、任务模块、消息模块和用户模块。相应的模块调用相应的功能模块,形成H图。

3、系统安全、权限设计

(1) 系统安全性分析

  1. 信息合法性
    使用福州大学教务处账号及密码进行学生认证,减少不良的系统信息的来源以及内容。
  2. 信息保密性
    在其他用户界面中仅展示用户设置的用户名,用户的详细信息被完全保密。只有经过学生认证后才能选择查看发布任务用户的联系方式。该项目每年对所有用户进行重新学生认证。保护用户的个人隐私。
  3. 系统安全性
    系统能防御一些常见的网站攻击,如XSS攻击,CSRF,SQL注入等。

(2)系统权限设计

权限管理是用户进行系统权限划分和设置的平台,按照管理层次可划分为三个层面进行管理,即用户层面、角色层面和权限层面。

  1. 用户
    即该系统的使用者,用户可以归属于0~3个角色。他的权限集是自身具备有的权限和所属角色具有的权限的集合。
  2. 角色
    为了对拥有相似权限的用户进行分类管理,定义了角色的概念,在本系统中,用户可以是游客、已注册用户、管理员三种角色之一,可以同时拥有管理员和已注册用户两种角色。角色布不具有多对多的关系
  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

七、附件链接

github团队仓库

创业6+1+2_系统设计说明书

创业6+1+2_数据库设计说明书

系统设计和数据库设计答辩PPT

posted @ 2021-04-24 22:09  创业6+1+2  阅读(280)  评论(4编辑  收藏  举报