用心聚落步——项目系统设计与数据库设计

这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系)
这个作业要求在哪里 团队作业第四次—项目系统设计与数据库设计
这个作业的目标 在需求分析原型设计作业中,大家很好的阐述了项目的用户场景和功能描述,并且绘制了精美的原型;
但是大家的设计还是停留在产品角度,而不是开发角度;绘制的用例图和类图还比较粗糙;开发计划还不够完善;
这次作业的目的就是接着上一次的成果,将项目的设计落地,继续完善设计类图,并在正式开始开发之前设计好系统和数据库、制定好计划和分工;
磨刀不误砍柴工,希望大家重视这次作业,为下一次的团队Alpha冲刺作业提前做好准备。
作业正文 用心聚落步——项目系统设计与数据库设计
github地址 项目地址
其他参考文献

一、 团队项目的预期开发计划时间安排

二、 团队项目的预期开发计划分工安排

组员 学号 角色 设计阶段分工 开发阶段分工 测试阶段分工 部署阶段分工
李英梦 211706181 前端 1.前端视图层及控制层(Nodejs)
2.后端架构
3.职责分配
4.确定人员配备
5.制定开发接口
页面渲染 1.API完成之前,模拟测试
2.API完成之后,接口对接
利用nginx 做反向代理
林航 211706186 后端 1.后端控制层(estRful API)
2.后端架构
3.制定开发接口
提供Restful API,并给出详细文档说明 1.API完成之前,单元测试
2.API完成之后,接口对接
利用nginx 做反向代理
林汐 211706528 前端 1.前端视图层
2.API风格
3.制定开发接口
页面渲染 1.API完成之前,模拟测试
2.API完成之后,接口对接
利用nginx 做反向代理
赵帅 211706218 前端 1.前端视图层
2.制定开发接口
页面渲染 1.API完成之前,模拟测试
2.API完成之后,接口对接
利用nginx 做反向代理
陈锦玲 211706104 前端 1.前端控制层(Nodejs)
2.制定开发接口
页面渲染工作 1.API完成之前,模拟测试
2.API完成之后,接口对接
利用nginx 做反向代理
冉斌 211706123 后端 1.后端服务层
2.制定开发接口
提供Restful API,并给出详细文档说明 1.API完成之前,单元测试
2.API完成之后,接口对接
利用nginx 做反向代理
林浩洋 211706119 后端 1.后端数据访问层
2.制定开发接口
提供Restful API,并给出详细文档说明 1.API完成之前,单元测试
2.API完成之后,接口对接
利用nginx 做反向代理
沈志宏 211706124 前端 1.前端控制层(Nodejs)
2.开发协助模式
3.制定开发接口
页面渲染工作 1.API完成之前,模拟测试
2.API完成之后,接口对接
利用nginx 做反向代理

 

三、 设计图表及思路

体系结构设计

功能模块层次图

该功能模块图分为两个模块:用户端与管理员端。学生端拥有注册登录功能、加入创建小组、聊天功能、查看他人消息、举报他人功能以及个人信息管理功能,管理员端拥有用户信息管理,举报核实功能,还有小组管理功能

类图

我们设计了用户、组员、组长、辅导老师类,各类所拥有的属性、操作以及各类之间的关系如下图,组员、组长、辅导老师都继承于用户类。

ER分析

整体ER图

我们有管理员、小组、用户三个实体,管理员与用户之间为多对多,用户与小组之间为多对一,管理员与小组之间为多对多。

局部ER图

用户模块

用户功能

管理员

管理员功能

小组

小组功能

表结构设计

user表用来存储用户的个人信息
小组表用来存储小组的相关信息
管理员表用来存储管理员的个人信息
辅导老师表用来存储辅导员的个人信息

模式

表结构

User表

team表

Admin表

Teacher表

系统安全和权限设计

权限设计

权限 注册 登录 创建小组 加入小组 修改个人信息 修改密码 查看用户信息 删除小组 删除用户
组员
组长
管理员
辅导老师
系统管理员 重置

系统安全设计

数据库安全保密

  • 首先对用户发出实名登记注册的请求进行认证,身份正确并且合法的用户才能登录和操作。同时,系统对每个人的身份信息建立保护措施。
  • 权限限制:本产品软件的数据库中对普通用户的访问控制设置权限,以防消息泄露。
  • 最小权限原则:降低代码在被恶意用户利用时,造成的损失。
  • 备份与恢复:本产品软件数据库采用记录生产日志文件、个人信誉度备份等方式保证信息安全。
  • 审计:对于服务端每一次非自动的数据库操作进行审计记录,方便事后追究,控制数据泄露。

Web安全防御

  • 首先,常见的web安全问题.CSRF比较多,全称是跨站请求伪造(cross site request forgery),指通过伪装成受信任用户的进行访问,通俗的讲就是说我访问了A网站,然后cookie存在了浏览器,然后我又访问了一个流氓网站,不小心点了流氓网站一个链接(向A发送请求),这个时候流氓网站利用了我的身份对A进行了访问。
    这个问题主要是因为用户本地存储cookie,攻击者利用用户的cookie进行认证,然后伪造用户发出请求。
    在我们的应用中大多采取实名认证,资料比较真实,若这些个人资料流露出去将会给用户带来很大麻烦,所以我们在这方面要很重视,必须保证用户的资料安全。具体实施是避免cookie认证,采用token认证,每一个提交的表单随机生成一个token存储在session中,每次验证表单token,检查token是否正确。

  • 其次,XSS问题。全称是跨站脚本攻击(Cross Site Scripting),指攻击者在网页中嵌入恶意脚本程序。然后用户不小心直接下载到本地数据库,下次使用时执行了该脚本,那么就调入陷阱了。这个问题我们可以转移和过滤用户提交的信息,将输入的数据进行转义处理,比如说讲 < 转义成&lt;
    Session攻击我们还是可以用token校验来避免

  • SQL注入是通过sql命令伪装成正常的http请求参数,传递到服务器端,服务器执行sql命令造成对数据库进行攻击
    我们防御措施:在java中,我们可以使用预编译语句(PreparedStatement),这样的话即使我们使用sql语句伪造成参数,到了服务端的时候,这个伪造sql语句的参数也只是简单的字符,并不能起到攻击的作用。

四、 需求分析作业的改进部分和改进过程

日期 版本 说明 作者
2020.3.31 V1.0 初版 全体组员
2020.4.1 V2.0 修改了验收标准,用户场景,用户功能,增加页眉页脚,图名表名和封面。 全体组员

五、 这次作业的工作流程、组员分工、组员贡献度比例

工作流程

泳道图

组员分工及组员贡献度比例

组员 学号 分工安排 贡献
李英梦 211706181 分配任务、体系结构设计、工作流程图、时间流图、修改类图 、汇总审查、编写博客 14%
林航 211706186 需求分析规划说明书优化、系统设计说明书(接口设计)、UML类图 、优化 、审查、优化博客 13%
林汐 211706528 数据库设计说明书(数据字典)、ppt制作 、审查、优化博客 13%
赵帅 211706218 数据库设计说明书(文档编写)、审查、优化博客 11%
陈锦玲 211706104 ER图、数据库设计说明书(文档编写)、审查、优化博客 13%
冉斌 211706123 UML用例图、系统设计说明书(文档编写)、审查、优化博客 11%
林浩洋 211706119 系统设计说明书(系统出错处理设计、系统功能设计)、数据库设计说明书(文档编写) 、审查、优化博客 13%
沈志宏 211706124 数据库设计说明(大纲设计)、审查、优化博客 12%

六、 github仓库链接和文档的下载链接或在线预览链接

仓库地址

数据库设计说明书 提取码:n2u3

系统设计说明书 提取码:Tlj2

数据库设计说明书 提取码:3201

云展网下载地址

posted @ 2020-04-21 22:07  用心聚落步  阅读(540)  评论(2编辑  收藏  举报