这座城市多了十只伤心的鸽——项目系统设计与数据库设计
这个作业属于哪个课程 | 2021春软件工程实践|W班 (福州大学) |
---|---|
这个作业要求在哪里 | 团队第四次作业 |
这个作业的目标 | 项目系统设计与数据库设计 |
团队名称 | 这座城市多了十只伤心的鸽 |
其他参考文献 | 《软件工程术语(GBT11475-1995)》 《软件设计文档国家标准_GB8567--88》 |
目录
1.开发计划——时间安排
时间周期 | 计划内容 |
---|---|
(第八周)4.21 - 4.25 | 前端:后台:项目脚手架搭建、实现页面路由及对应的菜单栏,前台:小程序项目配置、小程序页面显示及导航配置;后端: 数据库设计、后端开发框架搭建 |
(第九周)4.26 - 5.2 | 前端:后台:完成登入、发布项目页面,前台:完成主页、项目详情制作;后端:完成数据库层与控制器层交互文档的编写、完成缓存访问的控制器设计 |
(第十周)5.3 - 5.9 | 前端:后台:完成管理项目、项目详情页面,前台:完成反馈、报名页面制作;后端:完成数据库层的代码编写与调试、完成接口文档的编写 |
(第十一周)5.10 - 5.16 | 前端:后台:完成用户管理、用户详情页面,前台:完成项目相关页面制作;后端:完成控制器层的代码编写与调试、对后端数据安全层进行封装 |
(第十二周)5.17 - 5.23 | 前端:后台:完成收藏、账户管理、回收站页面,前台:我的相关页面制作;后端:构造数据库测试数据、确保控制器层的正确反馈 |
(第十三周)5.24 - 5.30 | 前端:后台:完善接口请求工具模块、完成发布项目、管理项目的动态操作以及全部页面的跳转、搜索函数,前台:完善接口请求工具模块、完善页面跳转逻辑、实现项目报名相关动态功能;后端:完成接口的编写和调试、并部署到云服务器 |
(第十四周)5.31 - 6.6 | 前后端联调,前端接入后端接口并进行测试 |
(第十五周)6.7 - 6.13 | 前端:页面加载与分辨率适配优化、体验优化、功能测试;项目部署上线 |
2.开发计划——分工安排
学号 | 姓名 | 角色 | 负责开发部分 |
---|---|---|---|
221801102 | 唐德宇 | 后端开发 | 前台接口 |
221801107 | 谢乐如 | 前端开发 | Web前端 |
221801129 | 许鹏宇 | 后端开发 | 前台接口 |
221801213 | 郭达宇 | PM | 整体设计 |
221801221 | 龚海旭 | 后端开发 | 后台接口 |
221801306 | 程文健 | 前端开发 | Web前端 |
221801311 | 郭晗宇 | 前端开发 | 小程序 |
221801313 | 方燮楠 | 后端开发 | 后台接口 |
221801320 | 陈子傲 | PM | 项目跟进 |
291800139 | 周睿思 | PM | 整体设计 |
3.结构设计
体系结构设计
功能模块层次图
E-R图
设计思路
- 设计原则
- 尽量减小实体集,能作为属性时不要作为实体集。
- “属性”不能再具有需要描述的性质。“属性”必须是不可分割的数据项,不能包括其他属性。
- “属性”不能与其他实体具有联系。在E-R中所有的联系必须是实体间的联系,而不能有属性与实体之间的联系。
- 针对特定用户的应用,确定实体、属性和实体间的联系,设计该用户视图的局部E-R图。
- 综合局部E-R图,产生出总体E-R图。在综合过程中,同名实体只能出现一次,并去掉不必要的联系,以便消除冗余。一般来说,从总体E-R图必须能导出原来的所有局部视图,包括实体、属性和联系。
- 设计方法
- 选择局部应用:根据某个系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图作为设计分E-R图的出发点 。
- 逐一设计分E-R图:将数据字典中的数据抽取出来,参照数据流图,设计出E-R图,再作必要的调整。
- 调整原则:为简化图的处置,现实世界中的事物能作为属性对待的,尽量作为属性对待。作为“属性”,不能再具有描述的性质,也不能与其他实体具有联系。
4.设计类图&系统安全与权限设计
设计类图
设计思路
-
客户端(Client)
登录后
- 可以参加管理员发布的项目
- 可以对项目发布反馈
- 可以对项目发起投票
-
管理员(Admin)
对于每个管理员
- 拥有不同的角色,对应不同的操作权限
- 可以发布与管理多个项目
- 可以收藏项目
-
投票(Vote)
对于每个投票
- 拥有多个选项
系统安全
- 通过预编译的方式执行SQL语句,避免SQL注入
- 使用JWT进行身份认证管理,保持http无状态的前提下管理权限
- 对特殊字符进行转义,避免简单XSS攻击
- 添加CSRF token,避免简单CSRF攻击
- 维护IP黑名单,对于短期内发起大量 HTTP请求/TCP连接请求 的IP进行封禁处理,避免简单DDOS(SYN)攻击
权限设计
- 超级管理员:可以赋予用户管理员权限
- 管理员:可以进行一些特权操作
- 用户:普通操作
5.改进部分
类图修改
改进过程
- 增加了报名用户这个中间类,将项目子项和报名用户之间改成多对多关系
- 在类图设计方面存在一些小错误,组内发现了问题并且解决
- 让用户项不必和项目子项直接挂钩
- 同时由一对多转换成多对多的对应关系
6.作业过程
工作流程
- 前后端开发组员,进行系统结构、功能模块和数据库设计的讨论
- 前端进行UI设计;后端数据库建表,并完成E-R分析、表结构设计等
- 前后端共同讨论完成接口设计
- 前后端共同协作PM完成相关文档编写和PPT制作
组员分工
学号 | 工作内容 | 贡献度 |
---|---|---|
221801102 | 数据库设计及相关设计图绘制,参与数据库设计 | 8 |
221801107 | 参与数据库设计,编写系统设计说明书 | 8 |
221801129 | 编写博客、整理工作流程与人员安排 | 12 |
221801213 | 参与编写系统设计说明书,编写博客 | 12 |
221801221 | 数据库设计及相关设计图绘制,参与数据库设计 | 8 |
221801306 | 编写博客、整理改进内容、制作评审表 | 12 |
221801311 | 时间计划安排、PPT制作 | 8 |
221801313 | 参与数据库设计,编写数据库设计说明书 | 8 |
221801320 | 统筹、编写系统设计说明书、整理之前的问题 | 12 |
291800139 | 参与编写系统设计说明书,编写博客 | 12 |