团队作业3--需求改进&系统设计
团队作业3-需求改进&系统设计
这个作业属于哪个课 | 计科22级1班 |
---|---|
这个作业要求在哪里 | 团队作业3--需求改进&系统设计 |
这个作业的目标 | 对需求进行改进,给出系统的架构设计,制定Alpha任务分配计划和测试计划 |
一、团队展示
- 队名:FJFC
- 队员:
队员 | 学号 | 擅长技术 | 分工 |
---|---|---|---|
韩其锟 | 3122004348 | 后台测试,JAVA | 后端测试 |
范志杰(队长) | 3122004345 | 前端开发,JS,CSS,HTML | 前端测试 |
余海鸿 | 3119006813 | C,JAVA | 复审测试 |
杨文聪 | 3122004372 | C,JAVA | 文档测试 |
二、需求&原型改进
1.需求改进:
- 问题一:项目里面有涉及到扩展功能:实现AI智能回答
解答:老师建议我们可以把主要精力放在AI这块功能上,因为这块功能可扩张的东西很多,而且实现后对用户的帮助是非常大的。 - 问题二:博客论坛
解答:在博客论坛中的话,他的主要功能就是让用户能够讨论他们所遇到的问题,也能让他们获取到相应的知识,你可以将上面的AI智能回答功能集成到这个论坛中,让用户能够提问,然后AI智能回答,这样用户就能获取到他们想要的知识了。
2.完善需求规格说明书
《需求规格说明书》初稿的不足:
用户反馈机制不明确:虽然提到了用户反馈,但没有具体说明如何收集和处理用户反馈,以及如何将反馈整合到产品迭代中。
改进内容
- 制定详细的用户反馈收集计划,包括调查问卷、用户访谈、在线反馈表单等。
- 设立专门的角色负责用户反馈的收集、整理和分析,并确保反馈能够及时反映到产品改进中。
3.参考《构建之法》5节功能的定位和优先级,给出功能分析的四个象限
外围功能 | 杀手功能 | |
---|---|---|
必须要求 | 发布文章 | 文章搜索 |
辅助要求 | 私信聊天 | 点赞关注 |
4.根据修改后的需求,调整任务分解WBS及相应的项目进度计划
三、系统设计
后端架构设计
后端系统使用经典的三层架构,总体分为控制层、服务层、存储层三层大,除此之外,在控制层之上还有权限管理层、Servlet层等。
- 顶层服务:前端发送的HTTP请求会首先到达SpringBoot自带的Tomcat服务器,使用线程池中的一个线程处理请求,请求经过Servlet层转化为Java后端的HttpServlet请求,接着由权限管理层验证用户是否登录、请求资源是否合法等,系统在用户登录后会生成Token并存储在Redis数据库中,然后使用Cookie注入的方式将Token注入到请求头中,之后的请求都会携带Cookie,可被权限管理层识别,这个过程由Java权限认证框架Sa-Token完成。
- 控制层:控制层用于编写系统接口,定义请求类型、响应类型等,收到合法请求后会请求服务层,处理完成数据后返回,使用SpringMVC框架编写。
- 服务层:服务层用于处理核心的业务流程,会根据业务类型划分多个服务,对应多个Java接口和实现类,处理业务包括数据解析、数据处理、数据查询、数据聚合、数据转化等,同时服务处也会调用OSS对象存储API将图片文件等对象数据存储于远程服务器。
- 存储层:存储层负责直接与数据库交互,服务层不需要关心数据库增删改查的实现,只需要调用存储层方法即可得到想要的数据或完成数据库操作,使用MyBatisPlus框架实现无SQL编写的ORM操作,这一层也包括了数据库表对应的Java实体类。
数据库表设计
文章表 (article)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
user_id | int | 否 | NULL | 用户id |
title | varchar(255) | 否 | NULL | 标题 |
type | varchar(255) | 否 | NULL | 类型 |
content | varchar(1024) | 否 | NULL | 内容 |
summary | varchar(512) | 否 | NULL | 概述 |
images | varchar(1024) | 否 | NULL | 图片 |
status | int | 是 | 0 | 状态 |
create_time | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 |
update_time | datetime | 是 | CURRENT_TIMESTAMP | 修改时间 |
文章类型表 (article_type)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
name | varchar(64) | 否 | NULL | 名称 |
收藏表 (collected)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
user_id | int | 否 | NULL | 用户id |
article_id | int | 否 | NULL | 文章id |
time | datetime | 是 | CURRENT_TIMESTAMP | 时间 |
评论表 (comment)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
article_id | int | 否 | NULL | 文章id |
user_id | int | 否 | NULL | 用户id |
parent_id | int | 否 | NULL | 父评论id |
content | varchar(255) | 否 | NULL | 内容 |
status | int | 是 | 0 | 状态 |
create_time | datetime | 是 | CURRENT_TIMESTAMP | 创建时间 |
update_time | datetime | 是 | CURRENT_TIMESTAMP | 更新时间 |
关注表 (follows)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
user_id | int | 否 | NULL | 用户id |
follows_id | int | 否 | NULL | 关注用户id |
time | datetime | 是 | CURRENT_TIMESTAMP | 创建时间 |
点赞表 (liked)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
user_id | int | 否 | NULL | 用户id |
article_id | int | 否 | NULL | 文章id |
time | datetime | 是 | CURRENT_TIMESTAMP | 时间 |
通知表 (notice)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
user_id | int | 是 | 用户id | |
content | varchar(100) | 是 | 内容 | |
type | int | 是 | 0 | 类型 |
status | int | 是 | 0 | 状态 |
read | tinyint(1) | 是 | 0 | 是否已读 |
create_time | datetime | 是 | CURRENT_TIMESTAMP | 创建时间 |
用户表 (user)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
username | varchar(255) | 是 | 用户名 | |
password | varchar(255) | 是 | 密码 | |
avatar | varchar(255) | 否 | NULL | 头像 |
intro | varchar(255) | 否 | NULL | 介绍 |
varchar(255) | 否 | NULL | 邮箱 | |
status | int | 是 | 1 | 状态 |
create_time | datetime | 是 | CURRENT_TIMESTAMP | 创建时间 |
update_time | datetime | 是 | CURRENT_TIMESTAMP | 更新时间 |
用户详情表 (user_details)
列名 | 数据类型 | 是否非空 | 默认值 | 备注 |
---|---|---|---|---|
id | int | 是 | 主键,自增 | |
user_id | int | 是 | 用户id | |
gender | tinyint(1) | 否 | NULL | 性别 |
birthday | date | 否 | NULL | 生日 |
org_name | varchar(255) | 否 | NULL | 机构名称 |
org_type | int | 否 | NULL | 机构类型 |
org_number | varchar(255) | 否 | NULL | 机构编号 |
org_identity_status | int | 是 | 0 | 机构身份状态 |
extra_info | varchar(2048) | 否 | NULL | 额外信息 |
create_time | datetime | 是 | CURRENT_TIMESTAMP | 创建时间 |
update_time | datetime | 是 | CURRENT_TIMESTAMP | 更新时间 |
四、Alpha任务分配计划
1.Product Backlog和Sprint Backlog
五、测试计划
1、产品描述
本项目是一个类似CSDN或稀土掘金的技术博客社区,主要用于个人分享技术文章、传播技术知识。社区提供发表文章、评论回复、点赞关注等基础功能,同时还提文章搜索、私信聊天、系统通知等高级功能。
2、测试方案
用户界面测试:检查前端界面的显示效果和所有标签元素的正确性。
数据库连接测试:确保系统能够顺利连接数据库并进行数据交互。
工具类测试:对后端支持数据库操作和前端交互的工具类进行测试,以保证系统功能正常。
安全测试:对代码执行环境进行综合安全测试,包括时间限制、内存管理、网络隔离和权限控制等方面。
3、测试时间安排
测试将与开发阶段并行进行,每个功能模块开发完成后立即开展测试工作。
4、测试团队
测试任务主要由项目组中的两名测试专员负责执行,其他团队成员将根据测试需求提供必要的协助。