Bootstrap

模块三-学生管理系统详细架构设计

前言

本文为学生学生管理系统详细架构设计文档,用于指导后续的开发、测试和运维,涵盖业务背景,约束和限制,总体架构,详细设计,质量设计以及演进规划。

词汇表

HTTPS: 一种通过计算机网络进行安全通信的传输协议;

Nginx: 异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存;

MySQL: 当前一种主流的开放源码关系数据库管理系统;

SpringBoot: 构建在Spring框架顶部,并提供了一种简便,快捷的方式来设置,配置和运行基于Web的简单应用程序;

Tomcat: Apache软件基金会属下Jakarta项目开发的Servlet容器;

token: 用户身份标识;

1. 业务背景

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

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

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

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

系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。

2. 约束和限制

3. 总体架构

由前面业务介绍可知系统功能可划分以下子系统:

3.1 架构分析

1.1 高可用

该系统对教学依赖并不强,所以功能可用性要求相对不高。

3.1.2 高性能

该系统总体用户数并不多,且学校的规模扩展相对稳定,所以性能要求方面不高。

3.1.3 可扩展

用户规模增长稳定,所以性能扩展方面要求不大,但是考虑后续需求变化,所以在设计数据存储以及功能时,需要注意预留一定的扩展点。

3.14 成本

成本包括开发团队人员薪酬,服务器购买及域名注册相关费用,其中人员薪酬约占80%。

3.15 安全

系统数据主要包括用户(教师/学生)信息,课程信息,其中用户信息包含身份症,学号信息等敏感信息,一旦泄露将对用户产生极大不良影响,因此需要对用户信息作一定的加密处理以保证安全。

3.2 总体架构

  • 各子系统不对外提供服务,统一由Nginx通过URL判断并转发到对应服务器;

  • MySQL采用一主一备机制;

4. 详细设计

4.1 核心功能

4.1.1 学生子系统

4.1.2 课程子系统

4.1.3 权限系统

4.2 关键设计

  • 系统请求均为HTTPS;

  • 登录成功后生成token返回给前端;

  • 每个请求均生成随机字符串作为请求id,并在日志输出纪录,以便跟踪;

4.3 设计规范

4.3.1 框架工具

4.3.2 前后端接口规范

4.3.2.1 URL

应符合version/module/action模式,并且不能有动词,只能有名词,如下:

https://api.example.com/v1/student/add
https://api.example.com/v1/course/add
https://api.example.com/v1/course/assign
https://api.example.com/v1/admin

4.3.2.2 JSON

JSON主体:

{
      "code" : 0,
      "msg" : "Something bad happened",
      "data" : {
				...
      }
}

说明如下:

  • code: 0为成功,非0为失败

  • msg: 当code为非0时,获取错误信息。当code-

  • 为0时,msg一般为”success”。

  • data: 当code为0时,获取结果,全部以json方式表示。当code为非0时,data没有数据

4.3.3 命名规范

  • 所有命名要有描述性,少用缩写;

  • 文件名,类名,函数命名, 变量命名:使用驼峰命名法 ;

  • 常量,数据库/表/字段命名:全大写,用英文下横线间隔;

5. 质量设计

5.1 可测试性

所有功能必须有对应的单元测试,集成测试,且行测试覆盖率至少85%,方法覆盖率至少90%;

5.2 可维护性

5.3 可观测性

后台提供系统管理面板,显示当前系统CPU,内存,硬盘,网络及各系统在线情况;

6. 演进规划

开发时间为2022年1月1日到2022年2月25日,

6.1 学生管理系统一期

验收时间:2022年1月25日

功能实现:学生管理子系统及权限子系统,具体包括实现权限设置,更新,及可单个添加或批量录入学生信息,并对信息进行查询,删除,修改功能;

6.2 学生管理系统二期

验收时间:2022年2月20日验收

功能实现:课程管理子系统,具体包括课程新增,查询,修改,下架,以及学生抢课功能;