团队作业3--需求改进&系统设计
姓名 | 班级 | 学号 |
---|---|---|
赛普拉 ·伊敏江 | 22级计科3班 | 3122004705 |
需求&原型改进
针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改
问题1:
文件上传失败:有些用户报告在上传大文件时出现失败。
上传过程中偶尔会出现超时问题。
解决问题:
增加文件大小限制:
调整文件上传的最大限制,支持更大的文件上传。
优化上传流程:
优化文件上传的后台处理逻辑,减少超时问题。
使用分块上传技术,提高大文件上传的成功率
问题2:
有些用户担心文件上传过程中的数据安全问题
解决:
数据加密:使用SSL/TLS协议确保文件传输过程中的数据安全。
修改完善上周提交的需求规格说明书
《需求规格说明书》初稿不足之处及改进内容
1. 功能考虑不全
1.1 缺少文件版本管理:
虽然提到了作业提交,但没有详细说明如何处理多次提交和版本管理。
1.2 缺少实时通知的具体实现:
虽然提到了实时通知,但没有具体说明如何实现(例如使用WebSocket)。
1.3 缺少用户反馈机制:
没有提到用户如何提供反馈,以及系统如何处理这些反馈。
1.4 缺少多语言支持:
没有考虑到国际化的用户需求,缺少多语言支持的描述。
1.5 缺少数据备份和恢复机制:
没有提到如何进行数据备份和恢复,以确保数据安全。
具体改进内容
1. 功能补充
1.1 文件版本管理
- 用户可以多次提交同一作业,每次提交都会生成一个新的版本。
- 系统记录每个版本的提交时间和文件路径。
- 教师可以查看不同版本的作业,进行对比。
1.2 实时通知的具体实现
- 使用WebSocket实现实时通知,当学生提交作业后,教师能够立即收到通知。
- 通知方式包括邮件和实时消息。
1.3 用户反馈机制
- 用户可以在系统中提交反馈,包括问题报告和建议。
- 系统管理员可以查看和处理用户反馈,提供解决方案。
1.4 多语言支持
- 系统支持多种语言,用户可以选择不同的语言。
- 支持的语言包括但不限于中文、英文、日文等。
1.5 数据备份和恢复机制
- 系统定期进行数据备份,确保数据安全。
- 提供数据恢复功能,用户可以在数据丢失时恢复数据。
用户故事
场景:张老师和李同学使用提交作业系统
张老师是一位中学教师,她负责教授数学课程。李同学是张老师班上的一名学生。以下是他们使用提交作业系统的情景:
-
注册与登录:
- 张老师:张老师打开浏览器,访问提交作业系统的首页,点击“注册”按钮,填写用户名、密码和邮箱,完成注册。然后,她点击“登录”按钮,输入用户名和密码,成功登录系统。
- 李同学:李同学也打开浏览器,访问提交作业系统的首页,点击“注册”按钮,填写用户名、密码和邮箱,完成注册。然后,他点击“登录”按钮,输入用户名和密码,成功登录系统。
-
创建班级:
- 张老师:张老师进入“班级管理”页面,点击“创建班级”按钮,填写班级名称、描述等信息,成功创建了一个新的班级。然后,她进入班级详情页面,点击“添加学生”按钮,输入李同学的用户名,将李同学添加到班级中。
-
发布作业:
- 张老师:张老师进入“作业管理”页面,点击“发布作业”按钮,填写作业标题、描述、截止日期等信息,成功发布了一道数学作业。
-
提交作业:
- 李同学:李同学进入“作业管理”页面,看到张老师发布的数学作业。他点击“提交作业”按钮,上传了一份PDF格式的作业文件,成功提交作业。系统显示提交成功的确认信息,并发送邮件通知张老师。
-
批改作业:
- 张老师:张老师收到邮件通知后,进入“作业管理”页面,查看李同学提交的作业。她点击“批改作业”按钮,给李同学的作业打分,并写下反馈意见。系统记录这次批改的时间和成绩。
-
查看成绩:
- 李同学:李同学进入“成绩管理”页面,查看自己提交的数学作业的成绩和教师的反馈意见。系统显示成绩和反馈信息,帮助李同学了解自己的学习情况。
-
文件版本管理:
- 李同学:李同学发现第一次提交的作业有错误,决定重新提交。他再次进入“作业管理”页面,点击“重新提交”按钮,上传了一份修正后的作业文件。系统生成了一个新的版本,并记录了提交时间和文件路径。
- 张老师:张老师在批改作业时,可以看到李同学的多个版本的作业,进行对比和评估。
-
实时通知:
- 张老师:当李同学提交作业后,张老师立即收到了实时通知,提醒她有新的作业提交。
- 李同学:当张老师批改作业并录入成绩后,李同学立即收到了实时通知,提醒他查看成绩和反馈意见。
-
用户反馈:
- 李同学:李同学在使用系统过程中遇到一个问题,他在系统中提交了反馈,描述了问题的具体情况。
- 张老师:张老师收到用户反馈后,及时处理了问题,并提供了解决方案。
-
多语言支持:
- 李同学:李同学发现系统支持多语言,他切换到英文界面,继续使用系统。
-
数据备份和恢复:
- 系统管理员:系统管理员定期进行数据备份,确保数据安全。如果发生数据丢失,可以使用备份数据进行恢复。
。
功能分析
- 核心功能:实现用户注册与登录、权限管理、创建/管理班级、发布/批改作业、成绩录入与导出等核心功能。
- 用户体验:提供友好的用户界面,简化操作流程,提高系统的易用性。
- 性能:确保系统在高并发情况下能够稳定运行,响应时间不超过2秒。
- 安全性:确保数据传输和存储的安全性,防止未授权访问和攻击。
功能范围
- 核心功能:
- 用户注册与登录
- 权限管理
- 创建/管理班级
- 发布/批改作业
- 成绩录入与导出
- 外围功能:
- 文件共享
- 学生间讨论
- 必要非核心功能:
- 签到
- 班级活动管理
- 进度跟踪
- 增值功能:
- 数据分析
- 教学质量评估
- 多语言支持
- 个性化设置
- 历史记录
任务分解WBS
核心功能开发
- 用户注册与登录:8小时
- 权限管理:8小时
- 创建/管理班级:8小时
- 发布/批改作业:8小时
- 成绩录入与导出:8小时
辅助功能开发
- 文件共享:4小时
- 签到功能:4小时
- 班级活动管理:4小时
- 进度跟踪:4小时
增值功能开发
- 数据分析:4小时
- 教学质量评估:4小时
- 多语言支持:4小时
- 个性化设置:4小时
- 历史记录:4小时
测试
- 单元测试:4小时
- 集成测试:4小时
- 系统测试:4小时
系统设计
数据模型
1. 用户表 (User)
- id (主键):INT
- username (用户名):VARCHAR(50)
- password (密码):VARCHAR(100)(建议使用哈希存储)
- email (邮箱):VARCHAR(100)
- role (角色):VARCHAR(20)(教师、学生、管理员)
- theme (界面主题):VARCHAR(50)(默认值为“light”或“dark”)
- language (语言偏好):VARCHAR(50)(默认值为“zh-CN”或“en-US”)
2. 作业表 (Homework)
- id (主键):INT
- title (标题):VARCHAR(100)
- description (描述):TEXT
- due_date (截止日期):DATETIME
- teacher_id (教师ID,外键):INT,引用User表的id
- team_homework (是否为团队作业):BOOLEAN(默认值为FALSE)
3. 提交表 (Submission)
- id (主键):INT
- homework_id (作业ID,外键):INT,引用Homework表的id
- student_id (学生ID,外键):INT,引用User表的id
- file_path (文件路径):VARCHAR(255)
- submission_date (提交日期):DATETIME
- grade (成绩):FLOAT(默认值为NULL)
- feedback (教师反馈):TEXT(默认值为NULL)
- version (版本号):INT(默认值为1)
4. 评论表 (Comment)
- id (主键):INT
- submission_id (提交ID,外键):INT,引用Submission表的id
- user_id (用户ID,外键):INT,引用User表的id
- content (评论内容):TEXT
- comment_date (评论日期):DATETIME
5. 进度表 (Progress)
- id (主键):INT
- homework_id (作业ID,外键):INT,引用Homework表的id
- student_id (学生ID,外键):INT,引用User表的id
- progress (进度百分比):INT(默认值为0)
6. 操作历史表 (OperationHistory)
- id (主键):INT
- user_id (用户ID,外键):INT,引用User表的id
- action (操作类型):VARCHAR(100)(例如“登录”、“提交作业”、“查看成绩”等)
- timestamp (操作时间):DATETI
Alpha任务分配计划
迭代冲刺计划(甘特图):
任务 | 第11周 | 第12周 | 第13周 | 第14周 |
---|---|---|---|---|
核心功能开发 | √ | |||
辅助功能开发 | √ | |||
增值功能开发 | √ | |||
测试 | √ |
任务分解
任务 | 预计时间 |
---|---|
用户注册与登录 | 8小时 |
权限管理 | 8小时 |
创建/管理班级 | 8小时 |
发布/批改作业 | 8小时 |
成绩录入与导出 | 8小时 |
文件共享 | 4小时 |
签到功能 | 4小时 |
班级活动管理 | 4小时 |
进度跟踪 | 4小时 |
数据分析 | 4小时 |
教学质量评估 | 4小时 |
多语言支持 | 4小时 |
个性化设置 | 4小时 |
历史记录 | 4小时 |
单元测试 | 4小时 |
集成测试 | 4小时 |
系统测试 | 4小时 |
测试
- 单元测试:4小时
- 集成测试:4小时
- 系统测试:4小时
项目里程碑
里程碑 | 日期 | 描述 |
---|---|---|
核心功能开发完成 | 第11周末 | 完成用户注册与登录、权限管理、创建/管理班级、发布/批改作业、成绩录入与导出等核心功能的开发 |
辅助功能开发完成 | 第12周末 | 完成文件共享、签到功能、班级活动管理、进度跟踪等辅助功能的开发 |
增值功能开发完成 | 第13周末 | 完成数据分析、教学质量评估、多语言支持、个性化设置、历史记录等增值功能的开发 |
测试完成 | 第14周末 | 完成单元测试、集成测试、系统测试,确保系统稳定可靠 |
五. 测试计划
测试目标
确保教育管理系统的各个功能模块按照需求规格说明书的要求正常工作,识别并修复缺陷,提高系统的稳定性和用户体验。
测试范围
- 功能测试:验证所有用户故事和用例是否按预期工作。
- 性能测试:确保系统在预期负载下的性能表现。
- 安全性测试:检查系统对未授权访问的防护能力。
- 可用性测试:评估系统的易用性和用户界面的直观性。
测试策略
- 单元测试:由开发人员在开发过程中完成以及测试人员在模块完成后进行,确保代码的最小可测试部分按预期工作。
- 集成测试:测试模块间的接口和数据流是否正确。
- 系统测试:全面测试整个系统的功能和性能。
时间安排
- 单元测试:每个模块编码完成后一周内进行,确保每个模块的基本功能正常。
- 系统测试:结束项目后一周内完成,全面检查系统的性能和稳定性。
测试总结
随着每个测试阶段的结束,我们将总结测试结果,详细记录发现的问题及其解决方案,评价测试成果,并为接下来的开发周期提供针对性的改进建议。