外包学生管理系统架构设计文档
前言
本文是外包学生管理系统详细架构设计文档,用于指导外包学生管理系统后续的开发、测试和运维。
词汇表
无
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。为提高学生管理的管理水平,优化资源,尽可能降低管理成本,需要搭建一套学生管理系统。
该系统从学生管理的现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 约束和限制
1.必须在 2022.05.31 号前完成
2.成本不能超过 100 万
3.数据库采用 Mysql
4.系统可支持 10 万注册用户
5.后端采用 Java 语言开发
6.基本的系统安全防护
3. 总体架构
3.1 架构分析
3.1.1 高可用
学生管理系统是内部使用的系统,可用性要求不高,允许短时间的系统故障,故无需考虑多机房或者异地多活等高可用方案。业务子系统服务采用集群部署,后台管理子系统单节点部署。数据库采用 Mysql 主备存储方案,保证数据不会丢失。
3.1.2 高性能
由于是内部使用对系统,用户规模小,系统对性能要求不高。
3.1.3 可扩展
用户规模相对固定,功能不复杂,无需考虑太多的扩展功能
3.1.4 安全
局域网内部使用的系统,常规的访问权限控制,账户及角色权限控制,敏感信息加密或者脱敏处理。
3.2 总体架构
4. 详细设计
4.1 核心功能
4.1.1 学生管理
4.1.2 课程管理
4.1.3 权限管理
4.2 关键设计
1. 系统拆分为三个业务子系统,降低了耦合,各子系统可以单独开发、测试和部署,具有良好的可扩展行和伸缩性。
2. 三个业务子系统分别部署两个节点做集群,保证一定的可用性和性能。
3. Mysql 采用主备架构,提供较好的灾备恢复能力,同时保证了数据的安全性。
4.3 设计规范
1.前后端分离,后端服务采用 Spring boot 开发,前端通过 restful 接口和后台服务交互,后端各子系统通过 netty 接口访问。
2.Mysql 使用 innoDB 存储引擎
5. 质量设计
5.1 可测试性:
代码单元测试覆盖率大于 90%
5.2 可维护性:
代码规范和质量,可通过 sonar 插件扫描检查
5.3 可观测性
后台管理修改数据需要记录轨迹,可追溯
6. 演进规划
6.1 学生后台管理系统一期
完成三个业务子系统的主体业务功能
后台管理子系统保证核心模块功能可用
6.2 学生后台管理系统二期
根据一期试用反馈的问题及收集的优化建议,进行二期功能的完善和优化;
后台管理子系统模块功能完善和丰富,增加适当的系统日志查看及部分系统监控功能
版权声明: 本文为 InfoQ 作者【大眼喵】的原创文章。
原文链接:【http://xie.infoq.cn/article/7825e32e5c65c8876bd1e454e】。未经作者许可,禁止转载。
评论