C4模型绘制软件架构图

C4模型绘制软件架构图

关于c4模型,可以参考官网(不过全是英文的)
https://c4model.com/

说明:官网中有提供 Archi 工具绘制C4图,但是风格比较国外化,可能不一定适合国人使用。也可以使用visio绘制c4软件设计模型图。

前言

最近公司新产品架构设计需要使用到c4模型软件设计,因此绘制了软件架构图的C4模型,因为有一段时间没有制作c4模型设计图,又翻回之前的设计过程和经验,本文总结成熟的方法做为指导,跟大家分享C4模型,如何指导我们高效地进行软件架构图设计。

关于c4模型

C4模型是Simon Brown提出的一种软件架构的可视化模型,简单来说,就是如何描述软件架构,如何画架构图,而不是如何设计软件架构。C4模型反映软件架构师和开发人员如何思考和构建软件的抽象,一种在不同抽象层次上交流软件架构的简单方法。C4模型把系统分为四层,每层都代表着不同的视图架构,关注点也不同。
如下图为网图,因表达比较准确,无须自己再绘制一遍:
c4模型四层结构图
上下文:System Context,系统高层次的抽象,一个系统可由多个容器组成。

容器:Container,容器代表组件执行或驻留的地方,它可以是web容器、应用服务器、客户端或数据库,例如Docker可以认为是这样的容器。

组件:Component,一个组件可以认为是由一个或多个类代码组成的逻辑组。

代码:Code,代码是软件系统最小的构建模块。

第①层:系统上下文-System Context

第①层是系统上下文图,它显示了构建的整个软件系统,以及系统与用户及其他软件系统之间的逻辑关系,可以说是一个系统的外观。如下图描述了一个虚构的互联网银行系统的系统上下文:
系统上下文
客户使用互联网银行系统查看银行账户信息并进行支付。互联网银行系统使用银行现有的大型计算机银行系统来执行此操作,并使用银行的电子邮件系统向客户发送电子邮件。图中灰色表示已经存在的软件系统,蓝色表示待建的系统。

第②层:容器-Container

第②层是容器,放大软件系统,显示组成该软件系统的容器(应用程序、微服务、数据存储等),它是可独立部署/独立运行的单元。容器图显示了软件体系结构的高层结构以及如何在其间分配职责,它还显示了主要的技术选择以及容器之间的通信方式,技术决策也是容器图的关键部分。

例如,互联网银行系统(虚线框)由五个容器组成:服务器端Web 应用程序、客户端单页面应用程序、移动应用程序、服务器端API 应用程序和数据库。
容器图!

第③层:组件-Component

第③层是组件,即将单个容器放大,就会显示其中的组件,每个组件是什么,它们的职责以及技术/实现细节。下面是一个网上银行系统的组件图示例,显示了API应用程序中的一些组件。
组件图

第④层:代码-Code

第④层是代码,如果放大某个组件,就会显示组件是如何通过代码实现的。下面是网上银行系统的UML类图,显示了组成
MainframeBankingSystemFacade 组件的代码元素(接口和类)。
类图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yellow1019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值