IT架构思想---架构抽象

引言        

        架构的抽象思维这个概念很难解释,希望不会翻车,因为太抽象了.....,只能尽所能了。(为了方便说明文章中的架构均指IT架构)

抽象的定义

抽象是从众多的事物中抽取出共同的、本质性特征,而舍弃其非本质的特征的过程。具体地来说,抽象就是人们在实践的基础上,对于丰富的感性素材通过去粗取精、去伪存真、由此及彼、由表及里的加工制作,形成概念、判断、推理等思维形式,以反映事物本质和规律的方法。这里调侃下,当我们试图用哲学的知识去解释一个IT架构概念的时候,组织需要的也许是一个保洁、保安(此处虽然调侃之意,但也可以用架构的业务用例来解释)。我们回过来看定义,重点词圈出来:抽取、共同、本质性特征、实践基础上。我们把主题切换到架构层面,我们如何去解释以下几个问题:

1、架构层面抽取指的是什么?

2、架构层面共同指的是什么?

3、架构层面本质性特征指的是什么?

4、架构层面实践基础上指的是什么?

回答以上问题之前,我们看

Togaf 9.2对抽象(Abstraction)的定义:

The technique of providing summarized or generalized descriptions of detailed and complex content.

Note:

Abstraction, as in "level of abstraction", can also mean providing a focus for analysis that is concerned with a consistent and common level of detail or abstraction. Abstraction in this sense is typically used in architecture to allow a consistent level of definition and understanding to be achieved in each area of the architecture in order to support effective communication and decision-making. It is especially useful when dealing with large and complex architectures as it allows relevant issues to be identified before further detail is attempted.

1、抽象看成了一种解决复杂内容(这里翻译为问题可能更好)的技术

2、抽象可以为每个架构领域中形式一致性定义和理解(本质是知识语境的说明

感觉这个定义更多的是在讲抽象在架构中的作用,而不是在回答在架构层面什么是抽象。从这个定义来看,对Togaf还是挺失望的。继续深挖,

Togaf 10对架构抽象有定义:

An architectural technique for dividing a problem area into smaller problem areas that are easier to model and therefore easier to solve.

Abstraction levels are layered in nature, moving from high-level models to more detailed models.

Architecture effort can be divided into four distinct abstraction levels that cross the Business, Data, Application, and Technology domains to answer fundamental questions about an architecture:

  • Why — why is the architecture needed?
  • What — what functionality and other requirements need to be met by the architecture?
  • How — how do we structure the functionality?
  • With what — with what assets shall we implement this structure?

Note that why, what, and how have no connection to their use in the Zachman® Enterprise Architecture Framework.

这个定义就有意思很多,至少完全从架构视角去解释的。

1、把问题域划分为更小问题域一种架构技术,抽象的本质是分层,从高阶模型转移(moving from)到详情模型。

这个解释虽然比9.2更好了,笔者理解划分的本质就是架构分治,用架构分治来解释架构抽象??另外转移笔者理解用conext map 更恰当,从高维度解释低维度问题。关于架构四个层面抽象下面这张图更清晰些:

1、上下文抽象层

2、概念抽象层

3、逻辑抽象层

4、物理抽象层

业务架构、数据架构、应用架构、技术架构分别要回答架构抽象的四个层面。

笔者认为上面的定义还是比较模糊,架构抽象作为架构思想的重要部分,我们期望其定义能指导我们如何去做架构(特别是新的业务领域),并且把现有相关的架构框架体系的元素、工具关联起来,且能落地到具体的业务上。

架构抽象定义:

在了解事物全貌后对事物特征进行共性抽取、泛化的过程。

我们再来看从业务层面抽象定义:

业务架构层面架构抽象的定义:在了解业务全貌后对角色、业务活动、业务规则 、业务流程进行共性抽取、泛化的过程。

DDD战术层面架构抽象的定义:在了解领域知识后,对领域实体、值对象、聚合根进行共性抽取、泛化的过程

大家兴趣的,可以基于这个定义扩展到不同的概念中。我们再回来看上面的问题如何回答

1、架构层面抽取指的是什么?

        抽取:从分层视角来看,抽象是把共性特征聚合到更高层次。

2、架构层面共同指的是什么?

        共同:事物相同的特征

3、架构层面本质性特征指的是什么?

        本质性特征:承接业务能力的核心业务对象相关属性。这里一定要从组织、业务视角来看。

4、架构层面实践基础上指的是什么?

        领域知识或者说是参考架构

架构抽象是一个过程,那用什么可以体现整个抽象过程的结果呢。答案就是我们输出不同的架构视图,如:业务架构图、应用架构图、领域架构图等。

这里引出一个问题,我们经常发现,不论是从架构层面、代码层面都做了很好的抽象并且引入了合适的架构模式、设计模式,但每次需求变化的时候都需要做一次重构优化。这时就会被领导怼、产品经理说不懂复用、抽象。这个问题要从组织、业务两个视角去回答,已经超同本文标题范围了,以后有时间再写。

引用:

抽象(哲学概念)_百度百科 (baidu.com)

TOGAF® Standard — Introduction - Core Concepts (opengroup.org)

TOGAF 10 Courses Foundation and Practitioner (detecon.com)

The TOGAF Standard, Version 9.2 - Definitions (opengroup.org)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【二维差分】2132. 用邮票贴满网格图

本文涉及知识点 二维差分 LeetCode2132. 用邮票贴满网格图 给你一个 m x n 的二进制矩阵 grid ,每个格子要么为 0 (空)要么为 1 (被占据)。 给你邮票的尺寸为 stampHeight x stampWidth 。我们想将邮票贴进二进制矩…

租房项目之并发缺失数据问题

前奏:本项目是一个基于django的租房信息获取项目。本次博客牵扯到两个版本,集中式分布以及分布式部署(两个版本的ui不同,集中式用的是老版ui,分布式使用的是新版ui); 项目链接:http…

【C++提高编程-09】----C++ STL之常用排序算法

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

04 翼型和机翼、尾翼几何选择

04 翼型和机翼、尾翼几何选择 4 -1 引言4-2 翼型的选择4-2-1 翼型的几何4-2-2 翼型的升力和阻力4-2-3 翼型选择与设计4-2-4 设计升力系数4-2-5 失速4-2-6 翼型厚度比4-2-7 关于翼型其他方面的考虑 4-3 机翼几何外形4-3-1 展弦比4-2-3 机翼后掠角4-3-3 机翼稍根比4-3-4 机翼扭转…

echarts学习:使用dataset管理数据

前言 在我们公司的组件库中有许多echarts图表相关的组件,这些组件在使用时,只需将图表数据以特定的格式传入组件中,十分方便。因此当我得知echarts 可以使用dataset集中管理数据时,我就决定自己一定要搞懂它,于是在最…

第2章 Rust初体验6/8:Option枚举及其变体:能避免空指针异常问题:猜骰子冷热游戏

讲动人的故事,写懂人的代码 2.6 故事4: 一直让玩家不断猜 我们全班要一起用三种语言来写第4个故事啦。这可能是我们所有故事中最复杂的一个了。不过别担心,贾克强已经把这个故事的需求都用投影仪展示出来了。 程序会提示玩家猜两个骰子的点数之和。如果玩家第一次输入点数之…

C#反射机制介绍

文章目录 简介一、什么是反射二、反射的用途三、反射用到的命名空间及主要类四、Type类五、Assembly类六、使用反射实现上面的程序七、反射的优缺点 简介 这篇文章介绍了C#的反射机制,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值&a…

DAY5-力扣刷题

1.两两交换链表中的节点 24. 两两交换链表中的节点 - 力扣(LeetCode) 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换…

Kubernetes新手必看:快速生成YAML清单的终极指南!

在这篇文章中,你将学习到几种快速创建Kubernetes YAML清单的方法,这些方法可以帮助你在Kubernetes中测试和部署应用程序。这些技巧同样适用于Kubernetes认证考试。 在使用Kubernetes时,我们经常需要搜索Kubernetes YAML文件以便部署测试Pod、…

编写一个简单的Mybatis插件

1.编写一个类,实现Intercepter这个接口 2.完成这个类的方法,并通过注解Intercepts来告诉Mybatis这个插件拦截哪个类和哪个方法 3.在Mybatis的全局配置文件里注册这个插件,让插件生效 4.玩一个实际功能的插件

家庭智能助手:Kompas AI引领家居智能化新纪元

一、引言 在数字化浪潮的推动下,现代家庭生活正迅速向智能化转型。从简单的自动化设备到复杂的智能家居系统,智能技术正悄无声息地改变我们的日常生活。Kompas AI作为一款前沿的家庭智能助手,不仅预示着家庭生活的未来趋势,更以其…

每日一练:攻防世界:ewm

这道题我尝试了使用montagegaps解题,但是没有解出来,图片数量不是很多,可以尝试用PS直接拼图,但是这样学不到东西,我也就没尝试,直接看的官方WP 这段代码应该是改变工作目录到small,并且变量当…

Sping源码(九)—— Bean的初始化(非懒加载)— Bean的创建方式(自定义BeanPostProcessor)

序言 之前文章有介绍采用FactoryBean的方式创建对象,以及使用反射创建对象。 这篇文章继续介绍Spring中创建Bean的形式之一——自定义BeanPostProcessor。 之前在介绍BeanPostProcessor的文章中有提到,BeanPostProcessor接口的实现中有一个Instantiatio…

Tensorflow-GPU工具包了解和详细安装方法

目录 基础知识信息了解 显卡算力 CUDA兼容 Tensorflow gpu安装 CUDA/cuDNN匹配和下载 查看Conda driver的版本 下载CUDA工具包 查看对应cuDNN版本 下载cuDNN加速库 CUDA/cuDNN安装 CUDA安装方法 cuDNN加速库安装 配置CUDA/cuDNN环境变量 配置环境变量 核验是否安…

【乐吾乐2D可视化组态编辑器】导航

支持点击图元,切换画面或跳转链接。 乐吾乐2D可视化组态编辑器地址:https://2d.le5le.com/ 切换画面 1. 添加事件 2. 设置事件行为 事件行为"发送消息",消息名选择"导航"。 3. 配置消息参数 消息参数,…

图像的对比度和亮度

目标 访问像素值用0来初始化矩阵cv::saturate_cast像素转换提高一张图像的亮度 原理 图像处理 图像变换可以被视作两个步骤: 点操纵(像素转换)相邻区域转换(以面积为基础) 像素转换 在这种图像处理的转换过程中…

操作系统 - 进程的控制(创建与终止)

进程控制 文章目录 进程控制进程创建进程的终止wait()和waitpd()僵尸进程孤儿进程 进程创建 程序在执行的过程中,可能会创建多个进程,创建进程称为父进程,新的进程称为子进程,每个新的进程也可以创建其他进程,从而形成…

LinkedHashMap详解

目录 LinkedHashMap详解1、LinkedHashMap的继承体系2、LinkedHashMap的特性介绍和代码示例①、特性②、适用场景使用LinkedHashMap 实现最简单的 LRU缓存 3、LinkedHashMap的构造函数4、LinkedHashMap是如何存储元素的,底层数据结构是什么?LinkedHashMap…

功能强大的多功能文档转换工具Neevia Document Converter Pro 7.5.0.241

Neevia Document Converter Pro是一款功能强大的Windows软件,旨在将文档转换为各种格式,包括PDF、TIFF、JPEG和许多其他格式。该程序专为在企业环境中使用而设计,提供文档转换和处理过程的自动化,这使其成为处理大量文档的组织的***工具。 Neevia Document Converter Pro的…

基于Quartus Prime18.1的安装与FPGA的基础仿真(联合Modelsim)教程

Quartus是一种美国科技公司Intel(英特尔)公司开发的FPGA(现场可编辑门阵列)设计编译软件,用作设计、仿真、综合和布局、支持多种编程语言,包括VHDL、Verilog等,并具有丰富的功能和工具库&#x…