0%

如何画好架构图

4R架构理论

软件架构指系统的顶层结构(Rank),它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)运作规则(Rule) .

根据4R理论;可以很好的协助我们很清晰的去认识一套系统;尤其是我们在学习一套框架源码原理的时候;很容易一头扎入去看源码,耗费很多精力却不知所云收获很少。

4+1 视图

1995年,Philippe Kruchten在《IEEE Softwear》上发表了题为《The 4+1 View Model of Architechure》的论文,引起了业界的极大关注,并最终被RUP采纳。

4+1视图的简单介绍

  • 逻辑视图:系统提供给用户的功能,对应UML中的类图/状态图
  • 处理视图:系统的处理过程,对应UML中的序列图
  • 开发视图:程序员角度看系统的逻辑组成,对应UML中的包图
  • 物理视图:系统工程师看系统的物理组成,对应UML中的部署图
  • 场景视图:用户角度看系统需要实现的需求,对应UML中的用例图

4+1视图的尴尬

  • 目前国内企业很少用4+1视图来描述架构
    • 架构复杂度增加
    • 绑定UML图,UML图画架构图存在问题,不够直观,也不够美观
    • 理解困难,逻辑视图、开发视图、处理视图容易混淆

常见架构图分类

业务架构

  • 定义:

    描述系统对用户提供了什么业务功能,类似于4+1视图的场景视图

  • 使用场景

    1、产品人员规划业务

    2、给领导汇报业务

    3、给新员工培训业务

  • 画图技巧

    1、通过不同颜色来标识业务状态

    2、业务分组管理

客户端架构、前端架构

  • 定义

    客户端和前端的领域逻辑架构,类似于4+1视图的逻辑视图

  • 使用场景

    1、整体架构设计

    2、架构培训

  • 画图技巧

    1、通过不同颜色来区分不同角色

    2、通过连接线来表示关系

系统架构 - 简单版

  • 定义

    后端的逻辑架构,又叫“后端架构”、“技术架构”

  • 使用场景

    1、整体架构设计

    2、架构培训

  • 画图技巧

    1、通过不同颜色来区分不同角色

    2、通过连接线来表示关系

三个角色用了三个颜色表示。分别为 Router、Shard、Config Servers

通过连线来表示不同角色之间的关系

系统架构 - 复杂版

  • 功能示意图
    • 从逻辑的角度划分整个中台架构
    • 可以看到系统的角色里边包含哪些功能,但是没有办法看到角色之间的关系
  • 交互示意图
    • 展示不同角色之间的关心

应用架构

何为应用:在开发、打包、测试、部署的时候,一个 可执行的程序就是一个应用

  • 定义

    描述后端应用由哪些应用组成

  • 使用场景

    1、项目开发测试

    2、部署发布

    3、子域架构设计

  • 画图技巧

    1、通过不同颜色来区分不同的角色

    2、通过连接线来表示关系

会员中心是一个业务域。包含的应用有7个:LoginServer、UserServer、SecurityServer、CardServer、ContractServer、CardKYC-Server、ID-KYC-Server

每个应用就是开发出来 ,然后测试、部署上线的程序包

部署架构

  • 定义

    描述后端系统具体如何部署的,对应4+1视图的物理视图

  • 使用场景

    1、总体架构设计

    2、运维规划和优化

  • 画图技巧

    用图标代表区块

系统序列图

系统架构图表示系统的结构(Rank)、角色(Role)和关系(Relation)。但是没有办法表示单个业务流程的运行规则(Rule)

架构图描述了各个角色之间的关系,但是具体一个业务或者一个需求的处理流程是怎样的。没有表现出来

这个时候就可以用系统序列图来描述一个具体的业务场景是如何实现的

-------- 本文结束 感谢阅读 --------