今天不会摆烂对不队——项目系统设计与数据库设计

今天不会摆烂对不队 团队 2022-04-16 20:12:43
这个作业属于哪个课程2022年福大-软件工程;软件工程实践-W班
这个作业要求在哪里团队作业三—概要设计与数据库设计
这个作业的目标将项目的设计落地,继续完善设计类图,并在正式开始开发之前设计好系统和数据库、制定好计划和分工
其他参考文献《构建之法》—邹欣

目录

  • 一、系统和数据库设计
  • 1.1、 体系结构设计图
  • 1.2、功能模块层次图
  • 1.3、数据库ER图设计
  • 1.4、数据库表结构设计
  • 二、类图、接口设计展示、系统安全和权限设计
  • 2.1、类图
  • 2.2、接口设计展示
  • 2.3、系统安全和权限设计
  • 三、改进分析
  • 3.1、问题一
  • 3.2、问题二
  • 四、团队绩效
  • 4.1、工作流程
  • 4.2、时间安排
  • 4.3、部分交流记录
  • 4.4、每日完成情况
  • 4.5、贡献度表格
  • 4.6、commit记录
  • 五、预期开发计划
  • 5.1、时间安排
  • 5.2、人员分工
  • 六、相关链接

一、系统和数据库设计

1.1、 体系结构设计图

img

1.2、功能模块层次图

  • 前台功能模块图

    img

  • 后台功能模块图

    img

1.3、数据库ER图设计

  • 设计思路:利用已经做好的类图进行分析,先建立每一个类,分成五大模块并再建立类之间的对应关系,将全部模块合成最终完成模块E-R图的绘制。

img

1.4、数据库表结构设计

  • 设计思路:首先根据er图得到数据对象与数据对象之间的联系,再结合类图与具体的业务逻辑,根据需求借助staruml构建数据拓补图,由er图加上具体分析后添加外键,并且在第一范式、第二范式、第三范式的基础上,以确保数据库自身保证数据一致性,完整性。

  • 关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式,满足最低要求的叫做第一范式,简称1NF;在第一范式中满足进一步要求的为第二范式,其余的以此类推。其中:第一范式:字段不可分;第二范式:有主键,非主键字段依赖主键;第三范式:非主属性不得传递依赖于主属性

  • 拓扑图

    img

  • 表结构

    img

    • 与角色有关的表

    img

    img

    • 与竞赛有关的表

    img

    • 与报名有关的表

    img

    • 与招聘有关的表

    img

    • 与聊天室有关的表

    img

    • 与校园求助有关的表

    img

    img

    • 与我的有关的表

    img

二、类图、接口设计展示、系统安全和权限设计

2.1、类图

  • 类图设计思路: 类图设计首先通过需求划分不同的模块,包括竞赛信息、校园求助以及企业招聘。首先设计用户类,包括学生、教师以及企业招聘人员,通过基于角色的用户权限控制RBAC来设计相应的类。设计聊天室,进行一对一聊天,包括聊天信息类,聊天信息记录以及聊天信息记录状态类。通过设计帖子类用于相应的信息发布,以及评论类,用于评论操作。此外增加帖子、评论的状态类用于管理员审核,以及标签类用于标记帖子类型。设计一系列记录类用于实现帖子记录,收藏,预约等功能。通过报名信息类及相应的状态类实现竞赛信息的关联报名表。通过设置招聘信息关联表,用于通过专业筛选信息。通过上述类的设计,以及复用类,实现各个模块的功能,组成项目总体类图。

img

2.2、接口设计展示

img

img

2.3、系统安全和权限设计

  1. 用户权限判断
    隶属于用户个人的页面或者功能必须进行权限控制校验。防止没有做水平权限校验就可随意访问、操作别人的数据。

  2. 数据加密
    对用户的密码采用 MD5 加密后的散列值进行存储,一定程度上保护了用户密码信息。数据库中不存放明文,而是存放加密后的密码的散列值。

  3. 敏感数据脱敏
    用户敏感数据禁止直接展示,必须对展示数据脱敏。

  4. SQL注入
    用户输入的SQL参数严格使用参数绑定或者 METADATA字段值限定,防止 SQL注入,禁止字符串拼接SQL访问数据库。后端数据库交互框架会使用SQL预编译的方式,使用orm框架已经可以对参数进行转义,防止恶意用户输入非法sql语句对数据库数据造成损坏。

  5. 用户参数验证
    用户请求传入的任何参数必须做有效性验证。忽略参数校验可能导致:page size过大导致内存溢出、恶意order by导致数据库慢查询、任意重定向、SQL注入、反序列化注入、正则输入源串拒绝服务ReDoS。

  6. 执行CSRF安全过滤
    采用token(不存储于浏览器)认证,为每一个提交的表单生成一个随机token, 存储在session中,每次验证表单token,检查token是否正确。

  7. 事务控制
    后端接口在所有涉及数据库存储,修改的控制器方法中都加入了事务控制,防止因为接口发生错误,导致数据库操作无法回滚,造成不必要的麻烦。事务传播方式采用REQUIRED方式,若该操作不处于事务中则创建一个事务,确保所有数据操作都处于事务控制中。

  8. 实现防刷、违禁词过滤
    发贴、评论、发送即时消息等用户生成内容的场景对用户在同一时间的发送次数进行限制、使用智能AI对文本内容违禁词过滤。

三、改进分析

3.1、问题一

  • 聊天中允许发文件吗?如果允许的话,他们的关系是什么?系统人员的类图需要再优化的一下。

    • 解决方案: 聊天中是允许发送文件的,我们在聊天信息类中加入了type属性,来表示信息的类型,类型可以使文本,也可以是图片,还可以是文件。如果是文件的话,则content属性里面是文件的地址。我们创建了几个具体的实类继承自Role类,使得RBAC更加的完整。

      img


      img

3.2、问题二

  • 在首页已经设计了三个核心功能的直接按钮,这与底部栏的三个按钮是否冲突呢?如此一看首页是不是有点多余?首页是否必要?如果还想设计首页的话可以考虑推送一些学校相关的信息而不是三个直接跳转的按钮。

    • 解决方案: 首页中的三个按钮在实现时将会保留。根据助教的改进建议,我们将会在首页放比较热门的图片,比如说如果是招聘的话,就会把比较热门的招聘图片放在首页,吸引用户的注意力。

      img

四、团队绩效

4.1、工作流程

  • 首先在QQ群发起匿名投票,得出每个任务对应的贡献度,如图所示,最终得出个人贡献度为最后一行数字。

img

  • 其次提前2小时通知7点在QQ群发任务分工,小组尊重个人意愿,采取先到先得制度,可私下单独与小组成员交换任务,确保小组成员的积极性,也能保证小组成员选到自己拿手的任务完成。

最终分工如下:

img

4.2、时间安排

img

4.3、部分交流记录

img

img

img

4.4、每日完成情况

项目系统设计与数据库设计团队作业每日汇报

img

img

img

img

img

img

其中,接口设计成员采用showDoc的RunApi工具进行接口的设计,并利用其团队的功能实现接口设计的协作。(接口文档链接

img

4.5、贡献度表格

img

4.6、commit记录

img

五、预期开发计划

5.1、时间安排

img

5.2、人员分工

学号+姓名职位工作内容
051906116李若昕PM项目进度安排,项目进度监督,项目文档更进
221900239张书旖美工双端界面UI,界面美化
021900503陈宇彬测试对软件进行黑白盒,集成测试,分析测试报告
041901511张晋铭Web后端权限设置,数据库操作
081900101陈炜Web后端求助,竞赛, 招聘页面接口
061900408龚嘉怡Web前端前后端对接,界面框架搭建
221900437方彬彬APP端求助接口,聊天室接口
221900310黄达棋APP端总体框架搭建,界面拼接
221900218黄旭APP端企业招聘,竞赛信息接口
081900317李楷鸿APP端个人中心接口,登录用户验证

六、相关链接

GitCode团队仓库链接
今天不会摆烂对不队_系统设计说明书.pdf
今天不会摆烂对不队_数据库设计说明书.pdf
今天不会摆烂对不队_系统设计和数据库设计答辩PPT.pdf

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

139

社区成员

发帖
与我相关
我的任务
社区描述
2022年福大-软件工程;软件工程实践-W班
软件工程 高校
社区管理员
  • FZU_SE_teacherW
  • 丝雨_xrc
  • Lyu-
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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