写点什么

学生管理系统

作者:KING
  • 2022-12-25
    四川
  • 本文字数:1364 字

    阅读完需:约 4 分钟

前言

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


修订历史


词汇表

Spring Boot:Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。

Mysql:关系型数据库

Nginx:负载均衡 web 服务器


1.业务背景

随着现在学校管理学生越来越多,需要处理的信息也日趋增大,传统人工处理效率非常底下,耗费资源。为了提高学生信息管理水平降低管理成本,开发一套学生管理系统,系统应用于管理学生各类信息,可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。基于以上背景,我们需要引入学生管理系统,将进一步提高目前的管理水平。


2.约束限制

1.成本控制在 50 万元内

2.数据要有备份,数据永久保存

3.使用 mysql 数据库

4.尽量使用开源技术

5.平均响应时间为 500ms 内,最长响应时间不超 3S


3.总体架构

3.1 架构分析

3.1.1 高可用

学生系统数据较为重要,数据丢失对学校和学生都会带来很大的影响,系统偶尔不可用并在几个小时内能够恢复的话,影响不大,采用数据库主备的方式保证数据即可。

3.1.2 高性能

学生管理系统管理数据和数据处理量都比较有限,性能也没有太多追求,没必要追求高性能。

3.1.3 可扩展

目前信息化管理已经非常普及,很多需求和业务都会带来变更,所以可扩展性是非常有必要的,系统进行了合适的服务拆分,如果后面需要扩展更多需求,在现有系统上增强或者可扩展子系统完成新的业务。


3.2 总体架构

系统架构图


系统边界白盒图



4 详细设计


4.1 核心设计


学生信息查询


学生信息是学生管理系统的核心管理信息,不能随便对外泄漏,只能具备相关权限的人才能进行查询,学生信息需要在学生子系统里查询,子系统进行查询前需要对发起查询人进行身份认证,如果身份认证失败则禁止相关操作,无论查询是否完成都需保存相关操作记录。


学生选课


选课功能主要提供学生线上选课,选课是对能够进行选课的学生开放,无权限的学生不能进行选课。


课程成绩上传


老师通过上传课程成绩到系统,公布学生成绩,学生线上就能查询,成绩只能由学生自己查看,即便同一门课的同学之间成绩不能统一查看,保证学生个人成绩隐私。


4.2 关键设计


存储高可用:

数据存储在 MySQL 中,每个分组有一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证数据存储高可用。如果主备间出现复制延迟,恰好此时 MySQL 主服务器宕机导致数据无法恢复,则部分消息会永久丢失,这种情况不做针对性设计,DBA 需要对主备间的复制延迟进行监控,当复制延迟超过 30 秒的时候需要及时告警并进行处理。


4.2 设计规范

  1. 子系统统一使用 springboot 进行开发,统一使用 jdk8。系统之间通过 Http 进行调用,数据格式为 JSON,结构采用 rest 风格对外接口。

  2. 使用 mysql 数据库 Innodb 存储引擎。


5 质量设计

可测试性:系统较为简单,子系统少,测试难度不高,子系统留几个可测试调用接口得了。

可观测性:个子系统应该输出相关重要日志,必要时可通过日志查询问题。

可维护性:系统不复杂,暂不需要维护后台,带后期需要再加。


6.演进规划

6.1.一期

完成权限系统能够进行角色权限认证。

完成学生子系统登录、注册、查询、导入导出的等基本功能。

完成课程子系统课程录入、选课、成绩录入等基本功能。

系统快速上线基本功能使用。

6.1.二期

完善课程系统考试安排,课程安排,考题生成等

完善学生系统上报教育系统等

用户头像

KING

关注

还未添加个人签名 2018-04-25 加入

还未添加个人简介

评论

发布
暂无评论
学生管理系统_KING_InfoQ写作社区