写点什么

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

作者:圈圈gor
  • 2021 年 12 月 30 日
  • 本文字数:1871 字

    阅读完需:约 6 分钟

前言

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

词汇表

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

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

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

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

1. 业务背景

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


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


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


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


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

2. 约束和限制

  1. 支持当前主流 PC 浏览器,包括 Chrome 90+,FireFox,Edge,及 IE11+;

  2. 支持管理 5000 位学生;

  3. 必须在 2022.02.25 完成;

  4. 成本不能超过 20 万;

  5. 数据库采用 MySQL;

  6. 可用性达 99.9%;

  7. 质量标准符合 ISO9001-2008 标准;


3. 总体架构

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

  1. 学生子系统;

  2. 课程子系统;

  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 框架工具

  1. 前端采用 Vue3+vue-route;

  2. 后端采用 SpringBoot 2.6.2 +Spring Data JPA +Spring Security;

  3. 数据库 MySQL 使用 Innodb 存储引擎;

4.3.2 前后端接口规范

4.3.2.1 URL

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

https://api.example.com/v1/student/addhttps://api.example.com/v1/course/addhttps://api.example.com/v1/course/assignhttps://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 可维护性

  1. 为管理员提供必要接口及权限,可重启服务/系统;

  2. 提供异常通知功能,当系统异常时可通过短信或微信通知到管理员;

5.3 可观测性

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

6. 演进规划

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

6.1 学生管理系统一期

验收时间:2022 年 1 月 25 日

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

6.2 学生管理系统二期

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

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


发布于: 刚刚
用户头像

圈圈gor

关注

还未添加个人签名 2018.07.03 加入

还未添加个人简介

评论

发布
暂无评论
模块三-学生管理系统详细架构设计