写点什么

极客时间【架构实战营】第二期 模块三作业

用户头像
Geek_91606e
关注
发布于: 3 小时前

前言

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

1. 业务背景

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


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


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


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

2. 约束和限制

  1. 低成本

  2. 使用高校已有服务器及 Nginx 服务

  3. 使用 MySQL 存储数据

3. 总体架构

3.1 架构分析

3.1.1 高可用

对于学生个人信息不能全部丢失,需要存储高可用,数据库采用主备结构。

由于学生管理系统并非高校主要业务,对计算高可用需求较小,故不考虑。

3.1.2 高性能

高校学生用户较少,对高性能需求较小,故不考虑。

3.1.3 可扩展

高校学生结构与数量相对稳定,对扩展性要求较小,故不考虑。

3.1.4 安全

系统数据多为学生个人信息,对安全要求较小,故不考虑。

3.2 总体架构



3.2.1 使用高校已有的 Nginx 服务器做反向代理,根据业务类型分配请求

3.2.2 学生管理系统根据业务类型分为学生子系统、课程子系统、权限子系统

3.2.3 数据库采用 MySQL 主备方案,防止数据全部丢失


4. 详细设计

4.1 核心功能

学生子系统:

学生账号的注册、登录

个人信息、课表、考试成绩等信息查询

课程子系统:

学生进行每学期选课工作

教师对学期课程时间安排

教师对课程考试及分数登记

权限子系统:

账号权限划分,包括系统管理员、教师、学生等


4.2 关键设计

4.2.2 存储高可用

数据库采用一主一备两台 MySQL 服务器,由于数据量较少可采用同步数据复制。

4.3 设计规范

待补充

5. 质量设计

5.1 可测试性

管理员可用测试账号对业务功能进行测试

5.2 可维护性

MySQL 和 Nginx 可靠性、可维护性较高

5.3 可观测性

服务器性能指标监控及日志收集

6. 演进规划

学生管理系统业务场景较固定,暂不考虑演进规划

用户头像

Geek_91606e

关注

还未添加个人签名 2021.07.22 加入

还未添加个人简介

评论

发布
暂无评论
极客时间【架构实战营】第二期 模块三作业