写点什么

模块三作业

作者:小鹿
  • 2021 年 11 月 11 日
  • 本文字数:1859 字

    阅读完需:约 6 分钟

写出外包学生管理系统的架构文档

【作业要求】

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

  • 第一期:实现学生管理、课程管理基本功能。

  • 第二期:实现考试、成绩统计分析、权限相关功能。

用户头像

小鹿

关注

还未添加个人签名 2020.04.16 加入

还未添加个人简介

评论

发布
暂无评论
模块三作业