写点什么

架构实战营 模块三 作业

发布于: 3 小时前

前言

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


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. 演进规划

学生管理系统一期:提供基本的学生管理、课程管理功能。

学生管理系统二期: 提供视频课堂,直播教学,直播答疑等比较高级的课程功能呈现。

用户头像

还未添加个人签名 2018.04.14 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 模块三 作业