福大周润发队——项目系统设计与数据库设计

这个作业属于哪个课程 2021春软件工程实践S班 (福州大学)
这个作业要求在哪里 团队作业四——系统设计和数据库设计
团队名称 福大周润发队
团队成员 柯少彬、陈皓宇、梁扬新、陈杉、池毓地、李家成、黄凯荣、黄钰栋、陈力涵
这个作业的目标 完成团队开发的系统设计和数据库设计部分
其他参考文献 构建之法

预期开发计划时间安排

时间段 开发计划
4.24-4.30 客户端功能初步实现,单元测试同步进行
5.1-5.7 服务端功能初步实现,单元测试同步进行
5.8-5.14 客户端功能测试,主要是集成测试、系统测试
5.15-5.21 服务端功能测试,主要是集成测试、系统测试
5.22-5.28 客户端-服务端交互功能实现
5.29-6.4 客户端功能完善并测试
6.5-6.11 服务端功能完善并测试
6.12-6.18 总结完善系统,发布beta版

预期开发计划分工安排

人员 开发计划分工
041801114 前端、UI设计及编码(登录界面、主页)
031801124 前端、UI设计及编码(玩家准备界面)
031801133 前端、UI设计及编码(画图界面)
071808114 后端、游戏逻辑设计及开发(服务器与客户端连接部分)
131801208 后端、游戏逻辑设计及开发(你画我猜主游戏逻辑设计)
221801105 后端、游戏逻辑设计及开发(服务器与客户端连接部分)
221801109 前端、UI测试(测试登录界面、玩家准备界面
221801110 前端、UI测试(测试画图界面)
221801130 后端、游戏逻辑设计测试

上次需求分析作业中提出的问题、改进部分和改进过程

       1. 需求分析答辩时发现用况图有些问题,先补充一下最新的用况图:

      再补充一个活动图,如下:

      改进过程为:在需求分析答辩后,我们根据需求重新画了用况图,类图也有所变化,同时补充了活动图。

       2. 原型设计答辩提到一个问题,是“界面不够美观”。
      改进过程为:在alpha冲刺实现的过程中,再一次讨论UI的设计。

       3. 上次需求分析,助教评论了一个问题:

       “我觉得计划中少考虑了题库设计的内容,包括主题和结束后的tips;本组提出特别之处是“提供丰富的游戏内容和题材”,因此这个应该还挺关键的。”
       针对这个问题,我们在数据库设计阶段,ER图新增这两个功能,多建了两张表格,分别存储主题和结束后的tips。考虑是房主选择主题,在当局游戏结束页面后,显示tips。

体系结构设计

      游戏内设计:
      使用一个线程管理画板,实现画板的同步使用java中canvas,每次绘画的时候,都会把画的数据记录下来,发给服务器。服务器再发送给房间内的其他玩家和监管。精确到每个像素。如果要减轻服务器的压力,可以设置传递的方式,如果希望流畅,则可以设置采样的质量,(不同像素间的顺序超过某一值的时候,打包传递不同点的数据,再在其他玩家客户端上连接起来。)要实现清晰的画板视图,则采样的密集度就大一点,精确到像素级别。再用一个线程控制送礼,用一个线程控制聊天,再用一个线程控制回答问题。由各自线程和事件队列交互。再由各自的线程完成各自的请求。
      游戏外设计:
      游戏外的实现,主要通过createview获取各种不同的视图,不同的资料通过事件队列像服务器获取,通过不同类封装的方法,例如findgame来实现,事件的处理。

功能模块层次图

ER分析、表结构设计

      ER图如下:


      表结构设计如下:
设计的表名称如下:

其中,各个表的属性及约束设置如下:













      表之间的关联设计如下:
      Player_achievement 表中存储的是:玩家id 具体获得 成就id ,在achievement中存储的则是:所有的成就和成就id。这两张表中的achievementid属性是相关联的,player_title表和title同理。
      player_statistics表和statistics表存储的是玩家的信息,通过player_statistics中的具体信息和信息条数,例如n个小红花,来记录某个id的玩家已拥有的道具属性。玩家id相关联的表有friend和user表,一对好友left right和data来记录成为好友的时间,删除好友时只需要删除对应的关系表即可。

设计类图

      游戏内设计:

      游戏外设计:


      完整类图:

系统安全和权限设计

      系统安全:登陆传输的账号资料,通过某种加密方式传输(比如AES),防止电脑上的监听软件直接获取明文密码。如果数据库保存了敏感的数据,如密码等,你可能想将这些数据以加密的形式保存在数据库中。这样即使有人进入了你的数据库,并看到了这些数据,也很难获得其中的真实信息。 在应用程序的大量信息中,密码不应该以明文的形式保存,它们应该以加密的形式保存在数据库中。一般情况下,大多数系统,这其中包括MySQL本身都是使用哈希算法对敏感数据进行加密的。 哈希加密是单向加密,也就是说,被加密的字符串是无法得到原字符串的。这种方法使用很有限,一般只使用在密码验证或其它需要验证的地方。在比较时并不是 将加密字符串进行解密,而是将输入的字符串也使用同样的方法进行加密,再和数据库中的加密字符串进行比较。这样即使知道了算法并得到了加密字符串,也无法 还原最初的字符串。本次的用户密码数据库,就打算采用这种加密方式防止用户的账户密码泄露。
      权限设计分为,一般用户,和管理员用户,管理员用户可在游戏内旁观游戏,游戏内部也会具体设计出非法绘画的批判标准,但还需要具体的管理员去到现场验证,只有管理员有权限,更改房间状态,更改玩家状态,例如永久封号,一般玩家只有一般的权限,哪怕是作为房主,也只有在开始游戏之后才会临时被赋予某些权限,但这些权限只和游戏有关,和数据库无关。在user表中有对应的type用于存储用户类型判断是否是管理员用户。

工作流程

4.18-4.20 完善上次需求分析遗留下来的问题
4.21 系统设计
4.22 数据库设计
4.23 完成博客、文档撰写、答辩PPT

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

学号 工作内容 贡献度
041801114 实现体系结构设计、功能模块层次图 13.5%
031801124 实现类图设计、系统安全和权限设计 10.5%
031801133 实现类图设计、系统安全和权限设计 10.5%
071808114 实现ER分析、表结构设计 12.0%
131801208 实现ER分析、表结构设计 12.0%
221801105 完成评审表,参与设计和文档编写 10.0%
221801109 完成答辩PPT的制作,参与设计和文档编写 10.5%
221801110 撰写博客,参与设计和文档编写 10.5%
221801130 参与答辩,参与设计和文档编写 10.5%

链接

github团队仓库链接:https://github.com/FZUSESPR21/Draw-and-guess
福大周润发队_系统设计说明书.pdf:
(1)GitHub链接:https://github.com/FZUSESPR21/Draw-and-guess/blob/main/第4次作业/福大周润发队_系统设计说明书.pdf
(2)在线文档链接:https://www.kdocs.cn/l/ss3ebhvaP6R5
福大周润发队_数据库设计说明书.pdf:
(1)GitHub链接:https://github.com/FZUSESPR21/Draw-and-guess/blob/main/第4次作业/福大周润发队_数据库设计说明书.pdf
(2)在线文档链接:https://www.kdocs.cn/l/sc9psKkvXBCz
福大周润发队_系统设计和数据库设计答辩PPT.pdf:
(1)GitHub链接:https://github.com/FZUSESPR21/Draw-and-guess/blob/main/第4次作业/系统设计和数据库设计答辩PPT.pdf
(2)在线文档链接:https://www.kdocs.cn/l/sfe6b7sHn7zl

posted @ 2021-04-20 13:23  福大周润发  阅读(121)  评论(7编辑  收藏  举报