写点什么

学生管理系统架构设计文档

用户头像
deng
关注
发布于: 13 小时前

前言

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

词汇表

1、Spring boot : 轻松创基于 Spring 的应用程序

2、Mybatis : 持久层框架

3、MySQL : 关系型数据库


1. 业务背景

随着学校的规模的不断扩大,学生数量的增加,给学校带来了以下一些问题

  • 需要处理的信息日趋增大

  • 花费大量的教师资源

  • 处理效率也十分低下

基于以上背景,急需搭建一套学生管理系统,解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。

2. 约束和限制

1. 后端使用 Java 语言开发

2. 总成本不能超过 200 万

3. 数据库采用 MySQL

4. 两个月内上线一个版本


3. 总体架构

系统白盒图


3.1 架构分析

3.1.1 高可用

学生管理系统的用户是学校老师和学生,系统一段时间内不可用的话,影响不大,整体而言对可用性要求不高,但是系统的数据比较重要,含有学生的学籍考试等关键信息,不能丢失,所以对数据的高可用要求高些

3.1.2 高性能

一个学校的教师和学生人数不会太多,可以预见后期的访问量,并发量不会太大,所以对高性能的要求也不高

3.1.3 可扩展

学生管理系统的业务功能变更还是比较频繁的, 所以可扩展性也需要考虑


综合来看,学生管理系统需要考虑系统的可扩展性以及数据的高可用

3.2 总体架构


  1. 根据系统的功能模块,将系统拆分为 3 个内部子系统:将系统分为学生子系统,课程子系统,权限子系统。

  2. 为防止数据丢失,采用主备数据复制方式,包括一台主 mysql,和一台备 mysql。

  3. 使用 Nginx 服务器来转发分配请求

4. 详细设计

4.1 核心功能

4.1.1 作业上传和下载


4.2 关键设计

4.2.1 数据的高可用

数据存储在 MySQL 中,设计一主一备两台 MySQL 服务器,MySQL 服务器之间复制数据以保证数据存储高可用。

4.2.3 系统的可扩展

将整个系统拆分为多个子系统,从而保证系统的可扩展性,在后续业务需求发生变更或者有新的业务需求时,只需要通过增加子系统的方式就可以了。


4.3 设计规范

  1. 服务端开发语言使用 Java,开发框架采用 Spring Boot + Mybatis 开发

  2. 数据库使用 MySQL,存储引擎采用 Innodb

  3. 前后端分离,后端和前端的数据交互通过 HTTPS 协议,采用 JSON 数据格式

5. 质量设计

  1. 可维护性

系统各服务器以及数据库需要接入学校统一运维平台

2. 可观测性

记录每次操作日志,提供系统关键数据的报表展示页面

3. 安全

用户密码等关键信息需要加密保存,前端和服务端只能通过 HTTPS 协议交互。

6. 演进规划

一期:

实现关键的一些主要功能,学生管理,课程管理,权限管理、考试管理三大模块

二期:

上线公告宣传模块,增加多学校支持

用户头像

deng

关注

还未添加个人签名 2020.04.19 加入

还未添加个人简介

评论

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