写点什么

外包学生管理系统架构设计

作者:陈天境
  • 2023-01-02
    福建
  • 本文字数:1458 字

    阅读完需:约 5 分钟

1. 业务背景

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

为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。

因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。

本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。


2. 约束和限制

2.1 系统必须提供校园内域名可以访问,但不能通过公网访问;

2.2 数据库采用 MySQL,且必须具备高可用;

2.3 开发框架使用 SpringBoot 2.x;

2.4 必须在 2023.6.1 完成;

2.5 能够支持管理 1000 个学生;


3. 总体架构

系统边界白盒图

本系统相对独立,没有与其他系统交互。



系统架构图


[必选,描述经过备选架构决策后定下来的架构方案,这一章主要是描述架构的 3R:Rank、Role、Relation]

[技巧:1. 系统边界白盒图描述系统内的角色与外界的交互(Rank + Role + 外部 Relation);2. 系统架构图来描述内部的 Role + 内部 Relation]

[注意:不建议一张图同时描述系统架构的 3R 以及与外界的交互,因为图太复杂,画系统边界白盒图的时候,系统内部的 Relation 可以不画]


3.1 架构分析

3.1.1 可扩展性

学生管理系统涉及后续较多业务功能扩展需求,系统设计需要满足可扩展性;

3.1.2 高可用

系统的数据是学校重要的资产,需要确保学生、课程等的数据具备高可用,而学生管理系统,属于内部管理系统,本身并不要求非常高的可靠性,系统出问题时,1 小时内恢复即可;

3.1.3 成本

系统要求使用低成本开发和部署。

3.1.4 高性能

由于学生数量不多,不涉及抢课等高并发场景,整个系统不涉及高性能需求。

3.2 总体架构

3.2.1 整个系统分成学生子系统、课程子系统、权限子系统共三个子系统;

3.2.2 通过 Nginx 根据路径路由到不同的子系统;

3.2.3 系统使用 MySQL 进行数据存储,且为了确保数据高可用,MySQL 使用主备架构;

4. 详细设计


4.1 核心功能

4.1.1 学生管理

1) 系统登录

2)账号分配

3)账号绑定

4)组织管理层级

5)文件上传/下载

6) 信息查询

4.1.2 课程管理

1) 课程录入

2)选课功能

3)排课功能

4)教材选择

4.1.3 考试管理

1) 发起考试

2) 成绩管理

3) 评分判定

4.1.4 权限管理

1) 角色管理

2) 用户注册与审核权限

3) 成绩查看与修改权限

4) 奖惩信息设置与查看权限

5) 试卷管理与考试权限

4.2 关键设计

4.2.1 基于请求路径,采用 Nginx 进行不同子系统的路由;

4.2.2 通过 MySQL 的主备实现数据存储高可用

4.3 设计规范

4.3.1 MySQL 使用 Innodb 存储引擎

4.3.2 Java 开发规范使用阿里巴巴的 Java 编码规范;

4.3.3 服务端使用 Springboot2.x + MyBatis 开发;

5. 质量设计

5.1 可测试性

整个系统基于黑盒测试,需要列出完整的测试用例

5.2 可维护性

整个系统主要涉及三部分:Nginx,学生管理系统,MySQL 数据库。

Nginx 成熟度高、稳定性高,基本不用太多运维;

学生管理系统拆分成三个子系统,规模相对较小,易于维护;

MySQL 采用主备,可切换,易于维护;

5.3 可观测性

Springboot 接入 Actuator 监控,本身具备较为丰富的监控指标;

5.4 成本

整个系统并发度低,使用低配的服务器即可满足要求。

6. 演进规划

暂时没有第二阶段计划

用户头像

陈天境

关注

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

还未添加个人简介

评论

发布
暂无评论
外包学生管理系统架构设计_陈天境_InfoQ写作社区