模块三作业:外包学生管理系统架构文档
前言
本文是外包学生管理系统详细架构设计文档,用于指导学生管理系统后续的开发、测试和运维。
词汇表
Springboot:Java Web 应用开发框架
1) 业务背景
随着学校规模不断扩大,学生数量不断增加,需要处理的信息也日趋增大。不仅花费了大量教师资源,处理效率也十分低下。为了提高学生管理水平,优化资源,降低管理成本,学校决定研发学生管理系统。系统主要用于学校学生信息管理(如:学籍、课程、成绩、奖惩),总体任务是实现学生信息管理的系统化、规范化和自动化。
2) 约束和限制
开发预算低
系统运维预算低
3)总体架构
3.1)架构分析
可扩展:业务需求比较复杂
数据高可用:数据不能全部丢失
3.2)总体架构
将系统拆分为学生子系统、课程子系统、权限子系统以应对业务可扩展复杂度。数据库采用主备服务器以保住数据的高可用需求。
4)详细设计
系统的核心功能包括:选课、排课、考试等。
4.1)核心功能
考试核心场景的设计
4.2)关键设计
1. 业务可扩展性
将系统拆分为学生子系统、课程子系统、权限子系统。各个子系统独立开发,独立部署。
2. 数据高可用性
数据存储采用一主一备两台 MySQL 服务器。MySQL 服务器之间采用复制数据以保证数据存储高可用。如果主备出现复制延迟,恰好此时 MySQL 主服务器宕机导致数据无法复制,则部分数据永久丢失。这种情况不做针对性设计。
4.3)设计规范
各个子系统采用 Springboot 开发;
子系统之间通过 RESTFUL 风格 API 进行调用,参数通过 JSON 数据格式传输;
MySQL 数据库 Innodb 存储引擎。
5)质量设计
可测试性:设计清晰的容易测试的 API 接口。
可维护性:本设计不考虑对接学校运维系统。
可观测性:启用 Springboot actuator 观察应用运行状态。
成本:基于项目低开发成本和低运维成本,不使用微服务架构。
6)演进规划
项目为外包项目,暂无演进计划。
评论