写点什么

[架构实战营] 模块三作业:学生管理系统详细架构设计

作者:Geek_99eefd
  • 2021 年 11 月 14 日
  • 本文字数:1223 字

    阅读完需:约 4 分钟

前言

本文档主要用于对于学生信息管理系统的详细架构设计,用于指导后续的研发与测试。

 

词汇表

[可选,用于明确定义和说明一些英文缩写、术语等,请用表格来呈现,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. 演进规划

学校在未来多年内学生变化不大。无需考虑演进。

用户头像

Geek_99eefd

关注

还未添加个人签名 2021.07.13 加入

还未添加个人简介

评论

发布
暂无评论
[架构实战营]模块三作业:学生管理系统详细架构设计