C4 model技术架构图--context图
在设计系统架构图时,包括常见的
技术架构图
和业务架构图
。
技术架构图架构图不止在前期设计系统时重要,在后期开发或者维护的时作为指导也同样重要。
一.关于C4 model
官方网址
属于技术架构图的一种格式,C4 分别表示上下文(Context)
、容器(Container)
、组件(Component)
和代码(Code)
。四个层次,分别对应不同的角度。
C4 model 架构图的系统拆分,其实与微服务拆分
和DDD领域拆分
的思想非常像。拆分的合理,才能保证系统的开发效率和维护效率
。
二.上下文(Context)图
1.官方示例
代码
@startuml system-context-diagram
!include https://unpkg.com/plantuml-style-c4@latest/c4_context.pumlLAYOUT_WITH_LEGEND()
'LAYOUT_AS_SKETCH()title 网上银行系统context图Actor(customer, "个人银行客户", "拥有个人银行账户的银行客户。")
System(banking_system, "网上银行系统", "允许客户查看有关其银行帐户的信息,并进行付款。")System_Ext(mail_system, "E-mail 系统", "内部电子邮件系统。")
System_Ext(mainframe, "大型机银行系统", "存储有关客户、帐户、交易等的所有核心银行信息。")Rel(customer, banking_system, "使用")
Rel_Back(customer, mail_system, "发送电子邮件到")
Rel_Neighbor(banking_system, mail_system, "发送电子邮件", "SMTP")
Rel(banking_system, mainframe, "使用")@enduml
2.函数说明
页面相关
LAYOUT_WITH_LEGEND()
此函数表示图例说明
,添加后,会显示如下图例说明
。
LAYOUT_AS_SKETCH()
添加此函数后,页面会变为草稿模式,如下。
注:草稿模式下,中文由于字体原因,无法展示。
title
图例的标题。
LAYOUT_TOP_DOWN
注意,这个函数,不带括号,表示整个图的排列为上下为主
。
LAYOUT_LEFT_RIGHT
注意,这个函数,也不带括号,表示整个图的排列为左右为主
。
模块相关
Actor(id, name , describe)
用户函数,表示为一个用户,有三个参数。
id:作为唯一标识,用于后续关系链接时使用。
name:名称。
describe:说明。
Actor_Ext(id, name , describe)
外部用户函数,表示为一个外部系统的用户,有三个参数。灰色
id:作为唯一标识,用于后续关系链接时使用。
name:名称。
describe:说明。
System(id, name , describe)
系统函数,表示为一个系统。
id:作为唯一标识,用于后续关系链接时使用。
name:名称。
describe:说明。
System_Ext(id, name , describe)
外部系统,表示为一个外部系统,一般是指需要对接的已有系统。灰色
id:作为唯一标识,用于后续关系链接时使用。
name:名称。
describe:说明。
关系相关
Rel(formId, toId, label1, label2)
依赖关系,表示一个系统(formId)对另一个系统(toId)的依赖关系(label)。
注:label1、label2都不是必填参数
。
Rel_Neighbor(formId, toId, label1, label2)
如Rel,但是强调formId
和toId
为水平关系
。
Rel_R(formId, toId, label1, label2)
如Rel,但是强调toId
在formId
的右边
。
Rel_L(formId, toId, label1, label2)
如Rel,但是强调toId
在formId
的左边
。
Rel_U(formId, toId, label1, label2)
如Rel,但是强调toId
在formId
的上边
。
Rel_D(formId, toId, label1, label2)
如Rel,但是强调toId
在formId
的下边
。
Rel_Back(formId, toId, label1, label2)
如Rel,但是关系是从toId
指向formId
。刚好相反。
Rel_Back_Neighbor(formId, toId, label1, label2)
如Rel_Neighbor,但是关系是从toId
指向formId
。刚好相反。
System_Boundary(id, label ){system1, system2…}
系统组,表示system1
和system2
为一个系统组。用虚框,把几个系统圈起来。
代码示例
System_Boundary(item1, "银行系统"){System(banking_system, "网上银行系统", "允许客户查看有关其银行帐户的信息,并进行付款。")System_Ext(mainframe, "大型机银行系统", "存储有关客户、帐户、交易等的所有核心银行信息。")
}
三.实用工具
1.IDEA插件
PlantUML
C4 model技术架构图--context图相关推荐
- SOA技术架构下时序图的一种表达方式
一.时序图定义 时序图(Sequence Diagram),亦称为序列图或循序图,是一种UML行为图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作.它可以表示用例的行为顺序,当执行一 ...
- 【Java基础巩固系列】高级Java进阶之最全面技术架构思维导图
热门系列: [Java基础巩固系列]Java数据集合,List.Map.Set.JUC,应有尽有 [Java基础巩固系列]Java内存溢出和内存泄漏 [Java基础巩固系列]Java类初始化执行顺序 ...
- 使用pp架构形成计算机集群请求的地址无效_干货!史上最详细脑图《大型网站技术架构》...
1. 介绍一下 <大型网站技术架构>这本书可能很多人都看过,小编个人觉得真的是非常不错的一本书. 看完这本书后,你会对如何设计大型网站架构,有非常清晰的思路. 如果还没有读过的小伙伴,赶紧 ...
- 一张图读懂大型网站技术架构
软件架构师最大的价值不在于掌握多少先进的技术,而在于具有将一个大系统切分成N个低耦合的子模块的能力,这些子模块包含横向的业务模块,也包含纵向的基础技术模块.这种能力一部分源自专业的技术和经验,还有一部 ...
- 大型网站技术架构·核心原理与案例分析 第八章·固若金汤:网站的安全架构思维导图
固若金汤:网站的安全架构思维导图
- PHP技能架构思维导图(高清大图)详解
PHP技能架构思维导图详解 apache思维导图 js正则表达式 LAMPer技能树 MongoDB操作手册 mysql数据库优化 mysql学习思维导图 NoSQL分布式模型 PHP基础 PHP面向 ...
- 史上最全的微信运营架构思维导图
导读:如何系统化的了解和掌握微信运营中需要用到的工具和技巧?本文从微信菜单架构,新媒体运营,微信标题,内容工具,数据分析几个维度出发,制作了微信运营架构思维导图.(点击小图看大图) 正文 -END- ...
- 架构技能教程-时序图(UML图)的制作
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 什么是时序图(UML图)? 时序图(Sequence Diagram),又名序列图.循 ...
- Linux架构思维导图
Linux架构思维导图 GUI(Graphical User Interface,图形用户界面) Linux 学习路径 软件框架 Linux 桌面介绍 FHS:文件系统目录标准 Linux 需要特别注 ...
- 软件静态架构 软件组件图_组件图| 软件工程
软件静态架构 软件组件图 什么是组件图? (What is Component Diagram?) A Component Diagram breaks down the real system un ...
最新文章
- DIY强大的虚拟化环境-技术可行性部分
- golang interface 转 int string slice struct 类型
- 分别采用深度优先遍历和广度优先遍历判断是否存在由vi到vj的路径,图用邻接表存储
- javascript Dom总结
- 内存的工作原理(一)
- Python如何从内存中找回源代码
- java找三个数最大_用Java程序找最大的数字(4)
- 不到 20 人的互联网公司该去吗?
- FPGA的I2S采集数据处理
- 计算机软件系统验收标准,软件相关标准目录.xlsx
- 两台计算机远程桌面连接不上去,远程桌面连接不上怎么办
- 台式电脑卸载了wifi精灵之后能够联网但是无法上网
- Charles 抓包原理与实践
- 机器学习基本模型与算法在线实验闯关
- 银行大数据风控管理针对哪些应用场景?
- 怀化市2021年高考查询成绩,2021怀化市地区高考成绩排名查询,怀化市高考各高中成绩喜报榜单...
- 学习笔记(01):【中国PHP教育大牛高洛峰】亲授php教程-PHP布尔类型(boolean)...
- 【论文阅读】强化学习与知识图谱关系路径发现
- 手持PDA和手机有什么区别?
- 白平衡(Color Constancy,无监督AWB):CVPR2019论文解析