学生管理系统详细架构设计文档
前言
[可选,用于总体上描述本篇文档的内容和目的]
针对学校教学的现状,教育部提出:通过“ 控总量、调结构、提能力、严管控” 确保教学更有效!要求增加对学生学习、教师教学评线上标准化;对教学工作目标严格闭环管控 ,建立学生管理系统 IT 支撑体系。
本文是学生管理系统架构设计文档,用于指导系统后续的开发、测试和运维
词汇表
略
1. 业务背景
[必选,从以下常见的角度来回答,你准备构建或者重构系统的目的和所处的位置是什么,可以是 1 个角度,也可以是多个角度,一般挑选重点的 3 个目的就差不多了:1.解决什么问题;2.带来什么价值;3.实现什么目标;4.完成什么任务;5.处于什么地位。
]
[技巧:使用系统边界黑盒图来描述系统与外界的边界和交互关系]
按照学校对教学工作四统一(统一标准、统一认证、统一考核、统一 IT 化手段建设)的要求,学生管理管理系统是作为提升教学服务管理能力和效率,促进教学工作高效运营的重要措施。系统建设目标概括如下:
统一标准问题:建设统一的学生管理 IT 化支撑系统,支撑学生管理、课程管理、考试管理等各项工作,实现对教学工作的规范化、标准化和精细化管控。
严格管控问题:系统对优化相关服务的人员、事、物等制定详细的管理流程,使优化服务工作实现量化、流程化管理;提升对优化服务工作的管控能力。
2. 约束和限制
[必选,列出明确的约束和限制,常见的约束和限制有:1.投资方的成本要求;2. 监管方的监管要求;3. 技术选型的硬性要求;4. 项目时间要求;5. 质量要求]
[技巧:约束和限制越多越好]
1、系统必须遵循开放性、安全可靠性,采用非商业软件进行构建。
2、系统建设必须基于业界开放式标准,包括各种网络协议、硬件接口、数据库接口等,以保证系统的生命力,保护投资,体现良好的扩展性和互操作能力。
3、系统应遵循简洁、易用、统一风格的中文客户界面,提供维护管理和实时监控功能,简化系统的使用和维护。
4、系统设计应充分考虑扩展性,能够以多种方式支持系统的扩展,包括业务功能的增加,系统升级以及系统扩容等。
3. 总体架构
[必选,描述经过备选架构决策后定下来的架构方案,这一章主要是描述架构的 3R:Rank、Role、Relation]
[技巧:1. 系统边界白盒图描述系统内的角色与外界的交互(Rank + Role + 外部 Relation);2. 系统架构图来描述内部的 Role + 内部 Relation]
[注意:不建议一张图同时描述系统架构的 3R 以及与外界的交互,因为图太复杂,画系统边界白盒图的时候,系统内部的 Relation 可以不画]
整体业务模块图
外部系统交互关系:
分别同学籍管理系统、就业管理系统、教师评优系统进行数据互通,完成从入学到就业一线化,并通过教学工作提供评优依据。
3.1 架构分析
[可选,这部分主要是架构复杂度的分析,基本上从备选架构文档中提炼关键内容过来即可]
[技巧:常见的复杂度都要覆盖到,即使分析后不涉及也要描述,避免评审的时候被人认为遗漏了关键点]
3.1.1 高可用
系统需要保持 7*12 小时可用性。需要进行多节点进行部署。
3.1.2 安全性
系统对应数据有安全性要求,学生、教师个人身份数据需要加密信息存储。要求学生个人身份信息采用 DES256 加密存储。前台呈现时对中间 4 位以*替代。
3.1.3 可靠性
系统采用关系型数据进行存储。采用主从节点模式保障数据的可靠性。
3.2 总体架构
[必选,描述总体架构设计]
[技巧:
1.用系统架构图来描述架构,如果是前端或者客户端,用前端架构图或客户端架构图来描述架构
2.基于架构图中的内容,使用文字描述 Role、Relation 的基本内容,文档目录可以自由调整
]
1、框架选择 springmv,不进行前后端分离
2、根据模块业务内容,以服务模块方式进行工作划分。独立业务分为课程管理、学生管理、考试管理、教辅管理四个大模块。
3、前端通过 nginx 进行转换,采用两节点主备模式
4、数据库 mysql 主从配置。mysql 使用 5.7.12 版本,采用 binlog 同步方式进行主从搭配。
4. 详细设计
[必选,描述核心场景或者流程的实现机制]
4.1 核心功能
[必选,描述核心场景或者流程的实现机制,对应 4R 架构中的 Rule,每个核心场景一个小节]
[技巧:使用系统序列图来描述 Rule,跟项目开发中写设计文档一样的写法]
4.1.1 学生选课流程
4.1.2 在线签名流程
4.2 关键设计
[必选,描述系统的一些关键设计点是如何实现和取舍的]
[技巧:常见的关键设计点包括高性能、高可用、可扩展、安全等]
1)安全性
基于加密算法,有选择性地加密敏感字段内容,保护数据库内敏感数据的安全产品。敏感数据以密文的形式存储,能保证即使在存储介质被窃取或数据文件被非法复制的情况下,敏感数据仍是安全的。
2)可靠性
数据存储在 MySQL 中,每个分组有一主一备两台 MySQL 服务器,MySQL 服务器之间复制消息以保证数据存储高可用。如果主备间出现复制延迟,恰好此时 MySQL 主服务器宕机导致数据无法恢复,则部分消息会永久丢失,这种情况不做针对性设计,DBA 需要对主备间的复制延迟进行监控,当复制延迟超过 30 秒的时候需要及时告警并进行处理。
4.3 设计规范
[必选,描述 Role 和 Relation 相关的开发框架、连接协议、数据包格式等]
[技巧:如果某个规范涉及内容比较多,请独立章节描述,例如数据包格式定义]
1)使用 Springmvc + tomcat 开发
2)MySQL 使用 Innodb 存储引擎
5. 质量设计
[必选,描述和质量相关的设计,包括:可测试性、可维护性、可观测性、成本等设计]
[技巧:如果某个维度不涉及,也请在文档中说明,避免评审的时候被认为考虑不周全]
5.1 管理后台
增加后台管理模块,用于维护基本人员关系。
5.2 成本
成本需要控制不必要的服务器成本。
6. 演进规划
[必选,可以是演进规划,也可以是项目计划,需要描述每个里程碑或者版本具体要实现的能力]
[技巧:开发阶段快速迭代,小步快跑,但要基本完善后才能正式推出给其他人用]
6.1 二期
二期考虑完成微服务架构体系,目标使用人数超过 1 万人。
评论