0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

形式化方法的工业应用:航空领域

上海控安 来源:上海控安 作者:上海控安 2023-08-21 15:45 次阅读

作者 |徐奕龙飞上海控安可信软件创新研究院系统建模组

版块 |鉴源论坛 · 观模

社群 |添加微信号TICPShanghai”加入“上海控安51fusa安全社区”

01

摘要

本文主要探讨了形式化方法在航空领域中的工业应用。航空领域作为安全攸关领域,其机载系统软件的开发有着高度复杂和严格的安全标准要求,以确保其安全可靠性。但是由于机载系统软件功能的增加,软件系统规模增大,系统整体更为复杂,使得传统方法难以满足飞行控制系统的验证需求。为解决航空领域的痛点,形式化方法成为一种有效的解决方案。形式化方法是一种基于数学和形式逻辑的工程方法,可用于系统设计、验证和分析。形式化方法的应用有助于确保飞行安全性、提高飞机性能和优化飞行控制系统。

02

航空领域的应用背景

在航空领域,飞行控制系统软件是核心的组成部分,对整个航空器起着决定性的作用,其安全性和可靠性对航空器的正常运行有着至关重要的作用,一旦软件出现故障,其造成的损失将会十分巨大。然而由于现代飞行控制系统软件非常复杂,涉及到软件和硬件的协同交互,传统的测试方法不仅需要耗费大量的人力资源和时间成本,还难以做到覆盖所有可能的情况,从而彻底规避安全隐患。这就使得在系统软件开发的流程中存在着需求或系统设计出现问题的风险。历史上,由于此类问题而造成的重大损失的灾难事故触目惊心。2007年,美国空军战斗机F-22的飞控软件设计时未考虑时差因素, 在跨越国际日期变更线时飞行员变更系统时间致使飞控系统锁死;2018年和2019年两架飞机由于飞行控制软件中反失速系统机动特性增强系统(MCAS)的缺陷发生了坠机事故导致总共三百余人死亡。

人类航空史上血泪的教训促成了适航审定标准的不断完善。为了更好地保障机载软件的安全性和正确性,航空领域提出了DO-333标准。DO-333标准由RTCA专委会(航空无线电技术委员会)和EUROCAE工作组(欧洲民用航空设备组织)撰写,并已于2011年12月13日由RTCA程序管理委员会(PMC)审定通过,名为"Formal Methods Supplement to DO-178C and DO-278A"。其中DO-178C是航空领域的飞行器软件开发标准,而DO-278A是相关地面系统软件的开发标准。而DO-333是对两者的补充说明,旨在引导航空软件开发团队在软件开发生命周期中应用形式化方法。DO-333中对原有DO-178C中给出的目标、活动、解释性文字以及软件生命周期过程数据进行某些改变与补充。这些更改和补充包括了若干用形式化语言描述的文档,以及建立在这些形式化文档基础之上的形式化验证佐证材料。为此,DO-333专门作出了针对性的增补和调整。DO-333适航标准中将软件开发过程定义为四个环节,分别是软件需求过程,软件设计过程,软件编码过程和软件继承过程。并对各个软件开发过程提出了验证目标,并解释了如何应用形式化方法于软件开发的四个环节之中,阐述了其优劣所在。该标准的提出说明了在安全攸关的航空领域,形式化方法在工程上提升机载软件安全可靠性的能力得到了一定的认可,从而也引发了如何将其更好地应用于机载软件的研发和认证过程之中的探讨。

03

形式化方法的解决方案

形式化方法是建立在严格的数学基础上的针对数字化系统进行规格说明撰写、软件开发、软件验证的技术。形式化的数学基础主要包括形式逻辑、离散数学和机器可识别语言。形式化方法主要研究理念是工程人员希望通过合理的理论和工程方法特别是数学分析手段对软件设计的健壮性和正确性进行严格的分析,找出人力审查难以发掘的软件缺陷,满足人们对高质量软件可信的期望。形式化方法的主要特点是明确、无二义性的描述软件系统的需求,通过软件的形式化表达为软件的一致性、准确性提供严格验证。

形式化方法通常包含两类关键技术,分别是形式化建模和形式化分析。其中两者各自具有多种类型的实现技术。在形式化建模中,可以通过多种方法生成一个由无歧义的数学语法和语义定义的形式化模型,譬如说有形式化的图形模型,这里图的各个组件和他们之间的连接都有着严格的数学定义的语法和语义,比如SCADE工具中的状态机就是典型的形式化图形建模的案例。还有使用形式化建模语言描述的模型,例如Z语言、B方法、BIP。形式化分析方法可以归为3类:1)演绎方法(deductive),如定理证明,2)模型检查,3)抽象解释。

1)演绎方法:涉及数学推理,即通过数学方法证明形式模型性质。性质的数学证明为软件性质的正确性提供了严格证据。数学证明通常借助自动或交互式的定理证明系统。在一些情况下,即使借助定理证明系统,构建数学证明也会很困难,甚至无法构建。不过,一旦证明能构建成功,自动检查证明的正确性将会变得很容易。

2)模型检查:探索形式模型所有可能行为,从而判定指定性质是否成立。当性质不成立,模型检查算法自动生成一个反例,以确定该性质在何处不成立以及不成立的原因。在一些情况下,模型检查工具可能无法判定给定的性质是否成立。

3)抽象解释:是一种构建程序语言语义的保守表示(conservative)的理论(保守表示以确保可靠性)。实践中,该技术针对无限状态系统设计基于程序语义的分析算法,能静态、自动及可靠地分析系统动态性质。借助相应的工具 ,抽象解释为具体的性质产生形式模型。该技术可以看作部分地执行计算机程序,在无需实际操作所有计算任务的同时,确定程序间的重要影响关系(如控制流结构,信息流,堆栈大小,时钟周期的数目等)。

04

应用案例

本应用案例来源于" Formal methods case studies for DO-333.",该资料分享了形式化方法在航空航天领域中的案例研究。为了检查系统规约是否满足特定性质和要求,应用模型检查来验证飞行导引系统(FGS)单侧模式逻辑的正确性。模式逻辑是飞行控制系统中的关键组成部分,它决定了飞机的导航和自动驾驶行为,其正确性对于确保飞行安全至关重要。在FGS中,模式逻辑相对复杂,但输入和输出仅有布尔值组成,这使得它适合使用模型检查进行形式化验证。

4.1 模式逻辑概述

模式指的是系统行为的互斥集合,对于FGS系统而言,模式对应于单个(或一组)FGS行为的系统配置,更贴切地说,FGS的模式就是其飞行控制法则的抽象,其模式逻辑主要包括三种不同类型的模式。

1. 非布防模式(Non-Arming Mode):该模式只有CLEARED和SELECTED两个实际状态。如果由飞行机组手动请求或由FMS等子系统自动请求,模式被认为是SELECTED状态,否则被认为是CLEARED状态。

wKgZomTjEJaAJ4CSAAAg2HKVT-0844.png

图2 Non-Arming Mode

2. 布防模式(Arming Mode):该模式有三个状态:ARMED、ACTIVE和SELECTED。ARMED和ACTIVE是SELECTED状态的子状态,即当模式处于ARMED或ACTIVE状态时,它同时也处于SELECTED状态。

wKgZomTjELaAeYwwAABQYFjMHoM366.png

图3 Arming Mode

3. 捕获/跟踪模式(Capture/Track Mode):该模式相比前一模式在ACTIVE中区分了捕获和跟踪状态。CAPTURE和TRACK状态都是ACTIVE状态的子状态,并且模式的飞行控制法则在这两种状态下都处于ACTIVE状态,即为飞行导引和自动驾驶系统生成指令。

wKgZomTjEP6AL7UEAABuVW7zO68854.png

图4 Capture/Track Mode

4.2 模型检查案例目标

本案例的目标是对FGS单侧的模式逻辑进行形式化验证,以确保它满足规约中的要求和飞行控制法则。使用模型检查来执行与软件设计过程的输出相关的验证活动,重点关注 DO-178C 中表 A-4 和 DO-333 中表 FM.A-4 的目标。这些验证活动的目的是检测软件设计过程中可能引入的任何错误(DO-178C 第 5.2 节)。具体来说,本案例将验证FGS一侧模式逻辑的低层软件需求,并表明软件架构和低层软件需求符合高层软件需求。其详细验证目标如表1所示。

wKgaomTjEYSAH35LAASP4b4XAwM035.png

表1 软件验证目标

4.3 模型检查工具和方法

在本案例中,使用了两种主要的模型检查器:隐式状态BDD模型检查器(如NuSMV)和SMT模型检查器(如Kind)。这两种模型检查器分别适用于不同类型的规约和验证需求。

验证流程:

1. 首先,将FGS的模式逻辑描述转化为模型检查器可接受的形式,例如Lustre形式的规范语言。

2. 确定并规定模式逻辑的各种状态和状态转换。

3. 编写规约和性质规范,涵盖所有目标验证要求。

4. 使用模型检查器对规约和性质进行验证,以查找可能的错误和反例。

验证结果:

通过模型检查器的验证,得到模式逻辑是否满足规约和飞行控制法则的结果。如果模型检查器找到了错误或反例,开发团队可以进行修正,重新验证,直到所有目标都得到满足。最终使用Kind模型检查器验证FGS模型的模态逻辑时,发现了共十六个错误。

模型检查发现的错误示例:

下面我们详细阐述如何使用模型检查工具发现错误的过程,图5是一个非常简单但是常见的命名错误,在退出ACTIVE模式时,输出变量LGA_Active(正确情况应该是VGA_Active)被设置为false。通过Kind模型检查器检测到了这个错误。Kind模型检查器产生的反例如图6所示。

wKgaomTjEnCAWHBeAACJWAdXBO4103.png

图5 模型检查得到的错误示例

wKgZomTjFC2AGlpHAAMMr0pHEyo042.png

图6 模型检查得到的反例

该反例共有3个步长,显示了每一步的相关输入和输出的值。未发生变化的值用灰色文本显示。灰色背景标出了最重要的值,以帮助读者理解反例。在初始步骤中,ROLL_Active模式如预期一样处于活动状态。在第二步中,按下GA开关,激活了LGA模式。这同时激活了VGA模式。在第三步中,VS_Pitch_Wheel_Rotated激活,清除VGA模式,即从ACTIVE转变为CLEARED状态,但是,实际上在第三步中并没有清除LGA模式,但由于命名错误,输出变量LGA_Active却被错误地设置为false。

综上,形式化方法在航空领域已经开始受到越来越多的重视,并逐渐进入相关评审流程中。通过工业界实际的应用,形式化方法展现出了其在提高机载软件系统安全性和可靠性方面的价值。通过形式化方法,我们可以在软件开发生命周期的不同阶段,精确地定义系统规范和性质,并自动化地验证系统的正确性。形式化方法的发展将持续推动航空领域软件开发的创新和进步,为飞行安全提供更加可靠的保障。通过不断深入研究和实践,形式化方法将在航空领域继续发挥重要作用,为飞行控制系统的安全性和可靠性提供持续支持。未来,我们将继续介绍更多形式化方法的技术细节和更多的应用案例。

主要参考文献:

1. RTCA DO-333, Formal Methods Supplement to DO-178C and DO-278A (December 2011)

2. Cofer D, Miller S P. Formal methods case studies for DO-333[R]. 2014.

3. Platzer A, Quesel J D. European Train Control System: A case study in formal verification[C]//International Conference on Formal Engineering Methods. Berlin, Heidelberg: Springer Berlin Heidelberg, 2009: 246-265.

4. Clarke E M. Model checking[C]//Foundations of Software Technology and Theoretical Computer Science: 17th Conference Kharagpur, India, December 18–20, 1997 Proceedings 17. Springer Berlin Heidelberg, 1997: 54-56.

5. Cousot P, Cousot R. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints[C]//Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. 1977: 238-252.

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 航空
    +关注

    关注

    2

    文章

    755

    浏览量

    27055
  • LGA
    LGA
    +关注

    关注

    0

    文章

    23

    浏览量

    16204
  • FGS
    FGS
    +关注

    关注

    0

    文章

    4

    浏览量

    6099
收藏 人收藏

    评论

    相关推荐

    形式化方法的工程化

    形式化工程方法,是以软件形式化方法理论为基础,以系统化的工程方法引导工业界工程人员构建高质量的软
    的头像 发表于 03-24 11:01 1179次阅读
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>的工程化

    ACRN 之InterruptWindow功能正确性形式化验证

    重磅推荐|ACRN 之InterruptWindow功能正确性形式化验证
    发表于 06-18 16:04

    形式化方法和测试技术及其在安全中的应用

    本文回顾和讨论了形式化方法和测试技术,以及形式规格说明可以用于测试用例生成、测试顺序确定的途径;并提出了将形式化方法和测试技术应用于安全保密
    发表于 06-11 10:49 25次下载

    基于Petri网的安全协议形式化分析

    本文提出了一种基于 Petri网 的安全协议形式化描述和安全性验证的方法. 该方法的特点是,利用逆向状态分析判定协议运行过程中可能出现的不安全状态,利用Petri 网的状态可达性分析判
    发表于 06-20 15:37 29次下载
    基于Petri网的安全协议<b class='flag-5'>形式化</b>分析

    一种服务网络拓扑结构的形式化描述方法_陈鹏

    一种服务网络拓扑结构的形式化描述方法_陈鹏
    发表于 03-14 17:10 2次下载

    一种形式化的学习过程建模_钟伟平

    一种形式化的学习过程建模_钟伟平
    发表于 03-19 11:45 0次下载

    Web服务系统的形式化的语义模型

    针对Web服务的组合与验证问题,在范畴理论描述框架的基础上,引入进程代数描述服务组件的外部行为,为Web服务系统的架构描述建立了一种形式化的语义模型。Web服务作为范畴理论中的对象节点,服务间的交互
    发表于 01-09 15:14 0次下载
    Web服务系统的<b class='flag-5'>形式化</b>的语义模型

    软件形式化开发的水波优化方法

    形式化方法有助于从根本上提高软件系统的质量与可靠性,但其开发成本往往过于高昂.一种折衷的办法是在软件系统中选取关键性部件进行形式化开发,但目前尚无非常有效的定量选择方法.将软件系统中的
    发表于 01-15 15:47 0次下载

    基于几何代数的高阶逻辑形式化建模

    计算和建模分析的传统方法,如数值计算方法和符号方法等,都存在计算不精确或者不完备等问题,高阶逻辑定理证明是验证系统正确的一种严密的形式化方法
    发表于 01-16 18:09 0次下载

    面向航天嵌入式的形式化建模

    航天嵌入式软件是航天型号任务成败的关键之一.航天嵌入式软件是一种周期性、多模式的软件.软件的每个模式表示系统处于一定的状态,并进行相应的复杂计算.因此,提出了一种名为SPARDL的形式化建模方法
    发表于 02-06 16:25 1次下载

    VaaS平台已支持区块链平台智能合约的形式化验证

    VaaS形式化验证平台,采用了多种形式化验证方法,具有验证效率高、自动化程度高、人工参与度低、易于使用、支持多个合约开发语言、可支持大容量区块链底层平台的形式化验证等优点。
    发表于 12-14 10:18 981次阅读

    形式化方法背后的动因和关键技术及行业应用

    系列简介:形式化方法在计算机和软件工程学科中作为一个学科分支,正在越来越多地进入工业界诸多实践领域。以DO-333适航标准为代表的工业标准,
    的头像 发表于 06-10 10:49 930次阅读
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>背后的动因和关键技术及行业应用

    形式化方法基本原理初探

    形式化方法是基于严格的数学基础,通过采用数学逻辑证明来对计算机软硬件系统进行建模、规约、分析、推理和验证,是用于保证计算机软硬件系统正确性以及安全性的一种重要方法
    的头像 发表于 01-30 16:42 715次阅读
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>基本原理初探

    从小众走向普及,形式化验证对系统级芯片开发有多重要?

    形式化验证作为一种全新的验证方法,近年来在芯片开发中快速发展,正逐渐取代传统的仿真方法。 虽然仿真在系统级验证方面仍然发挥着重要的作用,但对于单元级的signoff而言,形式化验证已经
    的头像 发表于 04-21 19:35 436次阅读
    从小众走向普及,<b class='flag-5'>形式化</b>验证对系统级芯片开发有多重要?

    形式化方法工业应用:轨交领域

    文将聚焦于轨交领域,从领域专用的需求撰写与分析工具Prema入手,介绍形式化方法工业中的实际应用。
    的头像 发表于 08-08 15:20 310次阅读
    <b class='flag-5'>形式化</b><b class='flag-5'>方法</b>的<b class='flag-5'>工业</b>应用:轨交<b class='flag-5'>领域</b>