鉴源论坛丨民用飞机机载软件是如何表明适航符合性的

news/2024/5/19 15:44:20/文章来源:https://blog.csdn.net/TICPSH/article/details/127229621

作者 | 蔡喁 上海控安可信软件创新研究院副院长

版块 | 鉴源论坛 · 观擎

01

机载软件的基本特征

机载计算机在现代飞机各组成部分中占有举足轻重的位置,是现代航空电子系统的基础和核心,其研制、生产和应用水平已成为衡量飞机先进性的重要标志。机载计算机通常是飞机上各种计算机的总称,包括导航计算机、大气数据计算机、飞行控制计算机、任务计算机、雷达信号/数据处理机、显示控制处理机和通用综合处理机等。

机载计算机系统负责完成飞行的数据采集、信息处理和指挥控制任务。可以毫不夸张地说,现代飞机每一个动作的完成都离不开机载软件的支持,飞行员的每一个意图也必须依靠机载软件才能实现。同时,机载软件还有一个明显的发展趋势,那就是它所完成的功能将越来越多。以美国军用飞机的发展为例,第二代战斗机F-111的航电系统,其20%的功能是通过软件实现的;第三代战斗机F-16,这个比例达到40%;到最先进的第四代战斗机F-22中,航电系统功能中竟有80%是通过软件实现的。机载软件的规模呈超几何级数增长。如美国F-106战斗机的早期型号仅装备1台计算机,其作战飞行程序为4K,占据了计算机存储器容中的绝大部分;F-111D战斗机的作战飞行程序约51K;F-16战斗机早期型号(F-16A)的作战飞行程序为128K;70年代末舰载F/A-18战斗机的作战飞行程序则增加到约700K;F-22战斗机机载软件的规模已达到170多万条语句。F-35的代码量是F-22软件代码量的4倍多,达到了惊人的800万条语句。

安全性设计是软件设计的重要环节,尤其对于机载软件而言,它的输出会直接或间接地影响硬件的运行,其重要性不言而喻。但是,在进行安全性工作时却遇到许多实际的困难,诸如设计手段不规范、没有明确的验证方法和有效的评估数据、无法准确评估软件中错误的数量等。尽管如此,软件界还是形成了共识,即软件的质量更主要依靠过程(包括规范设计、严格管理等)来保障。

02

民用飞机机载软件适航标准及其符合性

2.1 适航管理

民用航空器的适航管理以保障民用航空器的安全性为目标,是政府适航当局在制定的各种最低产品安全标准的基础上,对民用航空器的设计、制造、使用和维修等环节进行科学统一的审查、鉴定、监督和管理。可相对分为两大类管理,一类是初始适航管理,另一类是持续适航管理。

适航管理的特点主要反映在以下几个方面,即权威性或法规性、国际性、完整性和统一性以及动态发展性。

2.2 适航技术和符合性方法

民用航空器产品的安全性实现需要安全性技术,这些安全性技术要求从属于适航要求才能达到在产品上的具体应用。民用航空器必须在产品生命周期内满足相应的适航标准和要求,以确保产品的适航性和安全性,其首要环节是产品的型号设计符合规定的适航标准。民用航空产品设计符合适航标准并取证的途径和方法是:

民用航空产品适航审定过程通常可理解为概念设计、要求确定、符合性计划制定、计划实施以及颁发型号合格证后等5个阶段。对局方从事适航审定的人员,在适航审定中的技术层面工作主要是适航标准要求确定、评估和批准包括验证试验大纲在内的技术文件和做出符合性判定。

因此,无论是民用航空器的适航管理活动还是产品开发活动,都存在确定的适航技术。通常意义上存在三类适航技术:

1)适航标准确定或安全性指标和要求确定的技术

事故及案例分析及安全特征提取、新颖独特设计安全(适航)设计要求、专项试验(如燃烧、坠撞)设计及参数或指标确定、机队运行数据收集与特征提取、新技术应用,特别是成熟、先进工业标准的引用或裁剪技术等;

2)满足适航标准或要求的工程设计技术

适航标准或适航要求的工程定义或工程需求定义设计技术、系统架构分析与设计技术、系统安全性分析技术、备份或冗余设计技术、在线故障诊断及容错设计技术、系统工程技术、结构设计技术、载荷设计技术、强度设计技术、颤振设计技术、系统生存环境(空间及区域)设计技术、隔离与保护设计技术、特殊风险分析与防范设计技术、维修与保障性设计技术、设计过程保证技术、硬件及软件设计技术、HMI(人机环境)设计技术、噪声抑制或控制设计技术等;

3)满足适航标准或要求的验证技术

系统安全性分析技术、各种平台(台架、模拟机、风洞及飞机)测试与试验技术、试验件和试验装置及试验环境设计技术、计算与分析技术(有限元、流体、运动轨迹、仿真)、工程检验技术等;

表1 适航符合性验证方法

03

机载软件的适航与RTCA DO-178C

3.1 软件的适航符合性标准

运输类飞机适航标准(CCAR 25、14 CFR part 25、CS 25)是民用飞机进行适航审定的基本依据。其中与机载软件密切相关的条目CCAR(14CFR/CS)25.1309规定了民用飞机必须满足的设备、系统与安装方面的安全性要求,其中包括:

1)凡航空器适航标准对其功能有要求的设备、系统及安装,其设计必须保证在各种可预期的运行条件下能完成预定功能;

2)飞机系统与有关不见的设计,在单独考虑以及与其它系统一同考虑的情况下,必须符合下列规定:

· 发生任何妨碍飞机继续安全飞行与着陆的失效状态的概率极小;

· 发生任何降低飞机能力或机组处理不利运行条件能力的其它失效状态的概率很小。

RTCA DO-178C就是为机载软件的表明符合性提供指导的一套标准,其目的是指导航空机载软件开发,并确保航空机载软件不仅满足飞机和机载系统对其功能和性能的要求,还要具备不同严苛等级的安全置信度。需要注意的是,DO-178C不是单独存在的,它和ARP 4754A、ARP 4761、DO-254一起构成了现代机载系统(尤其是高度综合和复杂系统)安全性设计与评估的一组指南材料。四个文件之间的关系如下图所示。

图1 系统-软硬件过程保证标准间的关系

其中,DO-178C对航空机载软件开发应该遵循的基本理念和规则从以下各个方面进行了说明和规定:

· 机载系统与机载软件之间的内在关系;

· 机载软件生命周期;

· 机载软件计划过程;

· 机载软件的开发过程;

· 机载软件的验证过程;

· 机载软件的构型管理过程;

· 机载软件质量保证过程;

· 适航认证联络过程;

· 软件生命周期数据记录;

· 其它考虑。

总之,软件层面的DO-178C研制过程包含了计划过程、开发过程、综合过程在内的三大类过程,对软件研制的严苛程度进行了规定。在减少引入错误和增强检出错误两个维度下,保持机载软件在不同安全性要求下的适航性。

在DO-178C中,针对每一个过程都涵盖了以下内容:

· 过程需要满足的目标;

· 过程需要产生的数据;

· 数据证明目标的满足;

从以上DO-178C的主要内容可以看出,DO-178C是面向过程和目标的。简单来说,DO-178C主要通过以下三种形式来指导机载软件开发者工作,其中包括:规定航空机载软件生命周期中各个过程的目标;规定达到这些目标的活动和工程实现考虑;规定确认这些目标已经实现的证据记录。DO-178C通过这三种形式的要求较全面地反映了航空机载软件工程的基本理念和规则,指导着当今国际航空机载设备开发商的工程开发。

通过以上提及的四个标准及提供的符合性证据,才能完整形成对于CCAR(14CFR/CS) 25.1309在飞机、系统、设备和软硬件不同层次上的证据链。

图2 软件生命周期过程之间的基本关系

3.2 失效状态和软件等级

为达到系统所需的安全性水平,标准首先对各类机载软件定义了软件等级(Software Level)。例如考虑如下两种机载软件情况:

1)飞机尾部厨房中用来控制煮咖啡器的软件失效;

结果:可能会使一些乘客恼怒,但是不会影响到机上乘客的安全。

2)在低可见度情况下用来控制飞机自主进近的软件程序失效;

结果:可能会导致机毁人亡。

显然,这两种软件不可能开发成同样等级,也无法以同样的严格程度来控制开发。需要针对具体情况,根据软件异常行为可能导致的飞机失效状态类别来定义软件的等级。

DO-178C中规定,软件等级应与软件失效可能导致的最严重的系统安全性影响程度相对应。也就是说软件等级是由其失效状态的类别来决定的,而软件失效状态的类别定义则与系统失效状态的类别定义完全相同。同时,软件失效状态的类别与系统失效状态的类别一样,都是通过系统的安全性评估来确定的,即在确定系统的审定基础时确定。表2给出了软件等级与失效状态类别的对应关系和简要说明。

表2 软件等级与失效状态之间的关系

软件等级由申请人和合格审定局方共同确定,且通常作为软件审定的基本前提,记录在相应的审定计划中。商讨确定软件等级的基本过程如图3所示。

图3 软件等级的确定过程

对于软件等级的确定问题需要注意以下几个问题:

1)无论系统怎样设计,系统安全性评估过程确定了一个特定系统的软件组件应有的软件等级。失效所造成的功能丧失和故障影响均要在软件等级确定中加以考虑处理。从系统功能出发,评估系统功能失效的影响等级,考虑是否可能由软件的错误导致这种失效,进行确定软件所造成的最大的系统失效为何种等级,从而确定软件自身的等级。

2)一个系统功能可能会被分配给一个或多个彼此相互分割的软件组件来执行,并行执行过程是指一个系统的功能要靠多个软件组件来实现,以至于多个软件组件的异常行为才会引起系统的失效。对于并行执行过程而言,至少要有一个重要或者关键的软件组件的软件等级由该系统的最严重失效状态类别来确定,其它软件组件的软件等级将由系统失去上述功能后的剩余失效状态类别来确定。

3)串行执行过程是指一个系统的功能要靠多个软件组件来共同实现,以至于任何软件组件的异常行为都将会引起系统的失效。对于串行执行过程而言,软件组件的软件等级都将由该系统的最严重失效状态类别来确定。

4)如果一个软件组件的异常行为导致了多个失效状态的发生,那么最严重失效状态类别就决定了该软件组件的软件等级。随着系统设计技术的演变,产生了各种架构策略,例如在DO-178C标准第2.4节中详细介绍,这些策略的使用可能会导致软件等级的修改。例如:

· 分区/隔离

如果使用分区/隔离技术,每个被隔离软件组件的软件等级将由该组件所导致的最严重失效状态来确定。如果分区/隔离保护由软件来实现,那么该软件的软件等级将与被隔离软件中的最高等级相同。

· 安全性监控

如果使用安全性监控技术,被监控功能的软件等级可以降低至丧失该功能后的对应等级。执行安全性监控功能的软件其软件等级则由被监控功能中的最严重失效状态来确定。

5)开发某一等级的软件并不意味着为软件分配失效率,因此软件等级以及基于软件等级的软件可靠率(Software Reliability Rate)就不能像硬件失效率那样在系统评估过程中加以应用。软件的错误并不呈现概率分布。

参考资料:

[1] 机载软件适航符合性教程, 2022, ISBN:9787313241344. 上海交通大学出版社.

[2] Software Considerations in Airborne Systems and Equipment Certification(DO-178C), RTCA, 2011.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_20713.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【面试题】Java基础 2

若你困于无风之地,我将为你奏响高空之歌 文章目录一、int 和 Integer 对象1. int 和 Integer 对象的区别2. 变量比较问题:二、反射1. 反射机制定义2. 反射的使用步骤3. 一个小栗子4. 反射的应用一、int 和 Integer 对象 1. int 和 Integer 对象的区别 …

css 特效实现方法

背景渐隐 通过 before 线性渐变遮盖掉一部分图片 视察滚动实现方式: 监听浏览器滚动事件改变各个层的top值 环形进度条 svg circlestroke-dasharray 环绕边框动画 四个单向运动的动画父框overflow: hidden;设置延迟可表现循环 一些旋转曲线的图形 inset背景扩…

一维无界的自由波动问题-达朗贝尔行波解

回顾 第一个例子 表示热能的扩散,在空间有不同的取值,随空间和时间而变化,左端是跟一个恒温为0的热源接触,我们表示为,这个叫恒温条件。右端我们跟一个绝热的材料接触,傅里叶发现了热传导规律,K叫做热传导…

Java学习笔记 --- 面向对象之多态

一、基本介绍 方法或对象具有多种形态,是面向对象的三大特征,多态是建立在封装和继承之上的 二、多态的具体体现 1、方法的多态: 重写和重载就体现多态 案例演示: package com.javase.poly_;public class PloyMethod {publi…

最新案例 | 昇思MindSpore携手信大网御推出中原AI反诈骗创新解决方案,为全民反诈筑牢防火墙

近日,河南信大网御科技有限公司的中原人工智能反诈骗创新解决方案与华为Atlas 800训练服务器和全场景AI框架昇思MindSpore完成兼容性测试。该方案基于昇腾AI基础软硬件平台,能够在短时间内对涉诈网址/APP进行识别,识别准确率高达99%。 据2021…

嵌入式开发为什么用C语言

有了解过嵌入式开发的人都会想要多去了解一些嵌入式方面的信息,那么既然是嵌入式开发肯定是要你会代码的,至于这些可能你还不是很了解,下面可以一起来了解下嵌入式开发为什么用C语言吧。 点击获取1V1嵌入式学习规划,现在还送100G精…

牛客网刷题-两个队列实现栈

✅作者简介:嵌入式入坑者,与大家一起加油,希望文章能够帮助各位!!!! 📃个人主页:rivencode的个人主页 🔥系列专栏:《牛客网刷题》 💬推…

字节跳动测试岗面试挂在2面,我复盘总结了失败原因,决定再战一次

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,字节的游戏专场又是最早开始的,就投递了&#xf…

Chain of Responsibility(责任链模式)

责任链模式一、概述二、结构三、适用场景四、优缺点五、实例一、概述 描述:如组长不能处理的金额,需要向经理请求,经理不能请求的需要向老板请求,这样就现成了一条链,每个级别都能处理这金额。而不是直接组长向老板请…

LeetCode括号的分数(三种解法)

LeetCode括号的分数题目描述方法一:栈方法稍微优化方法二:递归方法三:计算每一部分的贡献率分析原因结语题目描述 这道题的题意还是比较好理解的,一个 () 就是一分,外层再套有括号则分数翻倍。 …

【genius_platform软件平台开发】第七十四讲:IAP在线升级OTA原理

1. BootLoader知识 1.1 概述及其作用 BootLoader可以理解成是引导程序, 它的作用是启动正式的App应用程序.。换言之,BootLoader是一个程序, App也是一个程序, BootLoader程序是用于启动App程序的. 2. IAP知识 2.1 概述 IAP(In-Application Programming&#xf…

python与Electron联合编程记录之六(Electron调试)

Pycharm调试Electron 程序的编写过程离不开调试,在刚开始编写Electron程序的时候我不懂怎么调试主进程,只会通过Chrome的Devtools调试渲染进程,所以程序编写过程非常苦恼。后来决定研究下怎么调试主进程,我使用的是Pycharm&#x…

WebDAV之葫芦儿·派盘 + Evermusic

Evermusic-iPhone或iPad的音乐播放器和下载器。音频均衡器,低音增强器,ID3标签编辑器,播放列表管理器。 支持最流行的音频格式:MP3,AAC,M4A,WAV,AIFF,M4R。有了这个程序,您可以创建自己的音乐流媒体服务。只需将您的音乐库移至云服务,然后直接从那里收听音乐。您现…

(附源码)计算机毕业设计SSM在线考试系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

正则量词 属性方法 使用技巧

n {1,正无穷} \w 0-9A-z_ var reg /\w/g;var str abcdefg;正则匹配的两个原则 1.不会回头 匹配成功的就不会在匹配 2.贪婪模式 能匹配多就不会匹配少 n* {0,正无穷} \w 0-9A-z_ var reg /\w*/g;var str abcdefg;\d 0-9 var reg /\d*/g;var str abcdefg;## n&#xff1…

gorm中的关联操作详解

一对一 belong to 属于:可以理解为舔狗认为自己属于女神,而女神都不知道舔狗的存在 type Girl struct { Id int Name string } type Dog struct { Id int Name string GirlId int Girl Girl } 迁移 schema db.AutoMigrate(&Dog{}) //此时会将…

Linux从入门到入土②(系统管理)

文章目录系统管理Linux 中的进程和服务Service服务管理(CentOS 6 版本-了解)基本语法使用systemctl服务管理(CentOS 7 版本-重点掌握)基本语法使用chkconfig 设置后台服务的自启配置(CentOS 6 版本)基本语法…

mysql 关联查询连接条件

一、内连接 关键字:inner join on 语句:select * from a_table a inner join b_table b on a.a_id b.b_id; 说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)…

【数据结构】交换排序—冒泡排序、快速排序

目录 一、什么是交换排序? 二、冒泡排序 三、快速排序 💟 创作不易,不妨点赞💚评论❤️收藏💙一下 一、什么是交换排序? 1.交换排序的基本思想是两两比较待排序记录的关键字,若两个记录的次…

python文件操作

今日内容概要文件操作 利用python代码的编写来读写文件1.文件的概念 2.文件的操作方式 3.文件读写模式 4.文件操作模式 5.文件诸多方法 6.文件内容修改 7.文件光标移动 文件操作 1.文件的概念就是操作系统暴露给用户操作硬盘的快捷方式eg:双击一个文件,其实是从硬盘将数据加载…