这个作业属于哪个课程

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.结构设计

体系结构设计

这座城市多了十只伤心的鸽——项目系统设计与数据库设计_数据库

功能模块层次图

这座城市多了十只伤心的鸽——项目系统设计与数据库设计_数据库_02

E-R图

这座城市多了十只伤心的鸽——项目系统设计与数据库设计_数据库_03

设计思路

  • 设计原则
  • 尽量减小实体集,能作为属性时不要作为实体集。
  • “属性”不能再具有需要描述的性质。“属性”必须是不可分割的数据项,不能包括其他属性。
  • “属性”不能与其他实体具有联系。在E-R中所有的联系必须是实体间的联系,而不能有属性与实体之间的联系。
  • 针对特定用户的应用,确定实体、属性和实体间的联系,设计该用户视图的局部E-R图。
  • 综合局部E-R图,产生出总体E-R图。在综合过程中,同名实体只能出现一次,并去掉不必要的联系,以便消除冗余。一般来说,从总体E-R图必须能导出原来的所有局部视图,包括实体、属性和联系。
  • 设计方法
  • 选择局部应用:根据某个系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图作为设计分E-R图的出发点 。
  • 逐一设计分E-R图:将数据字典中的数据抽取出来,参照数据流图,设计出E-R图,再作必要的调整。
  • 调整原则:为简化图的处置,现实世界中的事物能作为属性对待的,尽量作为属性对待。作为“属性”,不能再具有描述的性质,也不能与其他实体具有联系。

4.设计类图&系统安全与权限设计

设计类图

这座城市多了十只伤心的鸽——项目系统设计与数据库设计_数据库_04

设计思路

  • 客户端(Client)登录后
  • 可以参加管理员发布的项目
  • 可以对项目发布反馈
  • 可以对项目发起投票
  • 管理员(Admin)对于每个管理员
  • 拥有不同的角色,对应不同的操作权限
  • 可以发布与管理多个项目
  • 可以收藏项目
  • 投票(Vote)对于每个投票
  • 拥有多个选项

系统安全

  1. 通过预编译的方式执行SQL语句,避免SQL注入
  2. 使用JWT进行身份认证管理,保持http无状态的前提下管理权限
  3. 对特殊字符进行转义,避免简单XSS攻击
  4. 添加CSRF token,避免简单CSRF攻击
  5. 维护IP黑名单,对于短期内发起大量 HTTP请求/TCP连接请求 的IP进行封禁处理,避免简单DDOS(SYN)攻击

权限设计

  1. 超级管理员:可以赋予用户管理员权限
  2. 管理员:可以进行一些特权操作
  3. 用户:普通操作

5.改进部分

类图修改

这座城市多了十只伤心的鸽——项目系统设计与数据库设计_数据库_05

改进过程

  • 增加了报名用户这个中间类,将项目子项和报名用户之间改成多对多关系
  • 在类图设计方面存在一些小错误,组内发现了问题并且解决
  • 让用户项不必和项目子项直接挂钩
  • 同时由一对多转换成多对多的对应关系

6.作业过程

工作流程

  1. 前后端开发组员,进行系统结构、功能模块和数据库设计的讨论
  2. 前端进行UI设计;后端数据库建表,并完成E-R分析、表结构设计等
  3. 前后端共同讨论完成接口设计
  4. 前后端共同协作PM完成相关文档编写和PPT制作

组员分工

学号

工作内容

贡献度

221801102

数据库设计及相关设计图绘制,参与数据库设计

8

221801107

参与数据库设计,编写系统设计说明书

8

221801129

编写博客、整理工作流程与人员安排

12

221801213

参与编写系统设计说明书,编写博客

12

221801221

数据库设计及相关设计图绘制,参与数据库设计

8

221801306

编写博客、整理改进内容、制作评审表

12

221801311

时间计划安排、PPT制作

8

221801313

参与数据库设计,编写数据库设计说明书

8

221801320

统筹、编写系统设计说明书、整理之前的问题

12

291800139

参与编写系统设计说明书,编写博客

12

7.团队链接

​github团队仓库链接​

​这座城市多了十只伤心的鸽_系统设计说明书.pdf​

​这座城市多了十只伤心的鸽_数据库设计说明书.pdf​

​这座城市多了十只伤心的鸽_系统设计和数据库设计答辩PPT.pdf​