《系统架构:复杂系统的产品设计与开发》——第2章,第2.2节系统与涌现

2023-10-17 14:59

本文主要是介绍《系统架构:复杂系统的产品设计与开发》——第2章,第2.2节系统与涌现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本节书摘来自华章出版社《系统架构:复杂系统的产品设计与开发》一书中的第2章,第2.2节系统与涌现,作者[美]布鲁斯·卡梅隆,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.2系统与涌现
2.2.1系统
由于系统思维是一种把疑问、状况或难题明确视为系统的思维方式,因此,要讲解系统思维,首先就必须讨论系统。英语中很少有哪个词的使用范围像系统这样广泛,而且其定义也有很多种,本书采用文字框2.1中的定义。
系统是由一组实体和这些实体之间的关系所构成的集合,其功能要大于这些实体各自的功能之和。


7e39fb740edfdd7c8744915c22d39dff228c3939

这个定义体现了两个重点:
1.系统是由相互作用或相互联系的实体组成的。
2.实体之间发生相互作用时,会出现一种功能,这种功能大于或不同于这些实体各自所具备的那些功能。
无论如何定义系统这个词,其核心都是上面所列出的第一点,也就是必须要有实体及实体之间的关系。实体(也称为部件、模块、例程、配件等)就是用来构成全体的各个小块。关系可以是静态的(例如连接关系),也可以是动态并交互的(例如货物交换关系)。
根据定义中的这一部分,我们可以确定有哪些事物不能称为系统。如果某物是一个连贯的整体,那它就不是系统。比如,一块砖(在宏观层面上)不能构成一个系统,因为它里面并不包含实体。然而,一面砖墙却可以构成一个系统,因为它包含实体(许多的砖块与砂浆)及关系(负载交换与几何关系)。毫无关系的一组实体也不能构成系统(例如位于乌克兰的一个人和位于亚洲的一袋米)。
要想给出一个能够把非系统的事物排除在外的定义,是相当困难的。有人可以说,一块砖头在适当的层面上就是一个系统。因为它是黏土做成的,而黏土本身是多种材料的混合物,这些材料之间具备相互关系,例如可以共同分担负荷,可以构成平行六面体等几何形状。住在乌克兰的人可能会用欧元购买亚洲的米,于是这两个实体就可以构成一个交易系统。
宽泛地说,任何一组实体其实都可以解读为一个系统,这也就是系统一词使用面较广的原因。有一个与系统密切相关的概念,叫做complex。作为形容词来讲,它的本义和首要义项是“复合的”,用来形容实体与关系较多的事物。而在某些语言中,complex还可以作为名词,用来表示“系统”这一含义。这种用法在科技英语中也有所体现,例如“肯尼迪航天中心39A发射复合体”(Launch Complex 39A)中的“复合体”,指的就是“系统”。
系统和产品,是两个容易混淆的概念。产品是能够交换或具备交换潜力的事物。有一些事物是产品但不是系统(例如米),还有一些事物是系统但不是产品(例如太阳系),但由于很多事物既是产品(可供交换)又是系统(含有很多相互联系的实体),因此这两个词经常混用。
与系统有密切关系的另一个概念是架构,也就是本书的主题。用最简单的话来说,我们可以把架构定义为“对系统中的实体及实体之间的关系所进行的抽象描述”[1]。由于架构是对系统所做的描述,因此对于一个存在且能够运作的系统来说,这两个概念显然是紧密相关的。
2.2.2涌现
在系统这个词的定义中,第二项特征是系统思维所要强调的重点。系统是一组实体及其关系的集合,其功能大于这些实体各自的功能之和。
系统思维所要强调的这一部分,就是涌现(emergence)的意义所在,也是系统的力量与魅力所在。涌现是指系统在运作时所表现、呈现或浮现出的东西。我们之所以要构建系统,就是为了取得令人满意的涌现物。对涌现的理解,是系统思维的目标,同时也可以体现出系统思维的艺术。
当系统的各个部件聚集起来时,会涌现出什么东西呢?最明显和最关键的涌现物,就是功能。功能(function)是系统所做的事情,也就是它的动作、产出或输出。我们设计某个系统,是想使该系统涌现出可以预期且令人满意的主要功能(例如汽车可以载人)。这项主要功能,通常与系统所产生的好处有关(我们之所以买车,是因为它有个好处,这个好处就是可以载人)。系统也可能会涌现出我们可以预料到但不合人意的产出(例如汽车燃烧碳氢化合物)。有时,当系统成形时,还会涌现出意料之外的功能。比如,汽车可以给人一种自由感,这项意料之外的产出,是令人满意的。而有些意料之外的功能却是我们所不愿意见到的,例如汽车可以致人死亡。从表2.1中可以看出:系统所涌现出来的功能,有些是可以预料到的,有些则是在事前无法预料到的;有些功能令人满意,另一些则不合人意。此外我们还可以明确地看出:除了主要功能之外,系统还可能涌现出其他一些令人满意的功能,例如人在汽车里可以感到温暖或凉爽,汽车能够令人感到愉悦等。
表2.1 对涌现出的功能进行分类


c93aec4399f6b291e8fa38be5b22c07601fa0cd9

预期的涌现意外的涌现,令人满意的汽车可以载人,汽车内可以使人感到温暖/凉爽,汽车令人感到愉悦,汽车可以创造一种个人自由的感觉
不合人意的,汽车燃烧碳氢化合物,汽车可以致人死亡。
系统的基本性质在于它会涌现出新的功能。比如图2.1中的这两个元素:沙和漏斗形玻璃管。沙是一种天然材料,并没有预期的功能。漏斗可以汇聚其他物品或使之沿渠道流出。当这两件元素组合起来时,一项新功能就诞生了,这就是计时功能。我们怎么会知道沙和漏斗拼接起来能变成一种计时器呢?沙和漏斗这两个机械元素怎么会产生一种可以记录抽象概念(也就是“时间”)的信息系统呢?
除了功能之外,系统还会涌现出性能(performance)。性能就是系统运作或执行其功能的好坏程度。它是系统功能的一项属性。某辆汽车的运输速度有多快?某个沙漏能否准确地计时?这些都是性能问题。图2.2中的足球队是个人类系统。所有足球队的功能都一样,就是队员协作比赛,取得比对手更多的进球。然而,有些足球队的成绩要比其他足球队更好,因为他们可以赢得更多的比赛。图2.2是参加2014年世界杯的德国足球队,他们赢得了冠军,可以说是这届比赛中成绩最好的球队。
图2.1 由沙和漏斗构成的系统所涌现出的功能:计时


20d5c4c3b5cbc6c0218ddf1cfa6eedaea9ff3842

图片来源:LOOK Die Bildagentur der Fotografen GmbH/Alamy
系统架构的第一条原则所谈的就是涌现(参见文字框2.2)。原则是一种长期有效的道理,它们总是能够(或者几乎总是能够)适用于各种问题。本书在介绍系统架构的原则时,一般都会先给出一些名人名言,用来展示伟大的思考者如何将这些原则精彩地表述出来。每条原则都会包含叙述和指引这两部分(指引部分可以用来指导我们的行动),有的原则还会给出深入的讨论。
文字框2.2 涌现原则(Principle of Emergence)


6eacc474d66048709a967de5e733fff24a988b99

“系统并不是其组成物的简单加总,而是这些组成物之间互动的产物。”
—Russell Ackoff
“整体大于其各部分之和。”
—亚里士多德(Aristotle),《形而上学》
当各实体拼合成一个系统时,实体之间的交互会把功能、行为、性能和其他内在属性涌现出来。我们要思考并试着探寻系统所涌现出的预期属性和意外属性。
实体之间的交互会导致涌现物。涌现物指的是系统在运作时所表现、呈现或浮现出来的东西。系统的附加价值是由涌现物所赋予的。
涌现的结果,使得变化以无法预知的方式进行传播。
一个实体所发生的变化将会如何影响涌现出来的属性,是很难预测的。
能够涌现出预期属性的系统,是成功的系统。不能涌现出预期属性或意外涌现出不良属性的系统,是失败的系统。
除了性能之外,系统还会涌现出其他属性,例如可靠性(reliability)、可维护性(maintainability)、可操作性(operability)、安全性(safety)和健壮性(robustness,鲁棒性)。这些以“某某性”为格式的属性,其对应的英文单词大多以“ility”结尾。与功能和性能方面的涌现物不同,这些属性并不是立刻就能创造出价值的,而是要通过系统在整个生命期中的运作情况来体现。某辆汽车是否能安全地载人?某个沙漏是否能可靠地计时?德国足球队是否能稳定地赢得比赛?某个软件是否能健壮地或可靠地运行?某辆车在路边抛锚,究竟是机械性的故障,还是嵌入式软件性的故障?
在表2.1的四类涌现物中,最后一类涌现物特别重要,值得单独讨论,这就是意外且不良的涌现物。我们把这种涌现物称为紧急状况(emergency,这个词的词根和涌现物的英文单词emergence相同)。汽车可能因失控而导致旋转或翻滚。足球队可能会在重要的比赛日产生冲突或表现不佳。图2.3是袭击新奥尔良的卡特里娜飓风(Hurricane Katrina),这是一种引发紧急状况的自然现象。这个系统的破坏力非常大。


b41735bbff912cc264e000191292540a5ca9315a

这些和功能及性能相关的涌现属性(也就是刚才提到的“某某性”),以及系统不引发紧急状况这一特点,与系统所创造的价值有着密切的联系。价值就是有着一定成本的利益。构建系统是为了获得利益(这个利益,在观察者的眼中,是以财富、名望或功用等主观标准来评判的)。
总之:
系统是由多个实体及实体间的关系所构成的集合,其功能大于这些实体各自的功能之和。
每件事物几乎都能视为系统,因为其中差不多都含有一些相互关联的实体。
当系统的功能大于其中每个实体各自的功能之和时,就会有涌现物出现。
对涌现物的理解,是系统思维的目标,同时也体现出系统思维的艺术。
系统运作时会涌现出一些功能、性能,以及一些以“某某性”为名的属性。与系统不引发紧急状况这一特点一样,这些功能、性能和属性,也都与系统的利益和价值密切相关。

这篇关于《系统架构:复杂系统的产品设计与开发》——第2章,第2.2节系统与涌现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/226169

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间