架构实战营 模块三 作业
前言
本文是学生管理系统的架构文档,用于指导学生管理系统的方案设计、开发、测试和后续的运维工作。
1. 业务背景
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 约束和限制
1、成本:成本尽量控制,不要适用成本过高的方案。
2、时间:开发时间不能过长,保证在三个月内能实现功能开发
3、技术:技术尽量使用难度较低,开源且成熟的方案。
4、质量:能满足基本的学生管理,保证支撑学生人数内的使用即可,不需要支持高并发,但是功能要满足学生管理日常需求。数据有一定安全要求,需要主从备份。
3. 总体架构
本系统主要供学生、老师和管理员使用。
学生主要功能:学生信息注册、课程选择、课程学习、考试测验和成绩查询
老师主要功能:课程信息录入、作业批改、考试成绩发布
管理员主要功能:学生信息维护、权限相关设置、老师信息维护、课程管理、考试管理
本系统主要分为三个子系统,前端由 Nginx 构成,三个子系统提供后端业务服务,使用 MySql 进行持久化存储。MySQL 设计主从备份设计,保证数据安全。
3.1 架构分析
3.11 高可用:学校人数万人基本,同时使用系统的可能性不高,不需要支撑非常大的高并发
3.12 可扩展:学生管理系统功能比较固定,不需要考虑太多的扩展性
3.13 数据可靠性:学生课程和考试信息对于学生和学校还是比较重要的信息,需要考虑主从备份,防止数据丢失。
3.14 可维护性:管理员日常维护的信息比较少,可以简易考虑。
3.2 总体架构
1、前端使用 Nginx 分发。
2、后端系统使用 Spring 框架开发,分为三个子系统管理各自的业务功能,部署在一台服务器上。
3、数据库使用 MySql 主从备份,主库向备库同步数据,保证数据安全性。
4. 详细设计
4.1 核心功能
学生子系统:主要管理学生信息。
主要模块:学生信息注册,学生信息管理等
课程子系统:主要管理课程相关
主要模块:课程信息管理,课程学习,作业管理,考试管理等
权限子系统:主要管理权限、后台信息。
主要模块:学生信息维护,课程信息维护,权限控制,角色维护等
4.2 关键设计
1、分为三个子系统,每个子系统管理自己的内容,子系统直接通过接口访问,明确子系统各自负责的功能。后续扩展功能分入对应子系统。
2、数据库使用主从备份,防止数据丢失。
4.3 设计规范
1、使用 Spring 框架作为业务层开发框架,使用 mybatis 作为 ORM 层开发框架
2、前端使用 Jquery 作为开发框架。
3、前端与后台使用 JSon 进行数据交互。
5. 质量设计
1、数据库使用主从备份,防止数据丢失。
2、成本控制,后台部署一台服务器即可。
3、安全:考虑防 SQL 注入,数据库和服务器可放入内网,只供学校内网使用,防止被外网攻击。
6. 演进规划
学生管理系统一期:提供基本的学生管理、课程管理功能。
学生管理系统二期: 提供视频课堂,直播教学,直播答疑等比较高级的课程功能呈现。
评论