外包学生管理系统架构设计文档
前言
本文是外包学生管理系统架构设计文档,用于指导外包学生管理系统后续的开发、测试和运维。
词汇表
nginx:一高性能的 HTTP 和反向代理 web 服务器;
springboot: spring 软件框架,便于快速开发;
mysql:一个流行的关系型数据库管理系统;
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,
处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从
学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改
不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高
信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其
主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等
功能设计的管理系统。
2. 约束和限制
可用性:保障已存储数据不会出现全部丢失;
成本要求:成本不能太高
3. 总体架构
3.1 架构分析
3.1.1 高可用
学生的学籍信息是人工录入的,不能在极端情况下出现全部丢失
3.1.2 高性能
学生人数不会太多,没有特别高的性能要求
3.1.3 可扩展
业务需求比较复杂,需要一个可扩展的系统
3.1.4 安全
不涉及金融、支付等,对安全要求不高
3.1.5 隐私
基本都是公开信息,隐私要求不高
3.2 总体架构
使用 nginx 负责请求接入,把请求反向代理到具体的子系统
系统拆分成学生、课程、权限三个子系统
数据存储需要一定的高可用,采用 MySql 主备架构
4. 详细设计
4.1 核心功能
4.1.1 学生子系统
学生个人信息管理。
4.1.2 课程子系统
课程信息管理,选课,考试。
4.1.3 权限子系统
账号角色管理,权限分配,账号信息管理。
4.2 关键设计
4.2.1 高可用
存储:采用 MySQL 准备架构,保障数据不会在极端情况下全部丢失
4.2.2 可扩展
拆分成多个子系统,便于多人协作开发以及日后扩展
4.3 设计规范
子系统开发语言使用 java,框架使用 spring boot
MySQL 使用 Innodb 存储引擎
5. 质量设计
1. 可测试性
需要搭建测试环境,模拟真实场景
2. 可维护性
大家对 MySQL 比较熟悉,采用 MySQL
3. 可观测性
管理系统自身是一个管理后台,具有一定的可观测性。
重要信息如报错等需要打印日志
6. 演进规划
一次性交付,没有太多需要演进的地方
学校学生数量不会很大变化
评论