模块三 - 学生管理系统详细架构设计
前言
本文为学生学生管理系统详细架构设计文档,用于指导后续的开发、测试和运维,涵盖业务背景,约束和限制,总体架构,详细设计,质量设计以及演进规划。
词汇表
Nginx: 异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存;
MySQL: 当前一种主流的开放源码关系数据库管理系统;
SpringBoot: 构建在 Spring 框架顶部,并提供了一种简便,快捷的方式来设置,配置和运行基于 Web 的简单应用程序;
Tomcat: Apache 软件基金会属下 Jakarta 项目开发的 Servlet 容器;
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。
2. 约束和限制
支持当前主流 PC 浏览器,包括 Chrome 90+,FireFox,Edge,及 IE11+;
支持管理 5000 位学生;
必须在 2022.02.25 完成;
成本不能超过 20 万;
数据库采用 MySQL;
可用性达 99.9%;
质量标准符合 ISO9001-2008 标准;
3. 总体架构
由前面业务介绍可知系统功能可划分以下子系统:
学生子系统;
课程子系统;
权限子系统;
具体功能划分如下:
3.1 架构分析
3.1.1 高可用
该系统对教学依赖并不强,所以功能可用性要求相对不高。
3.1.2 高性能
该系统总体用户数并不多,且学校的规模扩展相对稳定,所以性能要求方面不高。
3.1.3 可扩展
用户规模增长稳定,所以性能扩展方面要求不大,但是考虑后续需求变化,所以在设计数据存储以及功能时,需要注意预留一定的扩展点。
3.14 成本
成本包括开发团队人员薪酬,服务器购买及域名注册相关费用,其中人员薪酬约占 80%。
3.15 安全
系统数据主要包括用户(教师/学生)信息,课程信息,其中用户信息包含身份症,学号信息等敏感信息,一旦泄露将对用户产生极大不良影响,因此需要对用户信息作一定的加密处理以保证安全。
3.2 总体架构
用户请求通过 N
4. 详细设计
4.1 核心功能
4.1.1 学生子系统
4.1.2 学生子系统
4.2 关键设计
4.3 设计规范
4.3.1 框架工具
前端采用 Vue3+vue-route;
后端采用 SpringBoot 2.6.2 +Spring Data JPA +Spring Security;
数据库 MySQL 使用 Innodb 存储引擎;
4.3.2 前后端接口规范
4.3.2.1 URL
应符合 version/module/action 模式,并且不能有动词,只能有名词,如下:
4.3.2.2 JSON
JSON 主体:
说明如下:
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 日验收
功能实现:课程管理子系统,具体包括课程新增,查询,修改,下架,以及学生抢课功能;
版权声明: 本文为 InfoQ 作者【圈圈gor】的原创文章。
原文链接:【http://xie.infoq.cn/article/38ed7db4be0613ebdff318ddf】。未经作者许可,禁止转载。
评论