【架构设计】架构学习笔记--如何画好架构图(一)

本文介绍了如何有效地绘制软件架构图,强调了C4模型的重要性。C4模型是一种抽象优先的方法,将软件系统分为Person、SoftwareSystem、Container和Component四个部分。通过C4模型的四个核心图——语境图、容器图、组件图和类图,帮助团队成员和利益相关者理解系统结构、组件关系和交互。C4模型简化了沟通,减少了歧义,促进了共识的达成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何画好架构图?

先摸清一些基础概念

1、什么是架构?

是对系统中的实体以及实体之间的关系所进⾏的抽象描述,是结构和愿景的一种体现。

做了架构,就需要让⼲系⼈理解、遵循相关决策

2.什么是架构图?

是为了抽象地表⽰软件系统的整体轮廓和各个组件之间的相互关系和约束边界

软件系统的物理部署和软件系统的 演进⽅向的一种方便干系人理解的图形化展现方式

3、架构图的作⽤

  •         解决沟通障碍
  •         达成共识
  •         减少歧义
  •         明确系统系统组件调用关系

 画架构图遇到的常⻅问题

1、⽅框代表什么?

2、虚线、实线什么意思?箭头什么意思?颜⾊什么意思?

3、运⾏时与编译时冲突?层级冲突?

言归正传。。。

如何画好架构图呢?

隆重推出一下。。。C4模型

画好架构图可能有许多⽅法论,本篇主要介绍了C4这种⽅法,C4的理论也是不断进化的。但不论是哪种画图⽅法论,我们回到画图 初衷,更好的交流,我们在画的过程中不必被条条框框所限制。简⽽⾔之

画之前想好:画图给谁看,看什么,怎么样不解释就看懂。

C4模型的核心思想是什么?

The C4 model is an "abstraction-first" approach to diagramming software architecture, based upon abstractions that reflect how software architects and developers think about and build software. The small set of abstractions and diagram types makes the C4 model easy to learn and use.
C4模型是一种“抽象优先”( abstraction-first)的软件体系结构图方法,它基于怎样能反映软件架构师和开发人员如何思考和构建软件的抽象。 较少的抽象和图表类型使C4模型易于学习和使用(C4模型没有规定使用特定的图形来画图)。

 C4模型怎么样进行抽象?

在C4模型中软件系统被抽象为四个部分:(人)Person、(软件系统)Software System、(容器)Container 和 (组件)Component。

  • 人(Person)

这一抽象的提前是软件系统中“人”的部分与”物“分离,例如角色,或者外部子系统等。

  • 软件系统(Software System)

软件系统是最高级别的抽象,它描述了一些可以为用户带来价值的东西,无论他们是不是“人”。这包括您正在建模的软件系统,以及该软件系统所依赖的其他软件系统。

  • 容器(Container)

容器代表托管代码或数据的事物。为了使整个软件系统正常工作,必须运行一个容器。实际上,容器类似于服务器端的应用程序、一个手机APP,又或者是一个数据库。

  • 组件(Component)

“组件”一词在软件开发行业中是一个非常重载的术语,但是在这种情况下,组件只是封装在定义良好的接口后面的一组相关功能。如果您使用的是Java或C#之类的语言,则想到组件的最简单方法是它是接口后面的实现类的集合。这些组件的打包方式(例如,每个JAR文件,DLL,共享库中的一个组件与许多组件)的打包方式是一个单独且相互关注的问题。

Note:容器内的所有组件通常都在同一处理空间中执行。

C4的核心图有哪些?

1、语境图(System Context Diagram)

⽤途: 这样⼀个简单的图,可以告诉我们,要构建的系统是什么;它的⽤⼾是谁,谁会⽤它,它要如何融⼊已有的IT环境。这个图的受众 可以是开发团队的内部⼈员、外部的技术或⾮技术⼈员。即:构建的系统是什么 谁会⽤它 如何融⼊已有的IT环境

2、容器图(Container Diagram)

容器图是把语境图⾥待建设的系统做了⼀个展开。

⽤途:展现了软件系统的整体形态 体现了⾼层次的技术决策 系统中的职责是如何分布的,容器间的是如何交互的 告诉开发者在哪⾥写代码

3、组件图(Component Diagram)

⽤途:这个图主要是给内部开发⼈员看的,怎么去做代码的组织和构建。其⽤途有: 描述了系统由哪些组件/服务组成 厘清了组件之间的关系和依赖 为软件开发如何分解交付提供了框架

 4、类图(Code/Class Diagram)

用途:给开发人员看类之间逻辑关系时用的。可以使用UML类图,实体关系图或类似的图。理想情况下,该图可以使用工具(例如IDE或UML建模工具)自动生成。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小旋哥^^

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

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

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

打赏作者

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

抵扣说明:

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

余额充值