模块三作业:学生管理系统架构设计文档
前言
本文是学生管理系统的架构设计文档,用于指导学生管理系统的后续需求、开发、测试和部署和运维工作。
词汇表
MySQL
MyBatis
SpringBoot
SpringCloud
Shiro
Thymeleaf
Vue
Element
Bootstrap
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 约束和限制
1)时间: 2021.12.31 号前完成
2)项目金额:100 万
3)数据库采用 MySQL
4)质量标准符合 ISO9001 标准
3. 总体架构
学生管理系统整体没有与外部系统的交互,省略系统边界黑盒图此。
系统边界白盒图:
3.1 架构分析
3.1.1 高可用
系统对学生信息的管理只是起辅助作用,即便系统宕机,学校仍然可以进行上课、考试等,所以对系统的高可用要求并不高。但是如果数据丢失,重新录入数据会很麻烦,对存储系统的高可用的要求比较高,所以采用 MySQL 的主备模式。
3.1.2 高性能
学校在校学生人数正常几千人多的也只有几万人,单体结构加 MySQL 单机足以满足性能需求。
3.1.5 可拓展性
学校对系统的需求变化频率较高,拆分成子系统易于修改,或通过添加子系统来实现新功能的开发。
3.1.3 成本
总体对性能和高可用性要求不高,正常需要 4 台机器即可,成本不高,不需要额外做更多的考虑。
3.1.4 安全
虽然都是公开的数据,但仍然需要保护好数据,防止篡改。需要做好权限管理。
3.2 总体架构
1)将系统分为学生子系统,课程子系统,权限子系统。
2)为防止数据丢失,采用主备数据复制方式,包括一台主 mysql,和一台备 mysql。
3)采用 Nginx 服务器
4. 详细设计
4.1 核心功能
4.1.1 学生子系统
1)系统登录
2)账号分配
3)账号绑定
4)组织管理层级
5)文件上传/下载
6)信息查询
4.1.2 课程子系统
1)课程录入
2)选课功能
3)排课功能
4)教材选择
5)试卷区域分割。
6)平时成绩
7)评分判定
4.1.3 权限子系统
1)系统使用者有学生、教师、管理员、辅导员。
2)学生、教师、辅导员可以注册、登录、修改自己的信息,但注册信息需要管理员审核通过。
3)学生只能查看自己的成绩,教师可以修改学生的成绩。
4)辅导员可以查看学生的信息,可以设置学生的奖惩信息。
5.教师可以上传考试试题,学生可以做题
4.2 关键设计
4.2.1 MySQL 主备模式
由于数据丢失的结果比较难以接受,所以采用 MySQL 主备模式,保证数据的安全。
4.2.2 JWT
由于拆分为 3 个子系统,每个子系统部署在不同的机器上,且系统没有引入 redis 等缓存组件,所以设计使用 jwt 作为授权校验和记录用户状态。
4.3 设计规范
1)使用 HTTP 协议通信。(ABNF)详细描述包括 header、message-body 的详细格式...
2)采用 ubantu
3)使用 spring boot 集成 spring mvc 和 mybatis
4)JWT 做授权校验和状态管理
5)接口命名规范
6)代码管理规范。使用 git 做版本控制,确定 workflow、commit 模板、change log、tag 命名等...
7)代码编写规范...
8)项目文档规范。项目关键信息记录,子系统负责人、技术文档 ...。
9)数据库规范,建表规范(数据引擎,字符集、行格式等)、字段命名规范 (字符集、类型、长度等)、索引命名 &创建规范...
10)发版规范...
11)生产操作规范。...
5. 质量设计
1)可测试性
可以通过各个功能模块的接口,来进行系统的功能、性能测试
2)可维护性
可通过系统日志,来定位、修复问题;准备好系统的启动、停机的脚本
3)可观测性
可以通过各个功能模块的接口、系统的日志、系统常见指标的监控来观察系统的内部运行情况
4)安全
通过防火墙来阻断常见的网络攻击,保障系统的安全性
6. 演进规划
6.1 项目一期
实现学生子系统、权限子系统、
6.2 项目二期
实现课程子系统
6.3 项目三期
实现考试子系统
评论