“学生管理系统”架构文档
前言
本文是学生管理系统详细架构设计文档,用于指导系统后续的开发、测试和运维。
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,
处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从
学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改
不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高
信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其
主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等
功能设计的管理系统。
2. 约束和限制
须在 2022.08.01 之前完成
成本不能超过 200 万
关键数据需要留档,不能丢失
3. 总体架构
3.1 架构分析
高性能:每个学校在校师生数量有限,并且日常使用频率不高,因此性能要求不高
高可用:学校的教学活动不依赖系统,如果宕机,影响不大;数据对学校和学生意义重大,数据不可全部丢失。因此对计算的可用性要求不高;存储可用性有一定要求,需要对数据进行备份
可扩展:需要可扩展,学生管理系统是学校信息化建设的开始,仍有许多学校的日常事务没有电子化,后续可能需要增加新的功能
安全性:基本上是公开信息,不包含私密信息,因此对安全性要求不高
成本:学校经费有限,成本不能太高,需要控制研发成本和设备成本
综合来看,学生管理系统需要具备高可用、可扩展,其中高可用的重点是存储高可用。点]
3.2 总体架构
架构图
描述
按照业务架构,拆分为三个子系统:学生子系统、课程子系统、权限子系统
使用 Nginx 反向代理
选择关系型数据库 MySQL,一台主 MySQL 和一台备 MySQL,主备数据复制
主数据库提供读写功能,备数据库只用来做备份
4. 详细设计
系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范
化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。
4.1 关键设计
学生管理系统可以分为 4 个模块,即:学生管理、课程管理、考试管理和权限管理,模块功能由具体的子系统实现,具体如下:
学生子系统
学生子系统实现“学生管理”模块,包含以下关键功能:
系统登录
账号分配
账号绑定
组织管理层级
文件上传/下载
信息查询
课程子系统
课程子系统实现“课程管理”和“考试管理”模块,包含以下关键功能:
课程管理
课程录入
选课功能
排课功能
教材选择
考试管理
试卷区域分割
平时成绩
评分判定
权限子系统
权限子系统实现“权限管理”模块,包含以下关键功能:
角色管理
权限控制
功能管理
4.2 设计规范
学生管理系统使用 SpringMVC + Mybatis 实现
MySQL 使用 Innodb 存储引擎
接口遵循 RESTful 设计规范
采用驼峰式命名
5. 质量设计
可测试性:全链路压测、行为可手动触发、状态可见
可维护性:全链路跟踪、行为可手动触发
可观测性:管理后台
成本:引入缓存、采用开源方案
6. 演进规划
学生管理系统一期:实现学生管理模块和课程管理模块
学生管理系统二期:实现考试管理和权限管理模块
学生管理系统三期:整体优化
评论