[架构实战营] 模块三作业:学生管理系统详细架构设计
前言
本文档主要用于对于学生信息管理系统的详细架构设计,用于指导后续的研发与测试。
词汇表
[可选,用于明确定义和说明一些英文缩写、术语等,请用表格来呈现,infoq 写作平台不支持表格,所以只能一个一个的列]
[样例:
Reactor:网络编程模式
Netty:开源的网络编程框架
]
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的工作效率。
2. 约束和限制
1.学校为投资人,预算成本不高。
2.学校总体人数有限。
3.要求数据安全,不能丢失。
4.要具有良好的可扩展性。
3. 总体架构
3.1 架构分析
1,符合目前团队的技术水平。
2,学校的学生数量变化不大,够用很多年
3,满足了数据的安全性。防止数据丢失。
3.2 总体架构
1,将系统拆分为学生管理子系统,权限子系统,课程子系统
2,采用 mysql 主备的方式,保证数据的安全性
3,业务接口通过 http 的方式访问子系统
4,采用 nigx 负责路由规则
4. 详细设计
4.1 核心功能
[必选,描述核心场景或者流程的实现机制,对应 4R 架构中的 Rule,每个核心场景一个小节]
[样例:
4.1.1 消息发送流程
4.1.2 消息消费流程
]
[技巧:使用系统序列图来描述 Rule,跟项目开发中写设计文档一样的写法]
4.2 关键设计
1)学生管理。
1、登录权限,不同的角色具有不同的权限,所展现的功能也不一样
2、账号管理,学生与教师的账号由教务管理员同一根据生成规则录入,学生和老师均可通过此账号绑定自己的手机号,微信号。可以通过手机微信登录。不同专业的学生不同组织架构下。
2)课程管理
1,课程分为选修课与必须课。不同专业与年纪的学生拥有不同的课程。选修课,学生可以选择报读。
2,老师可以发布上传课程到系统,经过教务审核后,可以对学生开放。学生可以有下载课件,提交作业,老师可以评比作业,考勤。
3.教务管理员针对课程进行排课,根据老师提交的考核时间,在学期末进行考试的管理。
3)权限管理
不同的角色拥有同的权限,学生可以登录,选课,查分。教师可以发布课程,考勤,评作业,评考卷。教务处管理员拥有所有的权限。可以增加,删除学生用户,教师用户。可以对教师发布的课程审核。
4)数据存储
采用 mysql 主备模式,提高可用性
4.3 设计规范
1.Mysql 使用 Innodb 做 存储引擎。
2.开发框架使用 springboot。
3.系统间通信使用 htttp 协议。
4.通信数据格式使用 Json。
5.采用 Nigx 做路由转发
5. 质量设计
1.划分了不同的子系统。方便开发测试
2 采用主备数据结构,防止数据丢失
3 部署容易
6. 演进规划
学校在未来多年内学生变化不大。无需考虑演进。
评论