un

guest
1 / ?
back to lessons

差分分析器的故事

汉明的系统工程第一条规则: 如果你优化组件,你可能会破坏系统性能

他用自己的工作中的一个故事来说明这一点。他操作了一个差分分析器——一个模拟计算机,通过机械积分来解决微分方程。需求增加了,所以订购了一个新的单元,与第一个单元相连接,它们可以单独运行或一起运行。

建筑师们为他们的工艺而自豪,提高了新的单元中的放大器。汉明坚持:任何改进都不能干扰整个系统的运行。在接受日,他运行了经典测试:解y'' + y = 0,绘制y vs y',期望是一个完美的圆。它立即失败了。

原因:改进的放大器通过地线吸收了更多的电流。与原始放大器相比,不够的地面,现在允许了耦合电流之间的子系统。一个组件的改进(放大器)损坏了接口(地面),整个系统受损。

解决方案是微不足道的——更重的铜地面——但原则是明确的:一个组件的改进会改变它的接口行为。整个系统都设计在旧接口之上。优化组件,打破接口,损害系统。

系统工程:优化组件会毁灭系统

识别组件优化

汉明说这条规则'看起来如果你孤立地提高一个组件,整个系统会更好'——然而它是错误的。失败是通过接口传导的:组件的改进改变了接口看到的信号。

从工程、软件或组织设计中给出一个具体的例子,其中提高了一个单独的组件或子系统,最终损害了整个系统性能。具体说明:哪个部分被改进了,哪个接口受到影响,以及接口受损如何通过系统级别的损害传播。

接口胜过组件

哈明的实际结论:系统工程师必须首先设计和验证接口,然后再设计组件。一个完美的组件但接口破损毫无用处。一个普通组件但接口良好后期可以改进。

规则2:系统的约束条件(限制)往往比那些约束内的最优值更重要。一个设计用于在预期操作点上最大化性能的系统往往脆弱:小幅超出预期范围导致故障。一个设计用于在广泛范围内安全运行,并且有明确约束的系统则更加稳健。

例子:一个设计用于在100Mbps流量下25°C温度下运行的通信系统在流量升至110Mbps或温度升至40°C时会失败。一个设计有约束‘在任何温度不超过60°C时不得超过90%利用率’的系统更有用,即使其峰值性能稍低。

系统工程师的工作:不是单独优化A或B,而是优化A+B+C...作为一个整体,遵循约束。

教育系统:失败的系统工程

汉明将自己的原则应用到了教育领域。几十年来,大学对单个数学课程进行了优化:微积分被精简到最基本的部分,线性代数被清理和紧凑化。从单个课程来看,各个课程都看起来更好。

但从系统的角度来看,出现了很大的缺口:

- 数学归纳法:高中以后很少提到。

- 复数:初等代数中简短介绍,然后在线性代数中避免直到出现复杂的特征值。学生面对两个新且困难的概念同时,没有任何准备。

- 不确定系数:简短提到。

- 不可能性证明:几乎完全缺席。

- 离散数学:大部分被忽略。

每个组件(每个课程)的优化导致了接口缺口:课程之间缺乏概念上的桥梁。即使每个课程的输出指标都有所提高,系统的输出——受过教育的工程师和科学家们——依然受到影响。

汉明的分析:为单个课程刻苦学习是组件优化,但会降低教育系统的整体效果。请在自己的教育经历中,指出一个特定的接口缺口——两个课程或学科之间没有连接,导致你在下一步无法准备好。用系统工程术语来解释:接口是什么,各组件各自假设了什么,以及不匹配是如何体现的?

抵制修复破损部分的自然冲动

汉明的观察:说出正确的系统工程词汇很容易。很少有人在关键时刻能真正做到。

当系统失败时,自然的反应是:找出最明显的故障组件并修复它。这就是组件思维。然而,系统失败的原因往往涉及组件、接口和约束的相互作用——但通常最显著的故障都发生在单个组件上。

系统工程师的自律:在修复显著故障之前,先问:系统为什么在这个组件上产生了这个故障?这个组件是否真的性能不佳,还是它被整个系统要求超出设计范围呢?只修复组件症状而不解决系统故障,效果仍然不理想。

大型组织中通信瓶颈遵循这个模式:一个部门的沟通不畅(显著故障)。组件修复:聘请更好的沟通者。系统修复:重新设计信息流架构,以便通过相同的协调实现更少的通信。

系统诊断

区别:组件修复对症治疗。系统修复治疗根本原因。原因通常涉及系统结构——哪些组件存在,哪些接口将它们连接起来,以及它们操作的约束。

描述一个实际情况(在你的工作中、你的组织中,或者一个记录过的案例中),其中对一个明显问题的‘修复’使整体情况变得更糟或没有帮助,因为它对症治疗了组件症状而不是系统原因。描述应用的组件修复、忽略的系统原因,以及系统级别干预该是什么样的。