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


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

    程序员听到“架构”的时候,想到的是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》

     下载地址:

  • 相关阅读:
    [系统安全] 五十三.DataCon竞赛 (2)2022年DataCon涉网分析之恶意样本IOC自动化提取数据集详解
    Java的Atomic原子类
    怎么渲染半透明乳白色物体
    用yolov5做kaggle上的mnist手写数字识别
    解决 “微擎原系统登录页已弃用问题/微擎登入页面出问题”的两种办法【图文教程】
    Redis_04_Redis八种特殊数据类型
    Landsat数据下载
    关联规则挖掘(下):数据分析 | 数据挖掘 | 十大算法之一
    docker 服务编排
    BFS解决FloodFill算法:(Leetcode:200. 岛屿数量)
  • 原文地址:https://blog.csdn.net/skyhan888/article/details/134027115