团队作业第四次—项目系统设计与数据库设计
这个作业属于哪个课程 | 课程地址 |
---|---|
这个作业要求在哪里 | 作业地址 |
团队名称 | 豌豆射手 |
这个作业的目标 | 团队作业第三次—项目需求分析 |
作业正文 | 作业正文地址 |
其他参考文献 | 《构建之法现代软件工程》 |
预期开发计划时间安排(里程碑)
序号 | 工作内容 | 最晚截止时间 | 负责人 | 备注 |
---|---|---|---|---|
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 |