模块三作业
写出外包学生管理系统的架构文档
【作业要求】
1. 基于模块 1 第 5 课第 15 页的外包学生管理系统备选架构 1(见下页),写出完整的架构设计文档;
2. 注意不是备选架构文档,而是最终落地的详细架构设计文档;
3. 无需考虑数据库表设计,因为表设计是方案设计阶段做的,不是架构设计阶段做的;
【提示】
1. 架构设计文档是完整的文档(Word 或者语雀文档之类的都可以),而不是 PPT;
2. 架构文档涵盖的内容请参考模块 3 第 4 课,细化架构设计参考模块 3 第 6 课;
3. 外包学生管理系统的业务请参考模块 1 第 5 课的课件;
4. 架构文档模板可以参考:架构实战营详细架构设计文档模板。
详细架构设计文档
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,
处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从
学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改
不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高
信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其
主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等
功能设计的管理系统。
2. 约束和限制
成本不能超过 100 万
数据库采用 MySQL,保证数据高可用
业务拆分:学生子系统、课程子系统、权限子系统三个子系统
要求至少 3 人合作完成;
能够支撑管理 1000 个学生;
3. 总体架构
3.1 架构分析
高可用
对于老师来说,如果数据丢了,导致他们没法进行选课相关等操作,显然是不怎么友好的事情;
对于学生来说,如果数据丢了,导致他们没法进行排课相关等操作,显然是非常严重的事情;
综合来看,课程需要高可用性,包括课程写入、课程存储、课程读取都需要保证高可用性。
高性能
对性能方面无高要求,只需保证系统无卡顿、延迟严重的问题即可。
可扩展
随着学校每年招生人数,同时也有毕业学生,系统需要具备一定可扩展性。
3.2 总体架构
代理服务器:Nginx
业务系统划分:学生子系统、课程子系统、权限子系统。
存储服务器:MySQL 主备。
4. 详细设计
4.1 核心功能
学生子系统
系统登录:此功能面向所有用户角色,根据用户角色权限不一,功能权限也不一样。
账号分配:学生账号由系统生成,给定相应权限,可进行密码更改。
账号绑定:学生账号可通过第三方如:手机号码、微信等自行绑定,可实现账号自助找回等。
组织管理层级:按学生实际情况划分归属。 。
文件上传/下载:此功能针对所有用户开放,学生可以将自己课堂笔记、日常作业等相关信息在线传输。
信息查询:此项功能包含课程查询、成绩查询、文件查询。
课程子系统
课程录入:由管理员对相应课程体系进行录入,供学生、教师进行在线选择。
选课功能:学生可以在线对自己的课程体系进行选择,相对应的课程选择功能类比。
排课功能:此功能根据学生选定的课程和教学体系安排,对相应教师、教室、时间进行统一规划安排。
教材选择:此功能由教务统一管理,根据每门课程选定相应教材。
试卷区域分割:发起考试:期中的时候,教师可以创建一次考试。
平时成绩:此项功能包含学生平时所有相关成绩信息。
评分判定:教师使用系统对上传的试卷分割区域作出相应的评分。
权限子系统
系统使用者有学生、教师、管理员、辅导员。
学生、教师、辅导员可以注册、登录、修改自己的信息,但注册信息需要管理员审核通过。
学生只能查看自己的成绩,教师可以修改学生的成绩。
辅导员可以查看学生的信息,可以设置学生的奖惩信息。
教师可以上传考试试题,学生可以做题。
4.2 关键设计
课程存储可靠性
课程存储在 MySQL 中,MySQL 有主备两台服务器,MySQL 服务之间复制消息以保证课程存储高可用。如果主备间出现复制延迟,恰好此时 MySQL 主服务器宕机导致数据无法恢复,则部分课程会永久丢失,这种情况不做针对性设计。
4.3 设计规范
接口遵循 restful 规范
前后端分离
使用 JAVA 1.8
连接池使用 Druid
MySQL 使用 Innodb 存储引擎
5. 质量设计
可测试性:关键接口需要单元测试
可维护性:建议采用代码评审机制
可观测性:若采用云厂商,则不需过多考虑。若非如此,则需要考虑监控相关方面
成本:约束和限制中已经提到。成本需控制在 100 万以内
6. 演进规划
第一期:实现学生管理、课程管理基本功能。
第二期:实现考试、成绩统计分析、权限相关功能。
评论