两架波音 737 Max 飞机不幸坠毁,导致全球范围内的飞机停飞,事故原因也引起了广泛调查。飞机设计(包括其软件)的飞行安全性受到质疑,主要集中在被称为机动特性增强系统 (MCAS) 的软件组件上。在本文中,我们针对故障和缺陷可能进入飞机人机系统 1 的方式的讨论提出了一些初步考虑。鉴于软件开发的速度,软件工程安全性尤其是一个快速变化的主题。它始于对故障模式的非正式定义 [2],并主要通过讨论特定技术及其安全属性而得到扩展。最近,有关事件“事后分析”和系统学习的方法已经开发出来 [3–5]。更一般地说,系统安全(重点是飞行安全)历史悠久,文献丰富(例如,参见 [6–9]),并且与系统稳定性的更广泛概念相关 [1,10,11],但分析工具主要是非正式和启发式的,因此有相当大的空间用于更受约束的分析推理语言。引入承诺理论的某些方面作为此类分析的工具是这项工作的目标之一。软件在当今几乎所有复杂系统中都发挥着作用。人们越来越多地关注“算法”——其中“算法”一词包含了关于系统在特定条件下应该如何反应的一系列设计决策。有人(也许很大胆,当然是非正式地)说算法“决定”系统在不同情况下做出的决策;但算法是可能路径的逻辑树——它们还可以利用实时收集的数据或通过学习技术从经验中收集的数据。在结论部分,我们将回到算法的概念。因此,确定性的建议夸大了算法的能力。我们真正能说的是,他们的承诺会以某种方式影响结果。最近关于使用机器学习的讨论,比如自动驾驶汽车 [12, 13],说明了对软件算法的依赖往往存在复杂性不匹配的情况。当出现重大故障时,某些系统组件(包括软件组件)可能会成为激烈的公开辩论的主题,这些辩论是在高度抽象的层次上进行的,因此远离技术现实。在本研究中,我们基于以下假设进行分析: