这个作业属于哪个课程 | 2020春季软件工程W班 |
---|---|
这个作业要求在哪里 | 团队作业第四次 |
这个作业的目标 | 项目系统设计与数据库设计 |
作业正文 | 本文链接 |
其他参考文献 | 《构建之法》 |
Part 1 团队项目的预期开发计划时间安排
周次 | 日期 | 任务 |
---|---|---|
1 | 4.13~4.19 | 完成数据模型层编写,与数据库能正常交互,学习开发框架 |
2 | 4.20~4.26 | 学习开发框架,设计审核,敏感词验证等算法 |
3 | 4.27~5.3 | 完成热点话题查看,新增,查询等功能,登录 |
4 | 5.4~5.10 | 完成热点话题的评论,点赞,回复等功能,课程与新闻模块的查询与查看 |
5 | 5.11~5.17 | 完成课程模块的评论,个人信息修改,标签管理 |
6 | 5.18~5.24 | 完成收藏夹新增,添加,删除 |
7 | 5.25~5.31 | 完成话题评论审核功能 |
8 | 6.1~6.7 | 总体测试,修改bug,有余力完成拓展功能 |
Part 2 团队项目的预期开发计划分工安排
学号 | 分工 |
---|---|
221701436 | 前端,UI设计,代码及功能审核 |
221701435 | 前端,交互设计 |
221701426 | 后端,主攻算法 |
221701402 | 后端,持久层及基础功能 |
221701401 | 后端,业务逻辑设计 |
181700141 | 后端,控制层及前后端交互 |
221701309 | 后端,基础功能设计 |
221701403 | 测试人员 |
Part 3 相关设计图
A.体系结构设计&功能模块层次图
体系结构设计
系统一共分为三层:
(1)表现层,使用vue.js框架来进行前端开发
(2)应用层,使用spring boot框架进行后端开发,适合敏捷开发,学习成本低:
(3)数据层,使用MySQL作为数据源,简单易用,免费:
功能模块层次图
B.设计类图
C.ER分析&表结构设计
ER分析图
表结构设计
学生用户表user:用于存储学生用户信息
管理员表adminuser:用于存储管理员信息
话题表topic:存储已发布话题内容(不含待审核)
新闻表news:用于存储已发布的新闻内容
标签表tag:用于存储发布话题时可供选择的标签
话题-标签表topic-tag:用于存储话题和标签的对应关系
课程信息表courseInfo:用于存储课程信息
教师信息表teacherInfo:用于存储教师信息
课程-教师表course-teacher:用于存储课程与教师的对应关系
待审核的话题表ReviewTopics:用于存储待审核话题信息
待审核的评论表ReviewComments:用于存储待审核评论信息
话题评论表Comment:记录用户话题评论的相关信息。
评论回复表Reply:记录用户评论回复的相关信息。
课程-教师评论表CTComment:记录用户课程教师评论的相关信息。
收藏夹favlist:用于存储用户收藏的内容(话题和新闻)
收藏夹-话题及新闻表favlist-item:用于存储收藏夹里面的新闻和话题的对应关系
话题赞/踩表Topiclikes:用于存储用户和话题点赞(踩)对应关系
评论(回复)赞/踩表Commentlikes:用于存储用户对评论(或评论的回复)点赞(踩)对应关系
D.系统安全和权限设计
a.用户分类
用户分为普通用户和管理员用户,普通用户均为在校学生管理员用户可以管理普通用户对用户发布的内容进行审核以防止恶意消息。
b.内容审核
通过机器审核以人工审核为辅助,防止敏感消息和刷热度消息发布出去,避免造成恶劣影响。同时防止XSS注入来提高系统安全性。
c.加密算法
对用户密码和匿名信息进行DES加密。
Part 4 问题反馈&思考
Q1:两个制作原型小组如何保证界面风格的一致性?
答:刚开始确实没分配好,两个制作小组有两个版本,导致最终整合的时候版本不统一,最终只能推翻重来。这次经历后发现这样效率实在是太慢了,应该先绘制大体结构,决定好色调等,共用的内容。实现约定布局和风格,做出统一模板。吸取教训之后,我们先写好一个主要页面,然后按照其风格整合,基本内容一致,复制也快。
Q2:选题中有一点“高效解决问题”这点在原型中何处体现?
答:之前每个人做一点,效率其实很慢,每个人风格都不一样也比较难整合,而且时间都花在讨论上。高效的前提,我觉得应该是方向明确,需求确定,这些都是在有效的讨论为基础的前提下。热度高的话题,用户感兴趣的话题,优先推送。
Q3:查询部分支持模糊查询吗?
答:支持。
Q4:收藏夹支持进行管理吗?
答:支持,希望把收藏夹弄得井井有条一些,用户看起来也比较舒服。
Q5:收藏夹支持分类标签吗?否则收藏的东西多了的话,就难以查找
答:支持,收藏的目的就是方便用户,再次浏览感兴趣,需要的内容,如果一个东西太过于凌乱,那么用户使用的念头就没有那么明显了,还不如历史记录,所以我觉得是有必要的。
Q6:推送有没有考虑结合算法?还是就单纯考虑点击量?
答:当然结合算法,只看点击量,那么推送很有可能都是些,大部分用户不感兴趣的东西,个人觉得应该结合浏览量,点赞数,用户等级等。有用热度,按照点赞浏览量占比例进行计算
Q7:如何防止刷热度的现象?
答:防止刷热度,根据结合的算法,应该是利用函数。值越大曲线越接近于平滑,通过结合算法,来计算热度。
Part 5 组员贡献度比例
学号 | 工作内容 | 贡献度 |
---|---|---|
221701436 | 带领小组讨论,数据流图绘制,ER图绘制,数据约束制定 | 18% |
221701435 | 功能模块设计,软件结构体系设计,接口设计 | 14% |
181700141 | 数据库概念模型设计,数据库设计文档汇总 | 14% |
221701402 | 功能模块设计,文档整合 | 12% |
221701403 | 接口设计汇总,PPT制作 | 10% |
221701309 | 功能模块设计,博客撰写 | 12% |
221701401 | 功能模块设计等 | 10% |
221701426 | 功能模块设计等 | 10% |