写点什么

模块三作业:学生管理系统架构设计文档

用户头像
apple
关注
发布于: 2 小时前

前言

本文是学生管理系统的架构设计文档,用于指导学生管理系统的后续需求、开发、测试和部署和运维工作。

 

词汇表

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 项目三期

实现考试子系统

用户头像

apple

关注

还未添加个人签名 2018.05.12 加入

还未添加个人简介

评论

发布
暂无评论
模块三作业:学生管理系统架构设计文档