写点什么

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

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

前言

本文是外包学生管理系统详细架构设计文档,用于指导学生管理系统后续的开发、测试和运维。

词汇表

Springboot:Java Web 应用开发框架

1) 业务背景

随着学校规模不断扩大,学生数量不断增加,需要处理的信息也日趋增大。不仅花费了大量教师资源,处理效率也十分低下。为了提高学生管理水平,优化资源,降低管理成本,学校决定研发学生管理系统。系统主要用于学校学生信息管理(如:学籍、课程、成绩、奖惩),总体任务是实现学生信息管理的系统化、规范化和自动化。

2) 约束和限制

  1. 开发预算低

  2. 系统运维预算低

3)总体架构


3.1)架构分析

可扩展:业务需求比较复杂

数据高可用:数据不能全部丢失

3.2)总体架构


将系统拆分为学生子系统、课程子系统、权限子系统以应对业务可扩展复杂度。数据库采用主备服务器以保住数据的高可用需求。

4)详细设计

系统的核心功能包括:选课、排课、考试等。

4.1)核心功能

考试核心场景的设计


4.2)关键设计

1. 业务可扩展性

将系统拆分为学生子系统、课程子系统、权限子系统。各个子系统独立开发,独立部署。

2. 数据高可用性

数据存储采用一主一备两台 MySQL 服务器。MySQL 服务器之间采用复制数据以保证数据存储高可用。如果主备出现复制延迟,恰好此时 MySQL 主服务器宕机导致数据无法复制,则部分数据永久丢失。这种情况不做针对性设计。

4.3)设计规范

  1. 各个子系统采用 Springboot 开发;

  2. 子系统之间通过 RESTFUL 风格 API 进行调用,参数通过 JSON 数据格式传输;

  3. MySQL 数据库 Innodb 存储引擎。

5)质量设计

  1. 可测试性:设计清晰的容易测试的 API 接口。

  2. 可维护性:本设计不考虑对接学校运维系统。

  3. 可观测性:启用 Springboot actuator 观察应用运行状态。

  4. 成本:基于项目低开发成本和低运维成本,不使用微服务架构。

6)演进规划

项目为外包项目,暂无演进计划。


用户头像

Felix

关注

还未添加个人签名 2019.02.14 加入

还未添加个人简介

评论

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