购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 系统工程的需求

系统工程的需求其实很简单。在现实生活中,事情往往很容易出错,例如项目超支、飞机失事、环境破坏、人员伤亡,组织因软件和IT陷入瘫痪,社会因管理的不协调而出现严重问题,所有这些都是某种程度的系统故障。

既然事情很容易出错,那么了解出错原因就很重要。从根本上说,导致这些系统故障的主要原因有以下三个:

❍复杂性 ,如果复杂性未被识别,那就无法进行管理或控制。

❍沟通 ,沟通失败或模棱两可。

❍理解 ,没有考虑不同观点就做出假设。

问题实际上比这更糟糕,因为这三个主要原因会相互影响。不受控制的复杂性将导致沟通失败和缺乏理解;沟通失败会导致无法识别复杂性和缺乏理解,而缺乏理解又会导致无法识别复杂性和沟通问题(Holt,2001)。

这三个原因通常被称为系统工程的三个弊端,将在下文中进行更详细的讨论。

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.识别复杂性

管理复杂性的关键是识别复杂性在系统中的位置。这是一个贯穿全书的主题,尤其是在讨论工件和模型时。接下来讨论与沟通相关的问题,它与复杂性和理解一起形成了系统工程的三大弊端。

1.3.2 沟通

沟通是系统工程成功的关键。前面已经讨论过,系统工程将来自不同背景的人们聚集在一起,这将导致潜在的沟通问题的增加。不明确的信息、语言和协议会导致产生歧义,从而导致沟通不畅或效率低下。

沟通存在于许多层面,例如:

❍人与人之间 ,最明显的沟通方式就是人与人之间的交流。人与人之间的交互是项目成功的关键,而且这是一个比最初看起来更为复杂的问题,这将在下文中讨论。

❍组织之间和组织内部 ,成功的企业依赖公司内的不同组织之间的有效沟通。沟通的媒介可能是文件、协议、合同等,也会出现同样的沟通问题。

❍系统内部、系统之间、系统元素之间和系统元素内部 ,我们的业务和项目所依赖的系统必须能够有效地沟通。这包括IT系统、其他技术系统和基于服务的系统等。

在考虑沟通时,另一种思考方式是,所有干系人之间的沟通必须是有效和高效的,无论干系人代表的是个人、组织还是事物(如系统)。在考虑系统工程领域的沟通时,要解决的是干系人之间的沟通。

不同类型干系人之间(例如,人与系统之间、人与组织之间)也可以进行沟通,这些沟通问题更加复杂等。

1.定义通用语言

改善沟通的主要解决方案之一是让各方“讲一种通用语言”。这是一个重要且显而易见的解决方案,但说一种通用语言实际上比看起来要复杂得多。在考虑通用语言时,必须定义语言的两个方面,如图1.14所示。

图1.14 通用语言的各个方面

图1.14显示干系人使用一种 语言 进行沟通,因此该 语言 必须尽可能清晰明确。这种 语言 涉及两个方面: 口语 领域特定语言

需要考虑的第一个方面是 口语 ,它提供了一种基本的沟通机制。例如,对于用英语编写的书,为了理解书中的信息,读者必须会说英语。显然,口语种类远不止英语,但本书英文版(或系统)选择英语作为约定的 口语 。选择英语作为口语,也不会因为每个读这本书的人都会说英语就不存在歧义或误解。这就需要考虑语言的第二个方面,即 领域特定语言

领域特定语言 定义了将用于给定应用或领域的特定概念和术语。例如,单词“function”是一个通用的英语单词,但根据干系人使用的场景,它实际上会呈现不同的含义。

定义 领域特定语言 至关重要,因为它是系统工程成功的基石。本章定义了贯穿全书的系统工程 领域特定语言 。本章中的每张图都有助于定义本书中用于系统工程的一整套概念和相关术语。

2.系统工程语言

当涉及可用于系统工程的语言时,必须定义 口语 领域特定语言

口语 而言,有几种整个行业都在使用的标准语言可供采用,例如统一建模语言、系统建模语言和业务流程建模表示法等。就本书而言,所选择的 口语 系统建模语言 (Systems Modeling Language,SysML),将在第2章中进行更详细的讨论。

领域特定语言 而言,它对于每个组织来说都是不同的。本章定义了一种贯穿全书的通用系统工程 领域特定语言 。读者可以以此为基础来定制适合自己特定业务的语言。

成功的系统工程必须定义这两种语言。

接下来将讨论与理解相关的问题,它与复杂性和沟通一起构成了系统工程的三大弊端。

1.3.3 理解

所有干系人都必须共享对系统的理解。但是由于具有不同的背景和知识,不同的干系人会以不同的方式感知系统,这会产生潜在的大问题。这个问题可以通过“上下文”这一概念来解决。为了理解上下文的概念,现考虑一组常见的干系人,如图1.15所示。

图1.15 常见的干系人

图1.15展示了与汽车系统相关联的常见干系人。

干系人分为三类,如下所示:

❍客户 ,代表最终从正在开发的系统中受益的一组角色。图1.15显示的客户有两种类型:一种是用户,例如车辆的司机;另一种是运营人员,例如车辆的保养人员。

❍外部角色 ,代表与系统有关的一组角色,这些角色将以某种方式限制系统。图1.15展示了外部干系人的一种类型,即标准。

❍供应商 ,代表与研发和交付系统有关的一组角色,例如工程师。

干系人的识别是系统工程的一个重要部分。要理解和管理所有干系人的期望,而不仅仅是系统的最终用户。

在考虑完整的干系人集合时,应牢记不同的干系人可能会针对同一系统感知到不同的需求。或者与所有系统一样,他们可能会根据自己的观点来看待相同的需求并以不同的方式对其进行解释。当从不同的角度以不同的方式来解释某件事物时,这就被称为“上下文”。

上下文的概念是表示系统最重要的方面之一,一个成功的系统必须要能够理解上下文,但它却经常被忽视或完全忽略。

为了解释“上下文”这一关键概念,假设有一个与系统相关的需求,即系统必须是安全的。乍一看,这似乎是一种直截了当的说明,几乎没有模棱两可的余地。但是该说明的实际含义对于不同的干系人来说是不同的。例如,从 司机 的角度来看,这种说法可能会被诠释为汽车必须有安全带、安全气囊、辅助驾驶技术等;从 保养人员 的角度来看,这句话可能意味着鉴于传动系统的设计内容,在对车辆进行保养时,只要关闭电池就可以确保车辆所有部件不带电;从干系人 标准 的角度来看,可能存在多项安全内容,例如满足碰撞冲击的特定要求;从 工程师 的角度来看,该系统可能需要满足与车辆安全相关的许多场景。

这里的要点是,对于同一组需求有多种解释。为了管理所有干系人的期望,理解这些不同的观点或上下文是非常重要的。

既然已经讨论了系统工程的三大弊端,那么是时候考虑系统工程的实施了。

1.3.4 系统工程的实施

为了能成功地实施系统工程,必须考虑三个方面,如图1.16所示。

图1.16 系统工程经典口号:人员、流程和工具

图1.16显示了三个主要概念:人员、流程和工具。这些被称为系统工程口号(Systems Engineering Mantra)(Holt & Perry,2019)。

这三个概念非常重要,它们之间的关系能让人真正理解所传递的信息。重要的是, 人员 能够执行所有 流程 ,如果他们不能确保执行所有的流程,那么这些人所具备的能力就一文不值。此外,流程必须驱动 工具 的选择,而不是 工具 影响 流程

这些概念在图1.17中进行了扩展。

图1.17 人员、流程和工具的扩展

图1.17展示了图1.16引入的概念的扩展概念。通过依次考虑每个主要概念,我们可以完善最初的描述。

❍人员 ,关注的是人员的技能(competence),而不是人员本身的存在。人员必须具备适当的知识、技能和态度,才能有效地、高效地完成手头的任务。不要混淆 人员 和干系人的概念。正如前面所讨论的, 人员 可以担任一个或多个干系人角色,与这些角色相关联的技能可以被认为是个人所持有的技能。

❍流程 ,这是被遵循的整体方法,而不仅仅是一组单独的流程。这里的术语“流程”可以被认为是组织或组织单元执行特定任务的整体能力。

❍工具 ,一组软件、资源,或者任何旨在让人们以更有效或更高效的方式执行其流程的东西。此类工具可能包括软件设计和建模工具、管理工具、笔和纸、标准、符号等。

总而言之,要在人员、流程和工具之间取得平衡,才能实现成功的系统工程。 DdcrKhT+2BJzGk1jlp/N0qFr3FmTSgxSb4GQoMA14y5d2dzsPzqgumUlpTD1XMOg

点击中间区域
呼出菜单
上一章
目录
下一章
×