1.3.1 复杂性
每个系统都具有复杂性,这种复杂性可以被认为是两种类型其中之一,如图1.10所示。
图1.10 复杂性类型
图1.10展示了系统会表现出复杂性。复杂性主要有两种类型:
❍固有复杂性是指系统固有的自然复杂性。这里使用术语“固有”是因为它指的是在系统本质中表现出来的复杂性。系统的固有复杂性是不可能被降低的,但是可以进行管理和控制,当然前提是它在一开始就被识别出来了。
❍偶发复杂性不是系统自然而然具有的,它是由低效的系统工程实施人员、流程和工具引起的,本章稍后将对此进行讨论。偶发复杂性可以被降低,这也是系统工程的一个环节。
复杂性表现在事物之间的关系中,无论是构成系统的系统元素之间还是系统之间。下面会更详细地讨论复杂性的微妙之处。
1.举个例子
为了说明复杂性在过去几十年中是如何演变的,这里将介绍一个简单的系统示例。该示例贯穿全书,用于解释各种概念和技术——这些概念和技术是系统工程总方法的一部分。
在本例中,我们将考虑汽车系统。试想一下这样两辆汽车:一辆是在50年前研发和制造的,大约在1970年;另一辆是近些年研发和制造的,大约在2020年。
考虑系统的需求。汽车的目的是将许多人从A点运送到B点。汽车与人交互的元素基本上是转向盘、变速杆和三个踏板(加速踏板、制动踏板和离合器踏板)。
在过去的50年中,汽车的这种基本需求或目的并没有发生改变。这里讨论的重点是汽车的复杂性以四种不同的方式发生了变化,这将在下文中依次讨论。
2.系统元素的复杂性
为了说明系统元素的复杂性在过去50年中是如何变化的,我们会对上述两辆汽车进行单独的讨论,然后再对它们进行比较。汽车的基本组成如图1.11所示。
图1.11 汽车的基本组成
图1.11显示了一个简单的汽车系统示例。汽车由以下四个系统元素构成:
❍车身,包括较低级别的系统元素,例如车门、后视镜等。
❍底盘,包括较低级别的系统元素,例如制动器、车轮、悬架等。
❍内饰,包括较低级别的系统元素,例如座椅、仪表板、控制台等。
❍传动系统,包括较低级别的系统元素,例如发动机和传动装置。
这辆拥有50年历史的汽车由机械和电气类系统元素构成。其中几乎所有的系统元素都属于机械类,只有极少数属于电气类。
电气类系统元素仅限于车灯、风扇、刮水器和起动发动机,这就是电气类系统元素的范围。机械类系统元素指与车身、底盘、传动系统和内饰相关的其他所有系统元素。因此,系统的绝大多数元素都是机械的,只有少数是电气的。这意味着几乎所有系统元素之间的接口本质上都是机械的,只有少数是电气或机电的。
对于制造这辆汽车,主要是将具有良好定义接口的独立系统元素集成起来。此外,所有电气连接都需要非常简单的点对点布线。
现在再来看看近些年的汽车。这类汽车出现了两种新的系统元素,而这在50年前的汽车上根本不存在。它们是电子类和基于软件的系统元素。现代化汽车上绝大多数系统元素都属于这两类。电子类系统元素包括:
❍控制器,如灯光控制器、指示灯控制器等。
❍传感器,如温度传感器、压力传感器、旋转传感器等。
❍制动器,如杠杆、小齿轮等。
❍显示元素,如仪表板灯、音频警报等。
所有现代化汽车都具备大量的软件,这些软件会被拆分到整辆汽车的多个节点上。对于软件本身,必须连接到相关的电子组件上。它反过来会产生对通信总线的需求,例如控制器区域网络(Controller Area Network,CAN),它本身也会使用通信协议。
制造现代化汽车不再是一个将系统元素集成在一起的简单问题,因为现在元素之间的接口要复杂得多,并且会涉及电压和电流、数据传输、通信协议与复杂布线的细微变化。
因此,构成汽车的系统元素的复杂性拉大了两辆车之间的差距。事实上,它不仅增加了系统元素的数量,还改变了这些系统元素的性质。
3.约束的复杂性
在过去的50年中,人们对汽车的基本需求并未发生巨大变化,即仍然是将人们从A点运送到B点。在过去,汽车的重点需求是尽可能快地行驶,除此之外几乎没有其他的要求。而过去50年中发生的主要变化并不是针对这样的基本需求的,而是针对基本需求的约束的,如图1.12所示。
图1.12 简单约束
图1.12显示了“研发汽车”的简单需求,与此相关的主要约束有两个,即安全与快速。图1.2大致代表了一辆有50年历史的车的基本需求和约束。
相较于现代化汽车,与老式汽车相关的约束数量实在是太少了,现代化汽车的复杂约束如图1.13所示。
图1.13 现代化汽车的复杂约束
图1.13展示了与现代化汽车相关的约束。
比较这两组约束时,首先注意到的是约束数量急剧增加。有一些新的约束在老式汽车中根本不存在,例如,保护性(be sure)现在是一个受关注的点,而以前并不是主要考虑的因素。同样,有一整套与提供良好的驾驶体验相关的新约束。这种约束数量的增加会导致基本需求和约束之间的关系数量增加,这自然会导致需求和约束的复杂性增加。
不仅仅是约束数量的增加导致了复杂性的增加,单个约束的复杂性也增加了。现在有许多与最佳实践模型相关的约束,例如符合标准和遵守法律。从复杂性的角度来看,这很有趣,因为这些约束也将直接与其他约束相关。例如,安全(be safe)以前被视为一个独立的约束。在现代化汽车中,这一约束还包括与之相关的合规性约束。由于现在出现了很多在50年前还不存在的汽车相关标准和法律,并且随着约束之间相关性的增加,单个约束的复杂性也随之增加。
4.系统体系的复杂性
在过去50年中,汽车复杂性增加也发生在更高层次的由系统组成的系统中。由系统组成的系统不仅仅是系统的集合,当很多系统组合在一起时,能够展现出单一系统无法体现的行为。因此,我们可以认为一个车队不是由系统组成的系统,因为它只是系统的集合,只会使整个系统稍微复杂一些。真正的更高层次的由系统组成的系统可以是交通网络,汽车只是其中的一部分。整个交通系统表现出了一系列行为,例如确保从一个目的地到另一个目的地的高效旅程,在发生事故时保持交通畅通,以及提供与智能城市和其他交通系统(如铁路)的无缝连接。
随着汽车自身与其他系统的交互,现代化汽车已经真正成为由系统(例如智能城市、智能道路、云、卫星等)组成的系统的一部分,而这些都是老式汽车没有的。现代化汽车还接管了一些以前属于司机的技能,例如停车、定速巡航、识别潜在危险等。
因此,由于汽车现在是更广泛的系统的一部分,汽车系统的复杂性增加了。
5.复杂性转变
复杂性增加不一定表现为相同类型复杂性的增加,也可能表现为由于复杂性其他方面的增加而导致的复杂性的转变。
再次考虑那辆老式汽车和它的发动机。这款已有50年历史的汽车的发动机是一种内燃机,主要由机械类系统元素和少量电气类系统元素组成。内燃机自然而然地可以被认为具有很高的机械复杂性。
现在考虑现代化电动汽车。现代化电动汽车上的发动机是具有单个运动部件的电动机。与老式汽车相比,现代化汽车的机械复杂性几乎不存在。现代化汽车的复杂性主要在于监控汽车其他部分和控制电动机的软件,而老式汽车没有任何软件。
因此,老式汽车的机械复杂性很高,而软件复杂性为零。现代化汽车机械复杂性很低,软件复杂性很高。
现代化汽车的复杂性在本质上已经发生了变化,从机械复杂性转变成了软件复杂性。
6.全盘考量
在过去的几十年中,典型系统的复杂性急剧增加。在我们的示例中,汽车复杂性的增加有四个方面的原因,我们已经就这些原因进行了讨论。
这种复杂性的增加不仅适用于汽车系统,还适用于所有其他类型的系统。实际上,这四种复杂性增加会相互依赖,进而会增加整体的复杂性。例如,系统元素复杂性的增加也将导致复杂性的转移,并且可能导致系统体系复杂性的增加,这反过来又会导致约束数量的增加。
7.识别复杂性
管理复杂性的关键是识别复杂性在系统中的位置。这是一个贯穿全书的主题,尤其是在讨论工件和模型时。接下来讨论与沟通相关的问题,它与复杂性和理解一起形成了系统工程的三大弊端。