写点什么

“学生管理系统”架构文档

作者:CH
  • 2021 年 12 月 30 日
  • 本文字数:1335 字

    阅读完需:约 4 分钟

前言

本文是学生管理系统详细架构设计文档,用于指导系统后续的开发、测试和运维。

1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,

处理效率也十分低下。

为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从

学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改

不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。

因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高

信息的准确度以及日常管理的工作效率。

本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其

主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等

功能设计的管理系统。


2. 约束和限制

  1. 须在 2022.08.01 之前完成

  2. 成本不能超过 200 万

  3. 关键数据需要留档,不能丢失

3. 总体架构



3.1 架构分析

  1. 高性能:每个学校在校师生数量有限,并且日常使用频率不高,因此性能要求不高

  2. 高可用:学校的教学活动不依赖系统,如果宕机,影响不大;数据对学校和学生意义重大,数据不可全部丢失。因此对计算的可用性要求不高;存储可用性有一定要求,需要对数据进行备份

  3. 可扩展:需要可扩展,学生管理系统是学校信息化建设的开始,仍有许多学校的日常事务没有电子化,后续可能需要增加新的功能

  4. 安全性:基本上是公开信息,不包含私密信息,因此对安全性要求不高

  5. 成本:学校经费有限,成本不能太高,需要控制研发成本和设备成本

综合来看,学生管理系统需要具备高可用、可扩展,其中高可用的重点是存储高可用。点]


3.2 总体架构

架构图

描述

  1. 按照业务架构,拆分为三个子系统:学生子系统、课程子系统、权限子系统

  2. 使用 Nginx 反向代理

  3. 选择关系型数据库 MySQL,一台主 MySQL 和一台备 MySQL,主备数据复制

  4. 主数据库提供读写功能,备数据库只用来做备份

4. 详细设计

系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范

化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。

4.1 关键设计

学生管理系统可以分为 4 个模块,即:学生管理、课程管理、考试管理和权限管理,模块功能由具体的子系统实现,具体如下:

学生子系统

学生子系统实现“学生管理”模块,包含以下关键功能:

  • 系统登录

  • 账号分配

  • 账号绑定

  • 组织管理层级

  • 文件上传/下载

  • 信息查询

课程子系统

课程子系统实现“课程管理”和“考试管理”模块,包含以下关键功能:

课程管理

  • 课程录入

  • 选课功能

  • 排课功能

  • 教材选择

考试管理

  • 试卷区域分割

  • 平时成绩

  • 评分判定

权限子系统

权限子系统实现“权限管理”模块,包含以下关键功能:

  • 角色管理

  • 权限控制

  • 功能管理

4.2 设计规范

  1. 学生管理系统使用 SpringMVC + Mybatis 实现

  2. MySQL 使用 Innodb 存储引擎

  3. 接口遵循 RESTful 设计规范

  4. 采用驼峰式命名

5. 质量设计

  • 可测试性:全链路压测、行为可手动触发、状态可见

  • 可维护性:全链路跟踪、行为可手动触发

  • 可观测性:管理后台

  • 成本:引入缓存、采用开源方案

6. 演进规划

  1. 学生管理系统一期:实现学生管理模块和课程管理模块

  2. 学生管理系统二期:实现考试管理和权限管理模块

  3. 学生管理系统三期:整体优化


用户头像

CH

关注

还未添加个人签名 2019.04.26 加入

还未添加个人简介

评论

发布
暂无评论
“学生管理系统”架构文档