模块三
前言
本文是学生管理系统的详细架构设计文档,用于指导研发、测试及运维。
1. 业务背景
为了降低学校对学生信息及相关活动管理的繁重和效率低下,降低教室资源的浪费。为学生管理工作系统化、自动化,因此研发该学生管理系统。
系统主要解决学生基本信息维护、成绩查询、学生选课、数据统计等功能。
2. 约束和限制
1、保证数据可靠保存
2、保证 10000 人学生规模下,1000 人并发选课正常使用。
3. 总体架构
3.1 架构分析
3.1.1 高可用
由于系统维护学生的基本信息和成绩、选课的内容,只在某个时间段有较高访问量,应用系统无高可用需求,但存储系统为避免数据丢失需要保证一定高可用。
3.1.2 高性能
该系统总用户数量较少,只在选课期间产生一定并发,无需在日常环境支持高并发。
3.1.3 可扩展
学生数量总体保持一定量级,业务范围有限,扩展性不强。
3.2 总体架构

1、业务分为各子系统,保留业务范围扩展以新建子系统形式进行。
2、数据库采用主备模式,保证数据可靠保存。
4. 详细设计
4.1 核心功能
4.1.1 教师排课
1、教室通过权限子系统进行登录。
2、访问课程子系统进行排课。
4.1.2 学生选课
1、学生通过权限子系统进行登录。
2、访问课程子系统进行选课。
3、课程子系统通过访问学生子系统返回学生可选课程。
4.2 关键设计
4.2.1 数据库高可用
1、数据库采用主备结构,读写都在主库,备库用于可用性存储防止主库故障导致数据丢失。
2、数据库按天做备份。
4.3 设计规范
1、Mysql 采用 Innodb 存储引擎。
5 质量设计
5.1 可测试性
单元测试覆盖率达 80%。
5.2 可维护性
1、代码需要有一定注释,变量和方法名要有语义,具备可读性。
2、代码通过 sonar 检测。
5.3 可观测性
日志需选择合适的级别打印,并保证对数据修改操作有日志打印
6 演进规划
外包项目,一次交付。
评论