写点什么

架构实战训练营 - 模块 3- 作业

作者:温安适
  • 2021 年 12 月 19 日
  • 本文字数:1096 字

    阅读完需:约 4 分钟

作业内容

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

【作业要求】

1. 基于模块 1 第 5 课 P15 页的外包学生管理系统备选架构 1(见下 1 页),写出完整的架构设计文档;

2. 注意不是备选架构文档,而是最终落地的详细架构设计文档;

3. 无需考虑数据库表设计,因为表设计是方案设计阶段做的,不是架构设计阶段做的;

【提示】

1. 架构设计文档是完整的文档(Word 或者语雀文档之类的都可以),而不是 PPT;

2. 架构文档涵盖的内容请参考模块 3 第 4 课,细化架构设计参考模块 3 第 6 课;

3. 外包学生管理系统的业务请参考模块 1 第 5 课的课件;

4. 架构文档模板可以参考:架构实战营详细架构设计文档模板

业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。


系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范


化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。

约束 &限制

总体架构设计


详细架构设计

Role &Relation

客户端 Role 设计

  1. 客户端端采用 VU,H5 开发,支持手机浏览和 PC 浏览

服务器 Role 设计

1.服务器基于 Java 语言,采用SpringBoot 2.2


2.基于 Spring MVC,开发 restful 接口


3.基于Mybatis,操作 MySQL 数据库


4.服务器依托于nginx作为反向代理


5.服务间调用,采用OpenFeign


6.采用阿里云 OSS 存储,图片,文件等资源。

客户端与服务器的 Relation 设计

  1. 客户端与服务器,采用 HTTPS 交互,采用 JSON 传递数据

  2. 图片文件等资源,经过阿里云 CDN 进行访问

MySQL 的 Role 和 Relation 设计

  1. 采用 MySQL 的主从同步

  2. 每个服务,有独立的库

  3. 数据最多保存 3 年,三年以外数据存储在冷备份。

  4. 3 年内直接用 MySQL 的主从复制来实现数据的复制。

  5. 3 年以外数据,由定时程序进行迁移。

Rule 设计

学生学籍管理

  1. 学生子系统,依托于权限子系统设计 2 种角色,管理员和学生,每个角色都有唯一的名称。

  2. 学生子系统,从权限子系统获取权限

  3. 管理员角色可以批量添加,修改学生学籍。

  4. 学生角色,仅能查看自己的学籍角色。

课程管理

  1. 课程管理系统,依托于权限子系统设计 3 中角色,管理员,授课老师,学生,每个角色都有唯一的名称。

  2. 课程管理系统,从权限管理系统获取权限,向学生子系统同步学生成绩。

  3. 管理员可以修改任意课程的开课时间,学时等信息。

  4. 授课老师可以修改自己负责的课程的信息,并对选课学生考试进行评分。

  5. 学生可以选课,查看自己选课的内容。

权限管理

1.权限子系统,基于 RBAC,其他子系统对于权限的要求。

系统边界图


架构质量设计

可测试性

Sonar 扫描工具,强制单元测试覆盖率超过 50%

安全

渗透性测试,尽可能找出系统的漏洞。

规范

使用 Spring Boot + Mybatis+SpringMVC


MySQL 使用 Innodb 存储引擎


代码规范参考 Alibaba Coding Guide Line

架构演进


发布于: 10 小时前阅读数: 7
用户头像

温安适

关注

还未添加个人签名 2020.03.29 加入

还未添加个人简介

评论

发布
暂无评论
架构实战训练营 - 模块 3- 作业