139
社区成员
这个作业属于哪个课程 | 2022年福大-软件工程;软件工程实践-W班 |
---|---|
这个作业要求在哪里 | 团队作业三—概要设计与数据库设计 |
这个作业的目标 | 将项目的设计落地,继续完善设计类图,并在正式开始开发之前设计好系统和数据库、制定好计划和分工 |
其他参考文献 | 《构建之法》—邹欣 |
前台功能模块图
后台功能模块图
设计思路:首先根据er图得到数据对象与数据对象之间的联系,再结合类图与具体的业务逻辑,根据需求借助staruml构建数据拓补图,由er图加上具体分析后添加外键,并且在第一范式、第二范式、第三范式的基础上,以确保数据库自身保证数据一致性,完整性。
关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式,满足最低要求的叫做第一范式,简称1NF;在第一范式中满足进一步要求的为第二范式,其余的以此类推。其中:第一范式:字段不可分;第二范式:有主键,非主键字段依赖主键;第三范式:非主属性不得传递依赖于主属性
拓扑图
表结构
用户权限判断
隶属于用户个人的页面或者功能必须进行权限控制校验。防止没有做水平权限校验就可随意访问、操作别人的数据。
数据加密
对用户的密码采用 MD5 加密后的散列值进行存储,一定程度上保护了用户密码信息。数据库中不存放明文,而是存放加密后的密码的散列值。
敏感数据脱敏
用户敏感数据禁止直接展示,必须对展示数据脱敏。
SQL注入
用户输入的SQL参数严格使用参数绑定或者 METADATA字段值限定,防止 SQL注入,禁止字符串拼接SQL访问数据库。后端数据库交互框架会使用SQL预编译的方式,使用orm框架已经可以对参数进行转义,防止恶意用户输入非法sql语句对数据库数据造成损坏。
用户参数验证
用户请求传入的任何参数必须做有效性验证。忽略参数校验可能导致:page size过大导致内存溢出、恶意order by导致数据库慢查询、任意重定向、SQL注入、反序列化注入、正则输入源串拒绝服务ReDoS。
执行CSRF安全过滤
采用token(不存储于浏览器)认证,为每一个提交的表单生成一个随机token, 存储在session中,每次验证表单token,检查token是否正确。
事务控制
后端接口在所有涉及数据库存储,修改的控制器方法中都加入了事务控制,防止因为接口发生错误,导致数据库操作无法回滚,造成不必要的麻烦。事务传播方式采用REQUIRED方式,若该操作不处于事务中则创建一个事务,确保所有数据操作都处于事务控制中。
实现防刷、违禁词过滤
发贴、评论、发送即时消息等用户生成内容的场景对用户在同一时间的发送次数进行限制、使用智能AI对文本内容违禁词过滤。
聊天中允许发文件吗?如果允许的话,他们的关系是什么?系统人员的类图需要再优化的一下。
在首页已经设计了三个核心功能的直接按钮,这与底部栏的三个按钮是否冲突呢?如此一看首页是不是有点多余?首页是否必要?如果还想设计首页的话可以考虑推送一些学校相关的信息而不是三个直接跳转的按钮。
最终分工如下:
其中,接口设计成员采用showDoc的RunApi工具进行接口的设计,并利用其团队的功能实现接口设计的协作。(接口文档链接)
学号+姓名 | 职位 | 工作内容 |
---|---|---|
051906116李若昕 | PM | 项目进度安排,项目进度监督,项目文档更进 |
221900239张书旖 | 美工 | 双端界面UI,界面美化 |
021900503陈宇彬 | 测试 | 对软件进行黑白盒,集成测试,分析测试报告 |
041901511张晋铭 | Web后端 | 权限设置,数据库操作 |
081900101陈炜 | Web后端 | 求助,竞赛, 招聘页面接口 |
061900408龚嘉怡 | Web前端 | 前后端对接,界面框架搭建 |
221900437方彬彬 | APP端 | 求助接口,聊天室接口 |
221900310黄达棋 | APP端 | 总体框架搭建,界面拼接 |
221900218黄旭 | APP端 | 企业招聘,竞赛信息接口 |
081900317李楷鸿 | APP端 | 个人中心接口,登录用户验证 |
GitCode团队仓库链接
今天不会摆烂对不队_系统设计说明书.pdf
今天不会摆烂对不队_数据库设计说明书.pdf
今天不会摆烂对不队_系统设计和数据库设计答辩PPT.pdf