团队作业3-需求改进&系统设计
| 这个作业属于哪个课程 | 计科23级12班 |
|---|---|
| 这个作业要求在哪里 | 团队作业3-需求改进&系统设计 |
| 这个作业的目标 | 改进需求与编写系统设计 |
一、需求 & 原型改进
1.1 针对课堂反馈的问题与修改
在上次的课堂展示中,老师提出了以下几点建议:
-
问题1:分享链接功能相关的权限访问问题。
修改1:在分享设置中增加“最大访问次数”和“最大下载次数”选项,默认不限制,用户可手动设置上限。 -
问题2:未说明回收站机制是否支持恢复或永久删除。
修改2:明确回收站支持“恢复原位置”和“彻底删除”两种操作,文件在回收站保留30天后自动清除。 -
问题3:原型中缺少“上传进度可视化”细节(如速度、剩余时间)。
修改3:在上传组件中增加实时网速显示、预计剩余时间、已上传百分比等信息,提升用户体验。
1.2 需求规格说明书完善
1.2.1 初稿主要不足
- 缺少权限模型描述;
- 回收站机制模糊;
- 接口规范未提及;
- 未定义非功能性需求(如并发支持、响应时间)。
本次改进:
- 新增分享链接的访问权限说明;
- 明确回收站生命周期策略;
- 新增API接口规范;
- 增加非功能性需求:支持50人并发上传,单文件上传响应时间 < 2s。
1.2.2 User Story
作为项目经理小王,他在项目冲刺中需将分析报告分享给5位核心成员,系统允许他设置分享链接的访问次数(5次)和下载次数(3次),而非限制人员范围。团队成员通过链接下载时,系统实时统计次数:当第5次访问或第3次下载触发后,链接自动失效,既保障了文件安全又避免了外部滥用。误删文件后,他通过回收站的30天保留期一键恢复数据;同时,系统在50人并发上传时稳定保持单文件响应<2秒,让团队在高峰期高效协作——小王无需再为文件泄露风险或性能瓶颈分心,真正实现“安全可控、高效交付”。
1.3 功能分析四象限(基于优先级)
| 象限 | 功能类型 | 具体功能 |
|---|---|---|
| 第一象限(紧急且重要) | 核心必备功能 | 单/多文件上传、分片上传、文件下载、文件夹管理、用户注册登录 |
| 第二象限(重要不紧急) | 增强体验功能 | 分享链接权限限制 |
| 第三象限(紧急不重要) | 辅助功能 | 上传进度条可视化、回收站自动清理(30 天) |
| 第四象限(不紧急不重要) | 拓展功能 | 第三方云存储同步(如阿里云 OSS) |
1.4 WBS与进度计划调整
基于新需求,更新WBS如下:
| 阶段 | 模块 | 功能点 |
|---|---|---|
| 需求分析与设计(已完成) | - | 需求规格说明书编写、原型设计、技术预研、用户调研 |
| 架构设计与环境搭建(第11周) | - | 后端/前端架构设计、数据库/API接口设计、开发环境搭建 |
| Alpha开发(第12-13周) | 用户模块 | 注册/登录接口、个人信息管理页面、权限验证逻辑 |
| Alpha开发(第12-13周) | 文件上传模块 | 基础上传、大文件分片上传 |
| Alpha开发(第12-13周) | 文件管理模块 | 文件夹CRUD |
| Alpha开发(第12-13周) | 分享模块 | 分享链接生成、权限设置 |
| Alpha测试与优化(第14周) | - | 功能测试用例、Bug修复、性能测试 |
| 文档整理与验收(第15周) | - | 接口文档完善、测试报告编写、验收准备 |
二、系统设计
2.1整体系统架构
架构图

优势:
前后端并行开发;
业务逻辑解耦,便于单元测试;
存储策略可配置,支持未来扩展。
2.2 数据库设计
2.2.1 表设计
tb_user:用户表,用于记录用户的各种信息,如账号密码等;
tb_recyclebin:回收垃圾箱,用于存放用户删除的文件;
tb_usersize:用户内存表,存放可用的最大内存及已使用内存;
tb_file:用户文件表,记录用户上传的各种文件与信息;
tb_emailregist:用户验证码表,存放用户验证码及生成时间。
2.2.1 架构图

2.3 接口设计
2.3.1 接口示例图

2.3.2 接口示例说明
/regist/byemail:邮箱注册接口
/login:登录接口
/isLogin:验证是否登录接口
/resetPassword:重置密码接口
/createFolder:创建文件夹接口
/regist/sendEmail:发送邮箱验证码接口
/deleteBinFile:回收站永久删除文件接口
recoverFile:回收站回复文件接口
三、Alpha任务分配计划
3.1 任务选取
| 功能项 | 优先级 | 依赖 |
|---|---|---|
| 用户注册/登录 | P0 | 无 |
| 基础文件上传 | P0 | 用户模块 |
| 文件夹管理 | P1 | 用户模块 |
| 分片上传 | P1 | 基础上传 |
| 分享链接生成 | P1 | 文件管理 |
| 回收站 | P2 | 文件删除 |
3.2 Sprint Backlog
| 任务 | 预估工时 | 负责人 | 类型 |
|---|---|---|---|
| 设计用户表 & JWT认证 | 5h | 杨梓城 | 后端 |
| 实现文件分片接收接口 | 6h | 朱一凡 | 后端 |
| 开发上传组件(含进度条) | 8h | 曾添伟 | 前端 |
| 实现分享链接生成逻辑 | 5h | 邹泓昊 | 后端 |
| 回收站前端页面 | 6h | 黄炳城 | 前端 |
| 编写上传功能测试用例 | 2h | 王彤德 | 测试 |
3.3 甘特图

四、测试计划
4.1 测试目标与原则
本项目采用 “测试左移” 原则,将测试活动嵌入整个开发周期,而非仅在开发完成后执行。测试目标包括:
- 验证核心功能(用户认证、文件上传/下载、分享链接、回收站)的正确性与健壮性;
- 确保系统满足非功能性需求(如50人并发上传时单文件响应时间 < 2s);
- 及早发现并修复缺陷,降低后期修复成本;
- 保障用户体验(如上传进度可视化、权限控制逻辑)。
4.2 测试范围
| 测试类型 | 覆盖模块 | 说明 |
|---|---|---|
| 功能测试 | 用户模块、文件管理、分享模块、回收站 | 验证需求规格说明书中的功能点 |
| 接口测试 | 所有 RESTful API | 使用 Postman 或自动化脚本验证请求/响应格式、状态码、权限控制 |
| 性能测试 | 文件上传、并发访问 | 模拟50用户并发上传,监控响应时间、CPU/内存占用 |
| UI/UX测试 | 上传组件、回收站页面、分享设置页 | 验证进度条、错误提示、交互流畅性 |
| 安全测试 | 分享链接权限、登录认证 | 验证访问次数限制、未授权访问拦截 |
不包含:第三方云存储同步(第四象限拓展功能,Alpha阶段暂不实现)。
4.3 测试时间安排(与开发并行)
| 时间 | 测试活动 | 关联开发阶段 |
|---|---|---|
| 第12周 | 用户模块单元测试 + 登录接口测试 | Alpha开发 - 用户模块 |
| 第13周 | 文件上传/分片接口测试 + 前端组件测试 | Alpha开发 - 文件上传模块 |
| 第13–14周 | 分享链接权限逻辑测试 + 回收站功能测试 | Alpha开发 - 分享/回收站 |
| 第14周 | 全链路集成测试 + 性能压测 | Alpha测试与优化 |
| 第15周 | 回归测试 + 编写最终测试报告 | 文档整理与验收 |
4.4 责任分工
| 角色 | 职责 | 对应成员 |
|---|---|---|
| 后端开发人员 | 编写单元测试、修复测试发现的Bug | 杨梓城、朱一凡、邹泓昊 |
| 前端工程师 | 验证UI交互、上传进度可视化效果 | 曾添伟、黄炳城 |
| 测试专员 | 设计测试用例、执行接口/性能测试、记录缺陷 | 王彤德 |
浙公网安备 33010602011771号