上节课《从零开始学会画系统架构图》中我给大家介绍了画系统架构图的通用公式,用它可以拆解任何系统,帮我们画出整洁专业的系统架构图。
上节课我们大部分内容是用实际的例子给大家讲清楚这个公式的底层逻辑,以及详细地交待了画架构图的两个必备基础语法,本节我们从理论走向实践,带大家一起用公式,拆解系统性需求、画系统架构图。
在画架构图之前请大家一定确保有仔细学上一节关于UML部署图和构件图的内容,尤其是语法,在画图的时候如果忘了一定时不时的回到上一节课去确认一下自己画的对不对。
这节课我们就拿上节OA系统--微服务版架构图(下图)来给大家演示怎么用一步步画出专业且整洁的架构图。
![f2e7b4f15a53a14a6200ec1d096d867b.jpeg](https://img-blog.csdnimg.cn/img_convert/f2e7b4f15a53a14a6200ec1d096d867b.jpeg)
这几节课干货满满,抓紧订阅起来吧,早订阅早享受,苹果用户在微信直接订阅价格会高于安卓用户,所以专栏在小报童同步更新,可以通过扫描二维码在小报童订阅阅读,规避额外开销。
上节课我们说过,架构图存在的意义是它能以一种直观的表现形式表达系统的非功能性需求,比如系统安全性、易用性、性能方面的需求以及系统在已有IT资源利用性和已有系统兼容对接上的需求都算是非功能性需求。
非功能性需求怎么获取呢?主要是通过与客户/甲方/PM进行沟通(跟谁沟通取决于你做的内部还是外部项目),在进行整理归纳梳理出来的,这个沟通环节我就不跟大家还原了,牢记画任何架构图前,我们都需要先确认系统关于架构的要求,客户想要达到什么样的效果。下面是本次实战示例的系统架构信息。
该系统是一套为公司员工提供考勤和费用报销线上化处理的在线OA系统,其IT架构方面的需求信息如下:
该系统支持手机、笔记本和办公台式机三种终端登录到系统,其中手机、笔记本以互联网的方式连接系统而台式机只能由公司内网链接系统。
公司有大概200名员工,根据工种不同配备的办公电脑系统为Windows 10 或者 MacOS。
系统采用分布式架构由OA的业务Web服务、费控服务、考勤服务组成,减少相互之间的耦合未来可独立迭代升级。
考勤和费控服务的数据可以相互共享,数据库都部署在同一个MySQL数据库主从实例上,MySQL版本为5.8
其中前两个需求属于需求方对系统的要求,而3、4中关于架构细节方面的要求更大可能是技术部门内部对系统建设的规划性要求,毕竟业务方也不管你系统运行环境是什么版本是不是微服务之类的。
那么我们接下来就按照上面获取到的系统架构信息,使用部署图和构件图把他们都表达出来--部署图是架构图中偏物理维度的元素--比如服务器、接入客户端之类的元素,构件图可以先简单理解成服务器上运行的各种组件。