写点什么

学生管理系统架构设计文档示例 - 模块 3

用户头像
小牧ah
关注
发布于: 2021 年 07 月 28 日

前言


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

词汇表

...

1. 业务背景


问题:

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。当前维护方式不方便,数据分析耗时长等问题,不仅花费大量的教师资源,处理效率也十分低下。


目标:

降本增效,通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高

信息的准确度以及日常管理的工作效率。


范围:

系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范

化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩


2. 约束和限制

[必选,列出明确的约束和限制,常见的约束和限制有:1.投资方的成本要求;2. 监管方的监管要求;3. 技术选型的硬性要求;4. 项目时间要求;5. 质量要求]


  1. 必须保证存储高可用,数据不要全部丢失

  2. 尽量使用云上基础设施,降低运营成本


3. 总体架构

3.1 架构分析


高性能:学生管理系统用户少,一般学校不超过 1W 人,各业务场景对高性能要求不高

高可用:学生管理系统宕机,对实际教学任务影响较小,对计算高可用要求不高,但是学生数据信息要求不能丢失,需要考虑存储高可用

可扩展:业务相对复杂,需要按业务进行拆分

成本:系统使用量少,无需专门做节约成本的设计,尽量节约研发、运维成本

安全:数据基本不涉及隐私的数据和金钱数据,安全性要求不高


3.2 总体架构



整个系统进行架构分层,分为接入层,业务层,存储层。

1.接入层采用 nginx,进行统一接入,以及负载均衡的访问各个业务子系统

2.业务层对关键业务进行功能划分成 4 个关键子系统:学生子系统,课程子系统,考试子系统,权限子系统,方便后续独立进行伸缩

3.存储层则是 MySQL 主备架构,一主一备,提供存储高可用,保障数据不丢


整体学生管理系统分为 4 个关键子系统(Role):

学生子系统:维护学生信息的管理,比如账户信息,角色信息,身份认证等

课程子系统:进行课程的管理,比如维护所有课程的基本信息,给学生提供选课功能,给老师提供排课功能等

考试子系统:进行考试全流程的管理,包括考试安排,考试出题,生成试卷,考完后的自动阅卷评分,以及考试成绩的管理

权限子系统:使用系统的角色包括,学生、教师、辅导员、管理员,每个角色都有相应的权限。


4. 详细设计


4.1 核心功能

[必选,描述核心场景或者流程的实现机制,对应 4R 架构中的 Rule,每个核心场景一个小节]

[技巧:使用系统序列图来描述 Rule,跟项目开发中写设计文档一样的写法]


4.2 关键设计


存储高可用

由于系统对计算可用性没有那么高,对系统停机没那么敏感,但需要保证数据不丢,因此采用 MySQL 主备架构,采用一主一备即可,主备切换采用手动切换方式即可

4.3 设计规范


开发框架

后端开发框架:SpringBoot、SpringCloud

前端开发框架:vue、element-ui

工程目录规范

参照领域驱动设计方法,对项目结构进行划分

展示层:

com.xsoft.edu-platform.web:展现层内容

应用层:

com.xsoft.edu-platform.application.contracts:应用接口层,应用层接口,DTO

com.xsoft.edu-platform.application:应用实现层

领域层:

com.xsoft.edu-platform.domain.shared: 领域层与其它层共享的数据类型的定义.例如,枚举,常量等。

com.xsoft.edu-platform.domain: 领域层核心,实体,值对象,领域服务,规约,仓储接口等。

基础设施层:

com.xsoft.edu-platform.jpaRepositoryImpl:仓储接口实现层,采用 Jpa 实现

接口规范

  • 采用 rest api 风格

  • 返回结果:{"success":true, "data":{}, "errMsg":"", "stackTrace":""}


5. 质量设计


  1. 可观测性:

  • 规范输出、记录,包括:应用异常日志,访问日志,nginx 访问日志,数据库异常日志,慢查询日志

  • 服务提供存活检测、就绪检测接口,暴露服务状态

  1. 稳定性保障:

运维根据服务放提供的需要检测的内容,配置日志监控预警功能,包括 nginx 异常,业务服务存活,应用内部异常的监控预警


6. 演进规划


项目规划

整体项目规划为 2 个里程碑,一期完成核心功能,二期完成非核心功能,增强易用性的功能

  1. 一期实现核心功能包括 4 个业务子系统的核心功能

  • 学生管理系统:系统登录、账号分配、账号绑定、组织管理层级、文件上传下载、信息查询

  • 课程管理系统:课程录入,选课,排课(先采用人工录入)

  • 考试系统:试卷区域分割(试卷录入先采用人工录入)、平时成绩管理、评分判定

  • 权限管理:完整的角色权限体系,功能权限

  1. 二期完成非核心功能、易用性增强

  • 课程管理系统实现在线选课

  • 考试系统,增加图片识别,扫描试卷录入


架构规划

整体架构采用演进原则

  1. 先做单体模块化拆分,按业务切分 4 个子系统模块

  2. 后续随着业务模块的增加,系统使用量的增加,可将模块提取为独立的服务,逐步从单体演进为微服务架构

用户头像

小牧ah

关注

还未添加个人签名 2018.02.24 加入

还未添加个人简介

评论

发布
暂无评论
学生管理系统架构设计文档示例-模块3