如何画出优秀的系统架构图-架构师系列-学习总结
--- 后之视今,亦犹今之视昔!
目录
早期系统架构图
早期系统架构视图
4+1视图解读
4+1架构视图缺点
现代系统架构图的指导实践
业务架构
例子
使用场景
画图技巧
客户端架构、前端架构
例子
使用场景
画图技巧
系统架构
例子
定义
使用场景
画图技巧
应用架构
例子
定义
使用场景
画图技巧
部署架构
例子
定义
使用场景
画图技巧
系统序列图
为什么系统序列图
从架构图到序列图
早期系统架构图
早期系统架构视图
第一次系统架构视图正式出现,是1995年Philippe在IEEE发表论文《The 4+1 View Model of Architecture》。并演变为RUP 4+1系统架构视图方法。下图是论文原图对4+1的阐释。文章介绍了如何通过这5种视图来表达【软件架构是什么】。

论文原图
4+1视图解读
Philippe的4+1,分别为逻辑视图、开发视图、处理视图、物理视图及场景视图。
从不同的角度来展示软件系统的设计。眼耳鼻舌身意,感知世界也总要分那么多的类型。
每个分类和具体的应用,可以看下涛哥的 架构蓝图--软件架构的“4+1”视图模型 - 知乎

4+1架构视图缺点
毕竟是95年提出的概念,4+1视图很多方面并不能适应现代的软件工程了。
- 架构复杂度增加,目前大部分系统已由单体系统进化为分布式系统
- 强绑定UML图,UML不能很好地表达架构图
- 理解不一致的问题,逻辑视图、开发视图、处理(process)视图比较容器混淆
现代系统架构图的指导实践

业务架构
描述系统为用户提供了什么业务功能,重点在于业务逻辑。类似于4+1视图中的场景视图。但其组织形式和美观程度不是用例图可以提供的。
例子

使用场景
- 产品人员规划业务
- 给高P汇报业务
- 给新员工培训业务
画图技巧
- 通过不同颜色来标识不同角色
- 业务分组管理
客户端架构、前端架构
类似与4+1中的【逻辑视图】。客户端和前端的领域逻辑架构。
例子

使用场景
- 整体架构设计
- 架构培训
画图技巧
- 通过不同颜色来标识不同角色
- 通过连接线表示关系
系统架构
例子



定义
后端的逻辑架构,又叫后端架构、技术架构。
【个人理解】:系统架构个人认为应该包含业务架构+应用架构。来表示软件系统提供什么样的业务能力、解决方案,同时这个系统的子模块、子系统的组成。让技术人员形成一个整体的宏观认知。
使用场景
- 整体架构设计
- 架构图培训
画图技巧
- 通过不同颜色来标识不同角色
- 通过连接线表示关系
应用架构
例子

定义
描述后端系统由哪些应用组成。有点类似开发视图。应用架构有时和系统架构等价的。但如果软件系统更大更复杂, 系统架构则看起来需要使用业务架构+应用架构等多个来组成。
使用场景
- 项目开发、测试
- 部署发布
- 子域架构设计
画图技巧
- 通过不同颜色来标识不同角色
- 通过连接线表示关系
部署架构
例子

定义
描述后端系统具体如何部署。对应4+1视图的物理视图。
使用场景
- 总体架构设计
- 运维规划和优化
画图技巧
- 用图标代替区块
系统序列图
为什么系统序列图
组成角色 Role、角色关系 Relation

动态架构图 需要用系统序列图表示。(时序图)
从架构图到序列图


参考引用
Kruchten P. Architectural Blueprints—The “4+ 1” View Model of Software Architecture. 1995[J]. IEE Software, 2005, 12(6)
架构蓝图--软件架构的“4+1”视图模型 - 知乎
极客时间训练营-让优秀的人一起学习
相关文章:
如何画出优秀的系统架构图-架构师系列-学习总结
--- 后之视今,亦犹今之视昔! 目录 早期系统架构图 早期系统架构视图 41视图解读 41架构视图缺点 现代系统架构图的指导实践 业务架构 例子 使用场景 画图技巧 客户端架构、前端架构 例子 使用场景 画图技巧 系统架构 例子 定义 使用场…...
VR转接器:打破界限,畅享虚拟现实
你是否曾梦想过踏入另一个世界,体验那种仿佛置身其中的感觉?随着科技的飞速发展,虚拟现实(VR)已经成为了现实。而VR转接器,正是让你畅享虚拟现实的关键所在。 添加图片注释,不超过 140 字&…...
C++学习笔记——用C++实现树(区别于C)
树是一种非常重要的数据结构,它在计算机科学中的应用非常广泛。在本篇博客中,我们将介绍树的基本概念和C中如何实现树。 目录 一、树的基本概念 2.C中实现树 2.1创建一个树的实例,并向其添加节点 2.2三种遍历方式的实现代码 3.与C语言相…...
工业平板定制方案_基于联发科、紫光展锐平台的工业平板电脑方案
工业平板主板采用联发科MT6762平台方案,搭载Android 11.0操作系统, 主频最高2.0GHz,效能有大幅提升;采用12nm先进工艺,具有低功耗高性能的特点。 该工业平板主板搭载了IMG GE8320图形处理器,最高主频为680MHz, 支持108…...
JPA查询PostgreSQL行排序问题
文章目录 问题处理PostgreSQL排序相关JPA相关介绍 问题 我们项目使用Spring Boot构建,使用JHipster生成业务代码,包含基础的增删改查代码使用PostgreSQL作为业务数据库,使用自动生成的JPA构建数据更新语查询在查询某个实体类的列表时&#x…...
【css】渐变效果
css渐变效果 使用 CSS 渐变可以在两种颜色间制造出平滑的渐变效果。 用它代替图片,可以加快页面的载入时间、减小带宽占用。同时,因为渐变是由浏览器直接生成的,它在页面缩放时的效果比图片更好,因此你可以更加灵活、便捷的调整页…...
Maven 依赖传递和冲突、继承和聚合
一、依赖传递和冲突 1.1 Maven 依赖传递特性 1.1.1 概念 假如有三个 Maven 项目 A、B 和 C,其中项目 A 依赖 B,项目 B 依赖 C。那么我们可以说 A 依赖 C。也就是说,依赖的关系为:A—>B—>C, 那么我们执行项目 …...
Linux Centos7静默安装(非图形安装)Oracle RAC 11gR2(Oracle RAC 11.2.0.4)
Oracle RAC (全称Oracle Real Application Clusters )静默安装(非图形安装)教程。 由于这篇文章花费了我太多时间,设置了仅粉丝可见,见谅。 环境说明: 虚拟机软件:VMware Workstation 16 Pro…...
集成开发环境(IDE)介绍
集成开发环境(IDE)介绍 集成开发环境(Integrated Development Environment,IDE)是一种软件应用程序,用于开发和编写软件。常见的IDE包括Eclipse、Visual Studio、IntelliJ IDEA、Qt Creator等。 集成开发环…...
基于物联网设计的智能储物柜(4G+华为云IOT+微信小程序)
一、项目介绍 在游乐场、商场、景区等人流量较大的地方,往往存在用户需要临时存放物品的情况,例如行李箱、外套、购物袋等。为了满足用户的储物需求,并提供更加便捷的服务体验,当前设计了一款物联网智能储物柜。 该智能储物柜通…...
12种常见的网络钓鱼
网络钓鱼是一种网络攻击,是指具有恶意动机的攻击者伪装欺骗人们并收集用户名或密码等敏感信息的一系列行为。由于网络钓鱼涉及心理操纵并依赖于人为失误(而不是硬件或软件漏洞),因此被认定为是一种社会工程攻击。 1. 普通网络钓鱼(群攻&…...
电商物流查询:未来的发展方向
在电商日益繁荣的时代,物流信息查询不仅关乎消费者体验,更影响着电商运营的效率。快速、准确地追踪物流信息至关重要。本文将简述物流信息快速追踪的价值,并重点介绍固乔快递查询助手这一高效查询工具及其批量查询功能。 一、物流信息快速追踪…...
【数据库原理】(25)数据完整性
一.完整性概述 数据库的完整性是保证数据正确性和一致性的关键。它防止数据库中存在不符合业务逻辑或语义规则的数据,避免错误信息的输入和输出。数据库的完整性和安全性不同,安全性关注的是防止非法用户的访问和恶意操作,而完整性则关注数据…...
逻辑运算符
逻辑运算符 什么是逻辑运算符? 在数学中,一个数据x大于5,小于15,我们可以这样来进行表示:5<x<15.在Java中,需要把上面的式子先进行拆解,再进行合并表达。 拆解为:x>5和 x…...
SpringBoot @RequestBody和@ResponseBody注解
1. RequestBody注解 用于将HTTP请求体的内容绑定到方法的参数上。通常情况下,我们使用这个注解来处理POST请求,特别是传递JSON格式的数据。 例: PostMapping("/user") public ResponseEntity<String> createUser(RequestB…...
实验四:静态路由配置
实验四:静态路由配置 1. 静态路由 ( 一般配置 ) 【实验名称】静态路由配置 【实验目的】掌握静态路由的配置方法,理解路由表的作用和原理 【实验设备】路由器( 2 台)、计算机( 2 台)、交叉线…...
UML-类图和类图转化为代码
提示:文章详细的讲解了类图的四种关系,以及每种关系如何转化为对应的代码。 UML-类图和类图转化为代码 一、类于类之间的关系1.依赖关系2.关联关系(1) 单向关联(2) 双向关联(3) 自关联(4) 聚合关联(has-a)(5) 组合关联(contains-a)…...
数据科学与大数据导论期末复习笔记(大数据)
来自于深圳技术大学,此笔记涵盖了期末老师画的重点知识,分享给大家。 等深分箱和等宽分箱的区别:等宽分箱基于数据的范围来划分箱子,每个箱子的宽度相等。等深分箱基于数据的观测值数量来划分箱子,每个箱子包含相同数量…...
【保姆级教程|YOLOv8添加注意力机制】【2】在C2f结构中添加ShuffleAttention注意力机制并训练
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
Hive聚合函数详细讲解
Hive中的聚合函数用于在数据上进行计算并返回单个值,这些值通常是基于一组行或列的汇总。以下是您提到的聚合函数的详细讲解,包括案例和使用注意事项: SUM() 功能:计算某列的总和。语法:SUM(column)案例:SELECT SUM(salary) FROM employees;注意事项:通常用于数值型列。…...
ESP32/ESP8266固件备份全攻略:esptool与flash_download_tool实战详解
1. 项目概述:为什么我们需要备份ESP32/8266的固件? 在嵌入式开发或者物联网项目中,ESP32和ESP8266这两款芯片的应用已经非常普遍了。无论是做智能家居、数据采集还是各种DIY小玩意儿,我们经常会在上面编写和烧录固件。但不知道你…...
NTC与PTC热敏电阻选型实战:从原理到电路设计的深度解析
1. 项目概述:一次关于温度传感器选型的深度复盘在嵌入式系统、家电控制、电池管理乃至工业自动化领域,温度测量是基础得不能再基础,却又至关重要的一环。选对传感器,项目就成功了一半;选错,后续的校准、补偿…...
企业级AI Agent架构选型:Shallow、ReAct与Deep实战对比
1. 项目概述:为什么企业级AI系统必须严肃对待Agent架构选型“Choosing AI Agent Architecture for Enterprise Systems: Shallow vs ReAct vs Deep”——这个标题不是学术论文的冷门副标题,而是我过去18个月在三家不同规模企业落地AI智能体(A…...
避坑指南:在Quartus II里搞定矩阵键盘与数码管,这些细节决定成败(附代码)
Quartus II实战避坑:矩阵键盘与数码管调试的七个致命细节 第一次在FPGA上实现矩阵键盘控制数码管显示时,我遇到了所有初学者都会踩的坑——按下按键后数码管要么毫无反应,要么显示乱码。这不是代码逻辑问题,而是那些教程里从不提及…...
昇腾CANN cann-samples:从示例代码到生产力工具的全路径
CANN 55 个仓库里,cann-samples 是最容易被低估的一个。它不定义新算子、不优化性能、不做架构设计——只提供可运行的代码示例。但正是因为「只提供示例」,cann-samples 是新手最快上手、老手最常查阅的仓库。每个示例都是独立可编译的项目:…...
什么是占位符
占位符就是字符串里预留空位,后面填上真实数据,PyCharm里直接写代码就能运行调试1.%格式化占位符(旧式格式化)语法格式:"模板字符串"%(数据1,数据2...)基础类型占位符1.%s :适配字符串…...
迁移学习提升可穿戴设备睡眠监测精度的技术解析
1. 项目概述:迁移学习如何提升可穿戴设备的睡眠监测精度作为一名长期关注健康监测技术的从业者,我见证了可穿戴设备在睡眠监测领域的快速发展。但一个核心痛点始终存在:基于PPG(光电容积图)等外周生理信号的可穿戴设备…...
Python循环语句从入门到精通:for和while核心用法详解
编程里,循环属于绕不开的基础操作,Python当中,for与while看似简单,然而不少人写着写着就会卡住,特别是在嵌套、break以及continue的配合方面容易出错。本文助力你理清这两种循环的核心逻辑,结合实际场景讲透…...
AI学习者的进度同步协议:Newsletter如何重构自学路径
1. 这不是一份普通 newsletter:它是一份 AI 学习者的“进度同步协议”“Learn AI Together — Towards AI Community Newsletter #14”——看到这个标题,别急着划走。它既不是某家大厂的公关通稿,也不是知识付费平台的引流钩子,更…...
国产多模态大模型 vs DALL-E:本土化突围与全球竞技
国产多模态大模型 vs DALL-E:本土化突围与全球竞技 引言 在AIGC浪潮席卷全球的当下,OpenAI的DALL-E系列无疑是图像生成领域的耀眼明星,其惊人的创造力和对自然语言的深刻理解,定义了“文生图”的新高度。然而,当我们聚…...
