团队作业第四次—项目系统设计与数据库设计

这个作业属于哪个课程 课程地址
这个作业要求在哪里 作业地址
团队名称 豌豆射手
这个作业的目标 团队作业第三次—项目需求分析
作业正文 作业正文地址
其他参考文献 《构建之法现代软件工程》

预期开发计划时间安排(里程碑)

序号 工作内容 最晚截止时间 负责人 备注
1 项目选题 2020-03-15 全员 已完成
2 原型设计讨论 2020-03-23 全员 已完成
3 需求分析讨论 2020-03-28 全员 已完成
4 系统设计与数据库设计 2020-04-13 全员
6 召开讨论会分配个人具体工作,给出代码统一规范 2020-04-13 前后端各司其职
5 学习开发工具以及语言框架知识等,汇报学习情况 2020-04-20 全员 编码规范完成、平台环境搭建完成、初步架构搭建、接口复审、服务器部署
8 站立式会议+编码+测试+项目管理同步推进,发布Alpha版本 2020-05-04 全员 完成项目的核心功能开发,包括分享模块、个人中心模块、分布帖子模块、评论模块、管理员模块并测试
9 项目完善+用户使用反馈+测试计划改进 2020-05-11 全员 完成附加功能的开发以及根据用户反馈改进
10 站立时会议+测试+项目管理推进,发布Beta版本 2020-05-25 全员 完成分享其他平台、话题模块
11 正式版本完善+用户手册 2020-06-01 全员
12 正式版本发布、撰写宣传文案推广 2020-06-08 全员

预期开发计划分工安排

模块 前端 后端
个人中心模块 221701315 221701135
管理员模块 221701216 221701419
分享模块 221701315 221701334
帖子模块 021700531 221701239
评论模块 021700531 221701117
广场模块(包括热榜) 221701117 221701117
话题模块 221600137 221701419

功能模块设计

功能层次图

  说明:网站功能模块分为三个部分,针对未登录用户,已登录用户和管理员用户。网站分为前后台。针对未登录用户,可以查看热门推荐、排行榜单等可使用的功能,对于登录用户(session判断是否登陆),可以进入个人主页并且完成个人信息的修改以及帖子、评论的发布。管理员管理评论和帖子内容合法性。
  说明:从用户个人角度考虑用户的功能层次分析,从注册登录,到对个人信息的修改,以及搜索相关内容,发布帖子,评论。
  说明:对评论表,post表的内容审查,以及用户的密码找回功能。

网站功能模块设计

部分表格如下,详情见系统设计说明书:

管理员功能模块设计

部分内容如下,详情见系统设计说明书:

类图

  根据项目的需求可划分为如下描述的类图。用户类以id自增方式存储在用户表中,包含属性有用户名,MD5密码,昵称以及积分等,操作包括设置昵称,发布评论,关注,绑定其他平台账号。评论管理类,用户可通过发布分享,以及评论分享,评论类中还有自己调用自己,是个自循环类,同样,包括管理员账户管理类。其中包括发布的分享的状态,以及评论的状态,管理员赋予权限设置以管理后台数据,以及产品运行的过程不法用户的恶意操作,做及时的屏蔽账户,以及普通用户忘记密码等需要后台介入的操作。

体系结构设计

ER分析

  本次E-R设计存在3种一般性约束:一对一约束(联系)、一对多约束(联系)和多对多约束(联系),它们用来描述实体集之间的数量约束。上图描绘了整个系统的E-R图,分为很多模块,包括点赞模块、文章模块、用户模块、关注模块、相册模块、评论模块、分享模块。每个模块都描述实体的属性以及属性之间的联系。大多数都是多对多约束,所以中间类就显得十分重要,用于关联两个有多对多关联的实体。

表结构设计

部分表格如下,详情见系统设计说明书:

安全性和健壮性

对常见Web攻击的预防

1.XSS 跨站脚本攻击
处理:用户提交的博客信息进行转义处理。防止被窃取用户的cookie。
2.sql注入
处理:使用预编译语句,即使使用sql语句伪造成参数,到了服务端的时候,伪造sql语句的参数也只是简单的字符,并不能起到攻击的作用。

系统安全设计

1.数据传输安全性设计
  使用ssh2实现远程上传、下载、执行命令。SSH可以通过将联机的封包加密的技术进行资料的传递; 使用SSH可以把传输的所有数据进行加密,即使有人截获到数据也无法得到有用的信息。同时数据经过压缩,大大地加快了传输的速度。通过SSH的使用,可以确保资料传输比较安全并且传输效率较高。
2.应用系统安全性设计
  操作人的操作信息需要提供操作记录。对系统的异常信息需进行记录,已备以后查看。只有授权用户才能登录系统,对于某个操作,需要具有相应权限才能进行操作。
3.数据存储安全性设计
  对于用户的密码等敏感信息采用MD5进行加密。

权限设计

  以角色为基础的权限管理设计(RABC)
5.1基础表
  见表设计
  adminuser、auth_assignment、auth_item、auth_item_child表
  auth_assignment存储管理员id和权限
  auth_item存储权限的信息
  auth_item_child存储权限的上下级关系
5.2权限分配
  当前用户只能分配已有权限的子权限。
  创建新的管理员只能由唯一的超级管理员创建。
5.3权限验证
  权限控制在控制器里进行拦截。使用yii2框架的ACF(访问控制过滤器)进行过滤。

针对上次问题改进

建议 解决
多考虑一下用户习惯,添加交互性可能会更好一些 1.在用户与系统交互过程中多加一些反馈,比如登陆成功后提示早午晚安等。2.增加签到数赢积分规则,同时可以吸引用户。
需求分析不够,kano处理部分较少等 1.因为需求处理的部分主要针对不确定是否需要的需求作分析。2.我们是严格按照分析方法计算的。
类图可以在整理一下有些乱,另外评论功能的话,按照类图设计的话是不是不能指定对某个人回复 1.类图进行了修改2.评论功能可以针对具体的评论来评论,也就是子评论,通过关联评论id就可以处理子评论。
感觉整个需求文档对“作品”相关的功能讨论不足,比如作品类还比较简单;没有考虑给作品打分、写评论等问题。 1.修改了类图,将作品和评论相关联的类图完善。2.在类图中的post表增加了分数属性。

贡献度

学号 工作内容 贡献度
221701117 接口设计,文档整合,答辩 12
221600137 填写评审表 5
221701135 功能层次设计图 12
221701216 功能模块层次设计 12
221701239 E-R图 11.5
221701334 类图、表结构设计、系统安全和权限设计 12.5
221701419 目录、引言、测试计划、故障处理说明 11.5
021700531 兼容性要求,输入输出项 12
221701315 体系结构设计图形表示 11.5

github团队仓库链接

  github团队仓库点此进入链接

豌豆射手_系统设计说明书

  豌豆射手_系统设计说明书点此进入链接

豌豆射手_系统设计答辩PPT

  豌豆射手_系统设计答辩PPT点此进入链接

豌豆射手_数据库设计说明书

  豌豆射手_数据库设计说明书点此进入链接

豌豆射手_数据库设计答辩PPT

  豌豆射手_数据库设计答辩PPT点此进入链接

posted @ 2020-04-12 22:56  豌豆射手x  阅读(345)  评论(2编辑  收藏  举报