当我们说“架构”的时候,我们在说什么?---解读《ISO/IEC/IEEE 42010》国际标准

news2024/9/25 3:18:16

当我们说“架构”的时候,你想到的是什么?

程序员听到“架构”的时候,想到的是SSH、SSM三层架构,或者是SOA架构,或者是微服务架构等。

人力资源专业人员听到架构的时候想到可能是企业组织架构。

几乎每个行业专业都会对架构有特定行业的理解和认识,如昨天的文章荐读:《GB/T 8566-2022/ISO/IEC/IEEE:系统与软件工程生存周期过程》国家标准解读,只有当我面写标准的时候,才会追本溯源的问?什么是架构?当我们说架构的时候,或者为架构争吵的时候,有没有在一个维度上讨论?关于“架构”一词,业界有一个国际标准:ISO/IEC/IEEE 42010《软件与系统工程-架构体系》。

图片

所以当我们谈架构的时候,应该有一个对于架构的普遍理解,或者说有一个关于“架构”的上下文。

在《ISO/IEC/IEEE 42010》标准中,定义了架构的解释和架构的上下文。

(1)架构:

    一个系统在其所处环境中的(系统的)基础概念或属性,其内容包括它的元素、关系和它的设计和演进的原则。

《GB/T 8566-2022/ISO/IEC/IEEE:系统与软件工程生存周期过程》对架构的定义也来源于此。

简单的说:架构 = 元素 + 元素关系 & 设计演进原则

无论4A架构,还是分层分域架构,都是对元素维度的不同方面和粒度的梳理,元素和元素之间的关系则需要基于设计原则,这是一种对架构的高度抽象概括,单纯的说概念可能感触并不多,那么可以结合架构上下文来讨论。

图片

(2)架构的上下文

    架构是系统的展示。

我们经常说架构是组织的反映,有什么样的组织就有什么样的架构,从这个层面上讲,架构不是做出来的,架构说明是组织的展示,脱离开组织单纯讲架构也是一种耍流氓,所以很多企业抄华为的4A架构没法抄,所谓千企千面,每个企业也要根据自身实际情况进行架构的TOBE设计。

在《ISO/IEC/IEEE 42010》标准中,对系统也做了明确的定义:“系统是人工制造的,可由在此列出的一个或多个事物构成:硬件、软件、数据、人、过程(例如为用户提供服务的过程)、规程(例如操作指令)、设施、材料和自然发生的实体”。简化一点描述可以理解成为“软件产品和服务”(software products and services)

而企业的“系统”位于一个环境中。环境决定了整个生命周期中施加于系统的所有影响,包括系统在环境中,与环境的交互。这里的“环境”和我们口语表达中的“企业组织”相似。

一个系统的环境中可以包含其他系统。同一系统可以通过几种不同的架构来理解(例如,在不同环境中进行考虑时,可以使用不同的架构视角对同一系统进行架构说明)。

一个架构可以通过几种不同的架构说明来表达(例如,当采用不同的架构框架时,同样一个数据架构,华为的数据架构理解与其他公司也不相同,Togaf的数据架构和埃森哲的数据架构也不尽相同)。

相同的架构可以表征多个系统(例如,公用一个共同架构的系统系列)。

我们日常所说的“架构”或者“架构设计”或者4A架构,实际上是架构设计的输出物。在《ISO/IEC/IEEE 42010》标准中,架构是抽象的,由概念和属性组成,而架构说明是一种工作产品,也就是架构工作的输出物。

图片

所以当我们谈架构的时候,我们谈的是图中的哪一块?

参考:《ISO/IEC/IEEE 42010》

 下载地址:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1131184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Unity]给场景中的3D字体TextMesh增加描边方案二

如图所示仅支持图片内的/*数字 下面是资源

8.(vue3.x+vite)组件间通信方式之window挂实例

前端技术社区总目录(订阅之前请先查看该博客) 效果预览 父组件代码 <template><div><div>{{message }}</div><Child

66 跳跃游戏

跳跃游戏 题解1 贪心题解2 DP&#xff08;超时, 但思路应该对&#xff09; 给你一个非负整数数组 nums&#xff0c;你最初位于数组的 第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 …

打出「智驾之王」,小鹏1024科技日为什么这么敢?

作者 | 张祥威 编辑 | 德新 今年小鹏1024科技日&#xff0c;硬核的点很多&#xff0c;比如&#xff1a; 新一代XNet 2.0感知架构、下一代智能座舱系统天玑、分体式飞行汽车等等。 最硬核的&#xff0c;是小鹏的下一代智能驾驶整体能力。以及何小鹏再次明确&#xff0c;要兑…

导致爬虫无法使用的原因有哪些?

随着互联网的普及和发展&#xff0c;爬虫技术也越来越多地被应用到各个领域。然而&#xff0c;在实际使用中&#xff0c;爬虫可能会遇到各种问题导致无法正常工作。本文将探讨导致爬虫无法使用的原因&#xff0c;并给出相应的解决方法。 一、目标网站反爬虫机制 许多网站为了…

ASP.NET Core3.1 API 创建(Swagger配置、数据库连接Sql Server)、开发、部署

文章目录 创建项目点击Nuget安装包删除原有controllers编辑新建controll、添加注释Startup 注册Swagger服务使用swagger中间件配置XML注释更改启动端口 launchsettings.json在startup.cs跨域处理运行 数据库设计与连接安装库新建类继承框架根据数据库表设计对应设计类在DataCon…

AIGC时代 浪潮信息积极推动存储产品创新

近几年&#xff0c;AIGC的兴起&#xff0c;进一步驱动了全闪、混闪等存储产品的创新&#xff0c;也为市场带来了新的机遇&#xff0c;对于厂家而言&#xff0c;也需要升级存储产品的容量、性能及功能&#xff0c;方能满足场景诉求。对此&#xff0c;浪潮信息面向AIGC应用场景打…

8.2 矢量图层点要素单一符号使用一

文章目录 前言单一符号&#xff08;Single symbol&#xff09;渲染简单标记(Simple Marker)QGis代码实现 SVG标记&#xff08;SVG marker&#xff09;QGis代码实现 总结 前言 上一篇教程对矢量图层符号化做了一个整体介绍&#xff0c;并以点图层为例介绍了可以使用的渲染器&am…

解决org.quartz.SchedulerException: Job threw an unhandled exception.

文章目录 1. 复现错误2. 分析错误3. 解决问题3.1 解决方法一3.2 解决方法二 4. 分析spring中的jdk和cglib的动态代理4.1 动态代理对比4.2 原理区别4.3 性能区别4.4 各自局限4.5 静态代理和动态的本质区别 1. 复现错误 今天在执行quartz定时任务时&#xff0c;报出如下错误&…

使用element-UI Cascader组件,实现第一级单选选,第二级,第三级,子级可以多选

最近开发过程中&#xff0c;遇到需求测一个需求&#xff0c;就是级联选择器&#xff0c;需要多选&#xff1b;但是第一级是单选&#xff1b; 既要单选又要复选。参照网上内容&#xff0c;自己整理了一下功能实现&#xff1b; 如下图&#xff1a; 思路&#xff1a;1.把第一层的…

让酒酿得更明白,国台智能酿造标准体系重磅发布

执笔 | 洪大大 编辑 | 扬 灵 重阳下沙&#xff0c;是酱酒开启新一轮酿造周期的标志&#xff0c;是茅台镇千百年来恪守的传统文化&#xff0c;也是国台一年一度的重要时刻。 10月23日&#xff0c;智能酿造高质量发展论坛暨国台2024年度质量誓师大会隆重举办&#xff0c;此次…

orb-slam3编译手册(Ubuntu20.04)

orb-slam3编译手册&#xff08;Ubuntu20.04&#xff09; 一、环境要求1.安装git2.安装g3.安装CMake4.安装vi编辑器 二、源代码下载三、依赖库下载1.Eigen安装2.Pangolin安装3.opencv安装4.安装Python & libssl-dev5.安装boost库 三、安装orb-slam3四、数据集下载及测试 写在…

正点原子嵌入式linux驱动开发——Linux LCD驱动

LCD是很常用的一个外设&#xff0c;通过LCD可以显示绚丽的图片、界面等&#xff0c;提交人机交互的效率。STM32MP1提供了一个LTDC接口用于连接RGB接口的液晶屏。本章就来学校一下如何在Linux下驱动LCD屏。 LCD和LTDC简介 LCD简介 这里在当时学习stm32裸机开发的时候就学过了…

三代自动驾驶系统及主流科技公司自动驾驶技术方案简介

截止目前&#xff0c;按技术特点&#xff0c;自动驾驶技术大致经历了三代发展&#xff1a;第一代自动驾驶技术以后融合感知技术&#xff0c;高精度地图&#xff0c;基于惯导、GPS定位系统&#xff0c;预测模块&#xff0c;基于优化、搜索的规控等组成。第一代比较成熟的自动驾驶…

Pytorch实现深度学习常见问题

RuntimeError: stack expects each tensor to be equal size, but got [3, 300, 300] at entry 0 and [3, 301, 301] at entry 24 这里的问题出现的原因肯定是在数据预处理处&#xff0c;如下图&#xff0c;当数据使用不同的transforms处理方式时&#xff0c;会导致数据的尺寸大…

DC/DC升压模块电源 高电压稳压输出 12v24v28v48v转600V800V1000V1100V1300V1500V2000V3000V4000V

特点 ● 效率高达 80% ● 2*2 英寸标准封装 ● 单电压输出 ● 价格低 ● 稳压输出 ● 工作温度: -40℃~85℃ ● 阻燃封装&#xff0c;满足UL94-V0 要求 ● 温度特性好 ● 可直接焊在PCB 上 应用 HRA(B) 0.1~30W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为…

SpringBoot Web请求响应

目录 前言请求PostmanPostman使用 简单参数原始方式接收普通参数SpringBoot方式接收普通参数参数名不一致问题 实体参数简单实体参数复杂实体对象 数组集合参数数组参数集合参数 日期参数JSON参数路径参数 响应ResponseBody统一响应结果请求响应案例案例需求与准备工作案例实现…

足底筋膜炎能自愈吗

什么是足底筋膜炎 足底筋膜炎是足底的肌腱或者筋膜发生无菌性炎症所致。最常见症状是脚跟的疼痛与不适&#xff0c;压痛点常在足底近足跟处&#xff0c;有时压痛较剧烈&#xff0c;且持续存在。晨起时疼痛感觉明显&#xff0c;行走过度时疼痛感加剧&#xff0c;严重患者甚至站…

【Java网络编程】 三

本文主要介绍了TCP版本的回显服务器的编写。 一.TCP版本回显服务器 1.服务器 服务器的实现流程 1.接收请求并解析 2.根据请求计算出响应&#xff08;业务流程&#xff09; 3.把响应返回给客户端 代码&#xff1a; import java.io.IOException; import java.io.InputStream; i…

算法训练 第四周

一、二分查找 本题给我们提供了一个有n个元素的升序整形数组nums和一个目标值target&#xff0c;要求我们找到target在nums数组中的位置&#xff0c;并返回下标&#xff0c;如果不存在目标值则返回-1。nums中的所有元素不重复&#xff0c;n将在[1&#xff0c;10000]之间&#x…