团队作业3--需求改进&系统设计
团队作业3--需求改进&系统设计
| 项目 | 内容 |
|---|---|
| 所属课程 | https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience |
| 作业要求 | https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13473 |
| 作业目标 | 根据发布的项目时间规划,初步确立团队任务计划,将团队的任务计划添加到Coding的团队项目任务里 |
| GitHub仓库 | https://github.com/ywks1/library-system |
一、需求&原型改进
(一)课堂反馈问题及修改
问题1:用户权限划分不够细致
修改1:增加更细粒度的权限管理,区分学生、教师、社团负责人、图书馆管理员、系统管理员等多级权限
问题2:电子资源版权问题未考虑
修改2:增加电子资源版权声明和使用限制,设置在线阅读时间限制和下载权限控制
问题3:集体借阅流程风险控制不足
修改3:增加社团/班级借阅的审批流程,设置借阅数量上限和借阅期限控制
问题4:推荐算法缺乏冷启动机制
修改4:增加基于热门图书和分类的初始推荐,解决新用户无历史数据的问题
(二)用户调研与场景分析
用户痛点分析:
学生用户张同学:
- 使用前:需要到图书馆现场查询图书位置,经常找不到想要的书籍
- 使用后:通过手机APP实时查询图书状态,预约后直接到馆取书
- 核心痛点:时间浪费在找书上,借阅流程繁琐
图书馆管理员李老师:
- 使用前:手工记录借阅信息,统计报表工作量大
- 使用后:系统自动生成各类统计报表,工作量减少60%
- 核心痛点:重复性工作多,容易出错
(三)需求规格说明书改进
改进内容:
- 增加用户故事描述:
作为一名大二学生,当我需要借阅专业参考书时,我可以通过系统快速检索图书位置和可借状态,并在线预约,这样我就能节省找书时间,提高学习效率。
- 完善功能描述:
- 增加图书评论和评分功能
- 完善逾期处理机制(积分扣除、借阅权限限制)
- 增加图书捐赠和荐购功能
(四)功能分析四象限
功能优先级分析表:
| 功能重要性 | 高优先级 | 低优先级 |
|---|---|---|
| 用户核心需求 | 第一象限:杀手功能 • 图书检索 • 借阅归还 • 用户管理 |
第二象限:必要功能 • 数据统计 • 系统设置 • 权限管理 |
| 用户体验增强 | 第三象限:亮点功能 • 智能推荐 • 电子阅读 • 移动端支持 |
第四象限:辅助功能 • 图书评论 • 社交分享 • 个性化皮肤 |
(五)WBS及进度计划调整
项目进度甘特图:
gantt
title 图书管理系统开发进度计划
dateFormat YYYY-MM-DD
section 第一阶段:基础框架
团队组建与需求分析 :done, 2024-04-01, 7d
技术选型与架构设计 :done, 2024-04-08, 7d
数据库设计 :done, 2024-04-15, 5d
原型设计 :done, 2024-04-15, 5d
section 第二阶段:核心功能
用户管理模块开发 :active, 2024-04-22, 10d
图书管理模块开发 :active, 2024-04-22, 10d
借阅系统开发 :2024-04-25, 12d
前端基础框架搭建 :active, 2024-04-22, 8d
section 第三阶段:增强功能
推荐算法开发 :2024-05-06, 10d
电子资源模块 :2024-05-06, 8d
预约系统开发 :2024-05-10, 7d
移动端开发 :2024-05-13, 12d
section 第四阶段:测试优化
单元测试与集成测试 :2024-05-20, 7d
性能测试与安全测试 :2024-05-24, 5d
用户体验优化 :2024-05-27, 5d
系统调试与修复 :2024-05-29, 4d
section 第五阶段:部署上线
生产环境部署 :2024-06-03, 3d
用户培训与文档编写 :2024-06-05, 4d
项目总结与验收 :2024-06-07, 3d
二、系统设计
(一)系统架构设计
分层架构图:
graph TB
A[前端展示层] --> B[API网关层]
B --> C[业务应用层]
C --> D[数据访问层]
C --> E[缓存层]
D --> F[数据存储层]
subgraph A [前端展示层]
A1[Web用户端]
A2[移动APP]
A3[管理后台]
end
subgraph B [API网关层]
B1[路由转发]
B2[身份认证]
B3[限流熔断]
B4[日志记录]
end
subgraph C [业务应用层]
C1[用户服务]
C2[图书服务]
C3[借阅服务]
C4[推荐服务]
C5[预约服务]
end
subgraph D [数据访问层]
D1[MyBatis]
D2[JPA]
end
subgraph E [缓存层]
E1[Redis缓存]
E2[Session存储]
end
subgraph F [数据存储层]
F1[MySQL]
F2[文件存储]
end
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#e8f5e8
style D fill:#fff3e0
style E fill:#fce4ec
style F fill:#f1f8e9
微服务架构详情表:
| 服务模块 | 技术栈 | 主要职责 | 依赖服务 |
|---|---|---|---|
| 用户服务 | SpringBoot + JWT | 用户注册、登录、权限管理 | 无 |
| 图书服务 | SpringBoot + MyBatis | 图书信息管理、检索、分类 | 数据库服务 |
| 借阅服务 | SpringBoot + MyBatis | 借书、还书、续借、逾期处理 | 用户服务、图书服务 |
| 推荐服务 | SpringBoot + 机器学习 | 个性化图书推荐 | 用户服务、图书服务 |
| 预约服务 | SpringBoot + Redis | 图书预约、排队通知 | 用户服务、图书服务 |
(二)数据库设计
实体关系图:
erDiagram
USER {
bigint user_id PK "用户ID"
varchar username "用户名"
varchar password "密码"
varchar role "角色"
varchar email "邮箱"
varchar phone "手机号"
datetime create_time "创建时间"
}
BOOK {
bigint book_id PK "图书ID"
varchar isbn "ISBN号"
varchar title "书名"
varchar author "作者"
varchar publisher "出版社"
varchar category "分类"
int total_copies "总册数"
int available_copies "可借册数"
varchar location "馆藏位置"
}
BORROW_RECORD {
bigint record_id PK "记录ID"
bigint user_id FK "用户ID"
bigint book_id FK "图书ID"
date borrow_date "借阅日期"
date due_date "应还日期"
date return_date "实际归还日期"
varchar status "状态"
}
RESERVATION {
bigint reservation_id PK "预约ID"
bigint user_id FK "用户ID"
bigint book_id FK "图书ID"
datetime reserve_date "预约时间"
datetime expire_date "过期时间"
varchar status "状态"
}
EBOOK {
bigint ebook_id PK "电子书ID"
bigint book_id FK "关联图书ID"
varchar file_url "文件路径"
varchar file_format "文件格式"
bigint file_size "文件大小"
boolean online_readable "可在线阅读"
}
USER ||--o{ BORROW_RECORD : "借阅"
BOOK ||--o{ BORROW_RECORD : "被借阅"
USER ||--o{ RESERVATION : "预约"
BOOK ||--o{ RESERVATION : "被预约"
BOOK ||--o| EBOOK : "拥有电子版"
数据库表结构详情:
| 表名 | 字段数 | 索引数 | 预估数据量 | 说明 |
|---|---|---|---|---|
| USER | 12 | 3 | 10,000 | 用户基本信息表 |
| BOOK | 15 | 5 | 50,000 | 图书信息表 |
| BORROW_RECORD | 10 | 4 | 100,000 | 借阅记录表 |
| RESERVATION | 8 | 3 | 5,000 | 预约记录表 |
| EBOOK | 9 | 2 | 10,000 | 电子资源表 |
三、Alpha任务分配计划
(一)任务分解与分配
Alpha阶段Sprint Backlog:
| 模块 | 任务项 | 预估工时 | 负责人 | 优先级 | 状态 |
|---|---|---|---|---|---|
| 用户管理 | 用户注册登录功能 | 8h | 廖永祺 | P0 | ✅ |
| JWT令牌实现 | 6h | 廖永祺 | P0 | ✅ | |
| 权限控制中间件 | 8h | 廖永祺 | P0 | ⬜ | |
| 用户信息管理 | 6h | 廖永祺 | P1 | ⬜ | |
| 图书管理 | 图书CRUD操作 | 10h | 高扬鹏 | P0 | ✅ |
| 图书分类管理 | 6h | 高扬鹏 | P1 | ⬜ | |
| 高级检索功能 | 12h | 高扬鹏 | P0 | ⬜ | |
| 图书导入导出 | 8h | 高扬鹏 | P2 | ⬜ | |
| 借阅系统 | 借书业务流程 | 8h | 曾祥恩 | P0 | ✅ |
| 还书业务流程 | 6h | 曾祥恩 | P0 | ⬜ | |
| 续借功能 | 4h | 曾祥恩 | P1 | ⬜ | |
| 逾期处理 | 6h | 曾祥恩 | P1 | ⬜ | |
| 前端开发 | 登录页面实现 | 6h | 李炅佳 | P0 | ✅ |
| 主页布局设计 | 8h | 李炅佳 | P0 | ⬜ | |
| 图书列表页面 | 10h | 彭耿立 | P0 | ⬜ | |
| 借阅管理页面 | 8h | 彭耿立 | P0 | ⬜ | |
| 响应式适配 | 12h | 李炅佳 | P1 | ⬜ | |
| 测试部署 | 单元测试编写 | 12h | 谭钧灏 | P1 | ⬜ |
| 接口测试 | 8h | 谭钧灏 | P1 | ⬜ | |
| 环境部署配置 | 6h | 谭钧灏 | P0 | ⬜ |
(二)迭代冲刺计划
Alpha阶段迭代甘特图:
gantt
title Alpha阶段迭代冲刺计划(第11-12周)
dateFormat YYYY-MM-DD
axisFormat %m-%d
section 用户管理模块
用户注册登录 :done, 2024-04-22, 2d
权限控制实现 :done, 2024-04-24, 2d
用户信息管理 :active, 2024-04-26, 2d
section 图书管理模块
图书CRUD功能 :done, 2024-04-22, 3d
图书分类管理 :2024-04-25, 2d
高级检索功能 :2024-04-27, 3d
section 借阅系统模块
借书功能实现 :done, 2024-04-23, 2d
还书功能实现 :2024-04-25, 2d
续借逾期处理 :2024-04-29, 3d
section 前端开发
登录页面 :done, 2024-04-22, 2d
主页布局 :2024-04-24, 3d
图书列表页 :2024-04-26, 3d
借阅管理页 :2024-04-29, 3d
section 测试部署
单元测试 :2024-04-29, 3d
接口测试 :2024-05-03, 2d
环境部署 :2024-05-05, 2d
工作量统计图表:
| 成员 | 总工时 | 已完成 | 剩余工时 | 完成度 |
|---|---|---|---|---|
| 曾祥恩 | 24h | 8h | 16h | 33% |
| 李炅佳 | 26h | 6h | 20h | 23% |
| 彭耿立 | 18h | 0h | 18h | 0% |
| 高扬鹏 | 36h | 10h | 26h | 28% |
| 廖永祺 | 28h | 14h | 14h | 50% |
| 谭钧灏 | 26h | 0h | 26h | 0% |
四、测试计划
(一)测试策略与计划
测试阶段安排表:
| 测试阶段 | 时间周期 | 测试重点 | 负责人 | 完成标准 |
|---|---|---|---|---|
| 单元测试 | 第11-12周 | 核心业务逻辑 | 全体开发 | 代码覆盖率≥80% |
| 集成测试 | 第13周 | 模块接口集成 | 谭钧灏 | 接口通过率100% |
| 系统测试 | 第14周 | 端到端功能 | 谭钧灏 | 业务流程完整 |
| 性能测试 | 第14周 | 压力负载测试 | 谭钧灏 | 支持500并发 |
| 安全测试 | 第14周 | 权限安全漏洞 | 廖永祺 | 无高危漏洞 |
(二)测试环境配置
测试环境规格表:
| 环境组件 | 版本规格 | 配置要求 | 用途 |
|---|---|---|---|
| 应用服务器 | Tomcat 9.0 | 4核8G内存 | 后端服务部署 |
| 数据库 | MySQL 8.0 | 100G存储 | 数据持久化 |
| 缓存 | Redis 6.0 | 2G内存 | 会话缓存 |
| 前端服务器 | Nginx 1.18 | 2核4G内存 | 静态资源服务 |
| 测试工具 | JMeter 5.4 | - | 性能测试 |
(三)测试用例设计
核心功能测试矩阵:
| 测试场景 | 测试用例数 | 优先级 | 自动化程度 | 负责人 |
|---|---|---|---|---|
| 用户登录注册 | 15 | P0 | 100% | 谭钧灏 |
| 图书检索 | 20 | P0 | 80% | 谭钧灏 |
| 借阅流程 | 25 | P0 | 90% | 谭钧灏 |
| 权限控制 | 18 | P0 | 95% | 廖永祺 |
| 数据统计 | 10 | P1 | 70% | 谭钧灏 |
| 电子资源 | 12 | P1 | 60% | 谭钧灏 |
五、总结
本周团队在需求分析基础上,进一步完善了系统设计和开发计划。通过清晰的架构图表和详细的任务分解,为Alpha阶段的开发工作奠定了坚实基础。各成员对各自的任务职责有了明确认识,测试计划也为项目质量提供了保障。团队将按照计划有序推进,确保项目顺利完成。

浙公网安备 33010602011771号