软件架构-4R架构定义

《如何画好架构图》学习笔记 看了一堂《如何画好架构图》的公开课,结合网上的资料与经验做一些思考总结。文中的例子和图片大多是从课程中摘录的。 阅读详情

前言:
最近在geektime上学习《从0开始学架构》这门课程。记录下课程中老师说的4R架构。

4R架构定义:

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

在这里插入图片描述

顶层结构

Rank:它是指软件架构是分层的,对应“系统”和“子系统”的分层关系。通常情况下,我们只需要关注某一层的架构,最多展示相邻两层的架构,而不需要把每一层的架构全部糅杂在一起。无论是架构设计还是画架构图,都应该采取“自顶向下,逐步细化”的方式。如下图:
R2
注:L0\L1\L2指层级,一个L0往下可以分解多个L1,一个L1可以往下分解多个L2,以此类推,一般建议不超过5层(L0~L4)。

组成角色

Role:它是指软件系统包含哪些角色,每个角色都会负责系统的一部分功能。架构设计最重要的工作之一就是将系统拆分为多个角色。最常见的微服务拆分其实就是将整体复杂的 业务系统 按照业务领域的方式,拆分为多个微服务,每个微服务就是系统的一个角色。

角色关系

Relation: 它是指软件系统的角色之间的关系,对应到架构图中其实就是连接线,角色之间的关系不能乱连,任何关系最后都需要代码来实现,包括连接方式(HTTP、TCP、UDP和串口等)、数据协议(JSON、XML和二进制等)以及具体的接口等。

以一个简化的支付系统为例,来展示Role和Relation之前的联系

在这里插入图片描述

运作规则

Rule:它是指软件系统角色之间如何协作来完成系统功能。在架构设计的时候,核心的业务场景都需要设计Rule。一般都是通过系统序列图(System Sequence Diagram)来展示。
“扫码支付”这个核心场景的系统序列图如下所示:
在这里插入图片描述

架构篇之如何画出优秀的架构图(二) Tips:系统架构如果复杂,建议画2张图来展示。参照上一篇文章中写的4R架构,架构图又分为:静态架构图和动态架构图。今天是架构篇的第二篇文章,跟大家聊聊如何画出好的架构图。a. 定义:领域逻辑架构,对照4+1视图里面的逻辑视图。a. 定义:系统是如何部署的,参照4+1视图的物理视图。a. 定义:描述系统对用户提供了什么业务功能。a. 定义:系统架构又叫后端架构、技术架构。a. 定义:后端系统有哪些应用组成。通过不同颜色来标识不同角色。通过不同颜色标识不同角色。通过连接线来标识关系。通过不同颜色标识角色。 阅读详情

相关推荐

从0学架构01--架构到底是什么?

目录 1、系统和子系统 2、模块和组件 3、框架和架构 4、4R架构 5、总结 按照百度百科的解释是:架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。从这个定义来看,它是一个设计,那么我们在实际的软件开发过程中,我们谈的架构,它的范围又是怎样的呢?他跟框架有什么关系?接下来我们详细解释如下几个概念和概念之间的关系。 系统与子系统 模块与组件 框架与架构 1、系统和子系统 什么是系统: 维基百科定...

日积月累,水滴石穿 1396

架构演进技巧

架构演进技巧

lee_nacl的博客 890

【基础架构】——架构到底是指什么

摘要 本文探讨了软件架构的定义及相关概念。首先指出技术人员对"架构"理解的模糊性,强调明确架构定义对设计、讲解和学习架构的重要性。随后厘清三组关键概念:1)系统与子系统,指出架构仅关注顶层层级;2)模块与组件,前者是业务逻辑单元,后者是物理部署单元;3)框架与架构,前者是规范,后者是结构。最后提出"4R架构定义":架构是系统的顶层(Rank)结构,由角色(Role)、关系(Relation)和规则(Rule)组成。通过微信等案例,说明应从适当层级、明确角色分工及交互规

小志的博客 1314

【架构方法论(一)】架构的定义与架构要解决的问题

【架构方法论(一)】架构的定义与架构要解决的问题

hiliang521的博客 1984

软件架构之软件架构概述及质量属性

软件架构是软件抽象发展到一定阶段的产物,从编程的角度,可以清晰地看到软件抽象层次和表达工具的发展历史。20 世纪 60 年代是子程序的年代:出现了原始的软件架构,即子程序,并以程序间的调用为连接关系。20 世纪 70 年代是模块化的年代:出现了数据流分析、实体—关系图(E-R 图)、信息隐藏等工具和方法,软件的抽象层次发展到了模块级。20 世纪 80 年代是面向对象的年代:基于模块化的编程语言进一步发展成面向对象的语言,继承性地增加了一种新元素之间的连接关系。

恒二哥的博客 1840

架构蓝图--软件架构的“4+1”视图模型

企业架构包含业务架构和 IT 架构两个部分。本文介绍了 IT 架构设计中的"4+1"视图模型。"4+1"视图模型诞生于上个世纪 90 年代,至今对我们进行业务架构到 IT 架构的映射仍然具有指导和借鉴意义。

6982

聊聊什么是架构,你理解对了吗?

软件架构软件架构指软件系统的顶层结构,它定义了系统由哪些角色(Role)组成,角色之间的关系 (Relation)和运作规则(Rule)。这就是他所定义的4R架构,下面我们再看一下如何应用4R架构五、4R架构应用上图不仅指明了架构师的职责,也指出架构文档包括哪些内容:系统层级、系统角色、角色关系、规则定义等,再就是指出了如何学习架构:自顶向下、有什么角色、角色之间的关系、如何协作完成系统功能等。今天就先介绍这么多,希望对你有所帮助,共同成长!!!

程序员Linc 5957

CC2640R2F BLE5.0 CC2640R2F软件架构

软件架构 开发模型 下图展示CC2640R2F支持的两种开发模型,本文讲解都集中在图一,也就是整个ble协议栈和应用都工作在一个CC2640R2F的单SOC解决方案。 单一设备:Controller、Host、Profile、应用程序都在CC2640R2F上实现,作为真正意义的单芯片解决方案。这种模型是使用CC2640R2F时最简单和最常见的。TI的大部分示例项目都使

leconiot的博客 4702

软件开发架构4R原则

本文系统阐述了4R架构设计原则(Rank层级、Role角色、Relation关系、Rule规则)及其在电商平台中的具体应用。Rank强调系统分层(表现层/业务层/数据层/支撑层);Role明确用户/系统/运维等角色职责;Relation梳理模块间交互关系;Rule制定业务规则和技术规范。通过4R原则可建立清晰、健壮的架构体系,案例展示了电商平台各层设计细节及相互关系,为系统开发维护提供结构化指导。

onlymscn的博客 1392

系统架构设计师【第10章】: 软件架构的演化和维护 (核心总结)

为了使软件能适应环境变化和满足用户需求,在软件架构生命周期中,不断迭代的演化和维护至关重要。

数据知道的博客 1万+

别再搞混了!MATLAB通信仿真中EbN0转SNR的保姆级公式推导与避坑指南

本文深入解析MATLAB通信仿真中EbN0与SNR转换的核心公式,揭示数字仿真与理论系统的关键差异。通过真实案例展示错误参数设置导致的隐蔽问题,并提供完整的参数自查清单和正确实现代码,帮助工程师和学生避免常见错误,确保仿真结果准确可靠。

weixin_28746223的博客 348

架构到底是什么?

它是指软件系统的角色之间的关系,对应到架构图中其实就是连接线,角色之间的关系不能乱连,任何关系最后都需要代码来实现,包括连接方式(HTTP、TCP、UDP 和串口等)、数据协议(JSON、XML 和二进制等)以及具体的接口等。最常见的微服务拆分其实就是将整体复杂的业务系统按照业务领域的方式,拆分为多个微服务,每个微服务就是系统的一个角色。根据系统的定义可知:系统是由有关联关系的个体组成的,并且个体之间存在某种运作规则,并且这些个体组成系统之后,系统产生了一种新的能力,能完成单个个体无法独自完成的能力。

漫漫编程路 544

Proteus下载安装快速入门:30分钟掌握全过程

手把手教你完成proteus下载安装,从环境配置到首次运行一气呵成,适合电子设计新手快速掌握仿真工具的核心操作步骤。

weixin_31974443的博客 893

从0开始学架构-架构的定义

框架是一整套开发规范,架构是某一套开发规范下的具体落地方案,包括各个模块之间的组合关系以及它们协同起来完成功能的运作规则。软件架构指软件系统的顶层(Rank)结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)

Java开发工程师,专注微服务、分布式系统,部署运维,分享实战经验和源码解析。 984

手把手教你用Wireshark国密版分析TLCP和IPSec协议(附下载地址)

本文详细介绍了Wireshark国密版在TLCP和IPSec协议分析中的实战应用,包括环境配置、协议解析、合规性检查及高级分析技巧。该工具针对商用密码算法(如SM2/SM3/SM4)进行了专项优化,支持GB/T 38636-2020 TLCP和GB/T 36968-2018 IPSec VPN等国家标准,帮助开发者与安全工程师高效完成密评分析任务。

weixin_29325955的博客 553

华为OD机试2025A卷 - BOSS的收入(Java & Python& JS & C++ & C )

华为OD机试2025A卷 - BOSS的收入(Jav一个XX产品行销总公司,只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销。规定,每个月,下级分销需要将自己的总收入(自己的+下级上交的)每满100元上交15元给自己的上级。现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss的收入。输入:分销关系和收入:[[分销id 上级分销id 收入], [分销id 上级分销id 收入], [分销id 上级分销id 收入]]输出:[boss的ID, 总收入]

算法大师! 1172

如何画系统架构图学习

第一步,明确Rank:也就是说,不要事无巨细地把一个大系统的方方面面都在一张架构图中展现出来,而应该明确你要阐述的系统所属的级别(L0~L4),然后只描述这个级别的架构信息。第三步,画出Relation:有了角色后,画出角色之间的关系,对应架构图中角色之间的连接线,不同的连接线可以代表不同的关系。第二步,画出Role:从不同的角度来分解系统,看看系统包含哪些角色,角色对应架构图中的区块、图标和节点等。第四步,最后画出Rule:挑选核心场景,画出系统角色之间如何协作来完成某项具体的业务功能,对应系统序列图。

qq_43837702的博客 355

Python 爬虫实战:爬取 Bing 搜索功能链接(国际搜索引擎数据采集技巧)

在当今数字化信息爆炸的时代,搜索引擎已成为我们获取知识、了解世界的得力助手。Bing,作为全球知名的搜索引擎之一,拥有庞大的数据索引和精准的搜索算法。通过 Python 爬虫技术爬取 Bing 搜索区域的链接信息,不仅能帮助我们快速收集大量有价值的数据,还能为后续的数据分析、内容挖掘等任务提供丰富的素材。

yansideyucsdn的博客 1339

从0开始学架构01-架构到底是指什么?

参考维基百科的定义,再结合我自己的一些理解和思考,我将软件架构重新定义为:软件架构指软件系统的顶层(Rank)结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。因为这个定义中的4个关键词,都可以用R开头的英文单词来表示,分别是Rank、Role、Relation和Rule,所以我把定义简称为“4R架构定义”,每个R的详细解释如下。第一个R,Rank。它是指软件架构是分层的,对应“系统”和“子系统”的分层关系。

sucaiwa的博客 324

【系统分析师】核心考点:100个高频知识点汇总

本文系统梳理了系统分析师考试的11大领域高频考点,重点解析了计算机硬件与体系结构的7个核心知识点:计算机五大部件(CPU/存储器/总线等)、校验码类型(奇偶/海明/CRC)、CISC与RISC指令系统对比、总线分类与特性、RAID磁盘阵列级别、流水线技术原理及Flynn系统分类法。内容涵盖硬件组成、数据校验、指令架构、存储技术等关键概念,通过表格对比和公式说明,为考生提供结构化的知识框架与备考重点。

数据知道的博客 5569

修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

【代码】修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

路~可以走过 2773

软考-系统架构设计师(月更版)

372.系统工程利用计算机作为工具,对系统的结构,元素,信息和反馈等进行分析,以达到最优规划,最优设计,最优管理和最优控制的目的。246.商业智能系统的处理过程包括四个主要阶段:数据预处理通过数据抽取,转换和装载实现企业原始数据的初步整合,建立数据仓库是后续数据处理的基础,数据分析是体现系统智能的关键,主要采用联机分析处理和数据挖掘技术,联机分析处理能够实现数据的上卷,下钻和旋转分析,数据挖掘利用隐藏的知识,通过建立分析模型预测企业未来发展趋势,数据展现主要完成数据处理结果的可视化。

可小辉的博客 1702

2025年下半年网络工程师案例分析真题及答案解析

2025年下半年网络工程师案例分析真题及答案解析

鹿鸣天涯 1089

系统架构设计师-软件架构设计

软件架构作为一个有机的整体,可以分解成多个侧面来认识,每个侧面强调它的不同方面的特征,从而使架构设计师能整体地把握它的重点。我们可以将软件架构归纳成5 种模型:结构模型、框架模型、动态模型、过程模型和功能模型。最常用的是结构模型和动态模型。 (1)结构模型。这是一个最直观、最普遍的建模方法。这种方法以架构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是架构描述语言。 (2)框架模型。框架模型与...

ce123的技术博客 1686

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

架构蓝图--软件架构 “4+1“ 视图模型

引言 我们已经看到在许多文章和书籍中,作者欲使用单张视图来捕捉所有的系统架构要点。通过仔细地观察这些图例中的方框和箭头,不难发现作者努力地在单一视图中表达超过其表达限度的蓝图。方框是代表运行的程序吗?或者是代表源代码的程序块吗?或是物理计算机吗?或仅仅是逻辑功能的分组吗?箭头是表示编译时的依赖关系吗?或者是控制流吗?或是数据流吗?通常它代表了许多事物。是否架构只需要单个的架构样式?有时软件架构的缺陷源于过早地划分软件或过分的强调软件开发的单个方面:数据工程、运行效率、开发策略和团队组织等。有时架构并不能解

西涛offbye-移动全栈技术博客 1391

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

1 什么是软件架构?

在本章中,我们将严格从软件 “工程” 的角度来关注架构。也就是说,我们将探讨软件架构给开发项目带来的价值。后面的章节将从业务和组织的角度进行探讨。

我的天! 745

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: Docker 项目快速部署Flask项目
下一篇: 数仓面试常见问题:1.数仓基础与设计
piepis
博客等级 码龄10年 104粉丝 137原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

piepis

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

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

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

打赏作者

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

抵扣说明:

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

余额充值