《系统架构:复杂系统的产品设计与开发》——第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

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块