分享

系统架构1:系统架构-对系统的抽象和分析

 新用户36625prl 2021-11-23
从事汽车行业及NVH这些年,常常感叹于汽车的复杂度,我一直很好奇,这么复杂的系统是如何设计,并且保证很好的运行呢?为了解答这个问题,我找到了一本书,能比较好解答我的疑惑,现以系列文章的形式分享与你。
书名叫《系统架构》,三个作者都是大牛:

Edward Crawley是俄罗斯莫斯科斯科尔科沃科学与技术学院的校长,也是麻省理工学院航空航天学及工程系统学教授。他从麻省理工学院获得航空与航天专业的学士学位及硕士学位,并获得航空航天结构专业的博士学位。Crawley教授是美国航天航空学会及英国皇家航空学会的会员,也是瑞典皇家工程科学院、英国皇家工程学院、中国工程院及美国国家工程院的成员。

Bruce Cameron是咨询公司Technology Strategy Partners的创始人,也是MIT System Architecture Lab的董事。Cameron博士从多伦多大学获得学士学位,从麻省理工学院获得硕士学位。Cameron博士在麻省理工学院的斯隆管理学院及工程学院讲授系统架构与技术策略课程,是多伦多大学董事会的前成员。

Daniel Selva是康奈尔大学机械与航天工程系的副教授。他从加泰罗尼亚大学、法国国立高等航空航天学院及麻省理工学院获得电气工程与航空工程学位。Selva教授的研究重点是在设计活动的初期运用系统架构、知识工程与机器学习工具。他的研究成果运用于NASA的地球科学十年调查、Iridium GeoScan Program及NASA的跟踪与数据中继卫星系统等项目。在这些项目中,他利用架构分析技术来为系统架构师和管理者提供支持。

这本书一方面回答了我前面关心的问题——复杂系统的设计和开发,另外一方面它将我关心两种思维方式——系统思考和分解思考很好结合了起来。

这本书核心都是围绕着系统架构这个主题展开,主要介绍了什么是系统思考及系统架构?如何从功能和形式角度对系统架构进行分析?如何创建系统架构?如何对不同的架构优劣进行评估和决策?

针对这四大模块我们分别会进行介绍,本文章重点分享介绍的是第1个部分:什么是系统架构?什么是功能和形式?如何确定系统中的实体?

1 系统和系统架构

在回答什么是系统架构之前,我们来回顾一下系统,在系统思维1|为什么要学习系统思维?中,我们对系统的定义是:
由一组相互连接的要素构成的,能够实现某个功能或目标的整体。

而在《系统架构》中,系统的定义是:

由一组实体和这些实体之间的关系所构成的集合,而且功能大于这些实际各自功能之和

书中别强调了这个大于各个实体功能之和的东西,叫做“涌现”,两个定义大同小异。明白了什么是系统,那什么是系统架构?

系统架构是对系统当中实体以及实体之间的关系所进行的一个抽象的描述,所以简单来讲,我们可以认为系统架构其实就是对系统的一个抽象的描述。

架构的选择常常直接影响后续的方案设计和性能空间,甚至直接影响开发的成败,所以其决策的影响非常重大,比如发动机的安装方式,你是选择横置还是纵置,不同方式,影响后续变速箱,传动系统,悬架等,乘客舱都要受到影响。

2 三种涌现:功能、性能、属性

以上是我们对于系统的回顾以及对系统架构的简单介绍,接下来重点分享一下前面提到的,系统的重要特征——涌现。涌现通常体现在三个方面:功能涌现,性能涌现以及属性涌现。

2.1 功能涌现

功能涌现就是系统所能够做的事情,它能够产生的动作,产出或者输出,这是系统最明显和最关键的一种涌现,比如设计一辆汽车,这个系统的主要功能是能够载人并行驶。并不是所有的系统设计好后,都能如期满足我们的功能需求,而有些时候又能产生一些意外的功能,如图我们可以将其分为四类:
2.2 性能涌现

涌现的第二种形式是性能,性能其实就是其功能表现的好坏程度,比如同样是为了实现驾驶功能,有的车马力更强,加速更快,我们就说其加速性能很好。
2.3 属性涌现

除了前面提到的功能和性能,系统还会涌现出其的属性,比如可靠性,可维护性,可操作性,安全性,鲁棒性等等,所有这些属性通常不是立刻能够创造出价值,而是要通过系统在整个生命周期的运转来体现,比如安全性,等到出了事故才能知道。

所以,评价一个系统设计的好坏,就可以看它涌现的功能、性能、属性是不是满足和超过我们的预期,如果是,就是一个成功的系统,否则就是一个失败的系统。
3 分析系统的重要角度:形式&功能

系统具有涌现特性,而它们又是可以设计的,我们自然很关心如何设计。而前提是明白它的机理,本书对我的最大启发就是,它按照形式和功能两个角度对系统进行分析,而全书也是通过这两个核心来进行贯穿,接下来我初步给你介绍一下这两个角度。

3.1 形式和功能

形式和功能是系统的两大特征,形式告诉我们系统它是什么,而功能则体现的是这个系统能够做什么
比如书中举了一个例子,一个由三个人构成的设计团队,那么可以认为,这三个人就是构成设计团队这个系统的形式,而功能就是能够研发出设计提案;

3.2 功能=过程+操作数

对功能,还可以拆分为过程(process)和操作数(operand)。"过程"表示的是动作、转化或者处理;操作数是这些动作所作用的对象,通过一系列动作,让对象状态发生变化,这就是功能。

以前面的设计团队为例,它的主要功能就是研发出新的设计方案,所以在这个过程当中,过程对应的其实就是研发活动,而操作数的对应的就是方案,通过这样的一个研发活动,他们能够实现方案从0到1,或者是从差到好。

3.3 与人类思维模式类比

作者还把这样的一种模式(形式-过程-操作数)和人的思维模式进行了一个类比,他引用了诺姆.乔姆斯基关于人类语言的深层结构的一个表述,在这种表述当中,包括三个部分:名称—动词—对象。

名词,充当的是我们动作所使用的工具,对于系统架构来讲就是形式;动词用来描述这个过程动作;对象对应操作数。举个例子,“用斧子劈开木头”,在这过程中“斧头”就是形式,劈开就是过程,木头就是操作数。
从上面分析当中,我们可以看到形式其实是执行功能所需要的载体或工具。
4 系统中的实体
上面我们整体介绍了分析系统的两个重要特征维度:形式和功能,如果要想进一步深入的去了解一个系统,就需要对它进行分解,而最直观和重要的思路就是先分析构成系统的实体,然后再分析他们的连接方式,我们先介绍实体。下面这张表格很好的示意了系统本身的实体的功能和形式,以及系统功能和形式之间对应的一个关系:

比如在前面提到的设计团队,其功能就是研发设计方案,而它的形式呢就是Team X,从右边往左边看,我们会发现,系统的形式由三个人构成,每个人有对应的功能,如解释需求,构思概念和评估并批准方案,而这些三个子功能,就构成了研发设计方案的功能,所以我们能够看到,系统本身涌现出来的功能和构成系统的实体有很大的联系,这是一个映射的关系,接下来我们要思考就是如何能够将系统分解成比较恰当的实体,从而进一步分析清楚这个系统的构成。


4.1 如何分离实体?
在系统的实体分离的过程当中,我们通常会碰到如下三种情况:

① 易区分元素(Distinct)构成的系统

系统当中的实体是互不相同的元素构成的,它们之间的界限非常清晰,比如前面我们提到的设计团队的三个成员,这很容易划分,又比如太阳系,可以分解为太阳,行星和周围的小行星。

②模组(Modular)构成的系统
以模块化为基础的系统,它的一个典型特征就是,在模块的内部,关系比较密集,在模块与模块之间则是相对比较独立,对这一类实体进行分解的时候,可以分解为输出端,输入端等定义好的接口,大致上是比较明晰的。

③集成(Integral)系统

这种情况则比较难进行划分,因为它是集成系统,它的内部是高度互联的系统,很难进行简单的分解,比如集成电路,以及我的专业——NVH。

4.2 用整体论识别潜在实体

我们在对系统进行分解的时候,通常会有个前提假设,就是已经给系统画好了边界,但是系统本身和周边的系统和环境是有交互的,为了避免在进行实体分离的时候漏掉重要的实体,我们要学会用整体论,也就是从整体上把握事件的紧密联系。以工作为例,做事情一定要考虑到你的上游和下游,因为看上去你好像只是在做你自己范围内的事情,但最后你的事情能不能做成,很可能受到你工作范围外关键因素的影响,而如果你考虑不周全或者忽略他们的话,最后导致你这个事情是做不成的。

比如我是做汽车声音设计的,虽然表面上我只需要设计好声音就完了,但实际上我还需要去关注车上的音响系统,它虽然不是我的主要业务,但它会直接影响我最后所呈现的效果,所以,也需要将其作为我工作系统的重要部分。

所以,我们在确定系统实体的时候,要尽可能把范围稍微放大一点,把当前的系统放在一个更大的范围当中考虑,比如我们应该把一个椅子放在一个房间当中考虑,而把一个房间呢放在一个住宅当中考虑,我特别喜欢下面这句话:

没有谁完全是一座孤岛,每个人都是墓地的一小块都是主体的一部分。(John Donne)
                             
4.3 聚焦重要实体

通过前面的方法,我们基本识别出了系统中的绝大部分实体,随之就不得不面临一个情况,在任何一个点上我们都能够发现很多影响系统的问题,而且数量已经超出了我们的理解能力,我们很难同时对他们进行考虑。所以,我们需要聚焦系统中最重要的实体,找出其中最关键最重要的那些问题,并且集中精力去思考和解决它们,否则的话就会陷入混乱中无法自拔,而这个关键实体/关键问题的数量一般是7±2。

4.4 为实体创建抽象

当明确了关键实体,接下来就需要对这些实体创建抽象或者是从实体当中发现抽象,什么是抽象?它是抽离于物体的性质描述,或者说是只包含本质而不包含细节的表述。之所以要这样做,也是为了降低我们处理事物的复杂度,还是举前面的设计团队的例子,其实每一个成员都是有自己的生理和心理的特征,而且都是非常复杂的人,但是在这样一个设计团队当中,我们需要将其抽象能提出设计方案的“团队成员”。
同时,抽象概括一类事物,或者一类实体,也可以大量降低复杂度,因为实体之间的关系通常是实体数量的平方,所以如果能够缩减抽象的个体,就能够把它们的关系数量大幅降低,进一步减低复杂度。

总结

1 系统是由一组实体和这些实体之间的关系所构成的集合,其功能大于这些实际各自功能之和,系统架构是对系统的抽象的描述;

2 形式和功能是系统的两大特征,形式表达的是系统是什么,而功能体现的是系统能够做什么,它们是我们分析系统的重要角度;

3 深入的去了解系统的运作,首先需要去识别系统当中的实体,以及实体本身的形式和功能;

4 有些实体是隐性的,需要我们用更大的视角,从整体上识别它们;
5 受限于人的认知能力和局限(7±2),我们需要聚焦处理最重要的实体和关系。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多