模块三作业:学生管理系统架构设计文档
前言
本文是学生管理系统的详细架构设计文档,用于指导学生管理系统的开发、测试和运维。
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的人力物力,处理效率也十分低下。从学生管理系统的现状出发,根据学生管理的新要求设计开发一套新的管理系统迫在眉睫。它需要帮助管理人员有效进行学生信息的管理。
本系统主要是应用于学生各类信息的管理,其主要任务是对学生信息进行日常管理,如查询、修改、增加、删除,以及支持选课、考试成绩查询等功能。
2. 约束和限制
全校约有学生 20000 人,教师 1500 人
数据库要求使用 MySQL
支持 7*24 小时稳定运行,支持同时在线人数不超过 500 人
整体成本不超过 100 万
必须在 2022 年春季学期开学前上线
3. 总体架构
采用 MySQL 主备方式进行数据备份
使用 Nginx 反向代理进行负载均衡服务
拆分为学生子系统、课程子系统以及权限子系统三个子系统,对业务进行解耦,利于后期进行业务模块支持的扩展
4. 详细设计
4.1 核心功能
4.1.1 学生管理
系统登录:学生与教师进行系统登录,包含第三方快捷登录、账号注册与找回、密码修改等
信息修改与查询:个人信息修改与查询、课程信息修改与查询
文件上传与下载:试卷照片、作业文件等上传与下载,成绩表格的上传与下载
4.1.2 课程管理
课程创建与修改:管理员对课程体系的创建,供学生和老师进行选择
开课选课功能:教师可选择开设课程,学生选择学习课程
排课功能:根据学生选定的课程和教学计划安排,对教师、教室、学生进行时间、空间统一规划安排
4.1.3 权限管理
角色设置:系统的角色包括管理员、学生、老师
功能设置:管理员拥有最高权限,可进行全部数据信息的修改与查询;学生教师可以进行注册、个人信息修改;学生可以查询已选择课程与考试成绩,对应教学的教师可以查看与修改考试成绩
4.2 关键设计
业务扩展性:拆分为 3 个子系统,各子系统负责不同领域的业务实现,便于后续扩展其他功能
数据高可用:MySQL 主备方式,主节点宕机后手工切换为备节点服务,针对主备同步延迟做到监控及告警
4.3 设计规范
业务服务开发使用 Spring Boot 2.x 框架
服务间数据响应采用 json 格式
接口遵循 Restful 风格
5. 质量设计
5.1 可测试性
提供一套标准规范的 API 文档,同时给出单元测试用例,系统整体测试用例
5.2 可维护性
编写详细的上下线部署文档、升级与回滚方案、应急预案、问题响应手册,确保出现问题后及时恢复
5.3 可观测性
提供必要的指标与接口,进行监控数据的采集与分析
6. 演进规划
6.1 项目计划
一期:完成三个子模块业务开发,完成各子系统内部测试
二期:上线进行小规模业务流程测试,灾备流程测试
三期:全部功能上线
版权声明: 本文为 InfoQ 作者【赵先生】的原创文章。
原文链接:【http://xie.infoq.cn/article/770d109cc80f7eb2a43354228】。未经作者许可,禁止转载。
评论