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

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

3天内不再提示

机载软件的高保证性和可重用性

星星科技指导员 来源:嵌入式计算设计 作者:BENJAMIN BROSGOL 2022-11-09 15:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

DO-178C和FACE(未来机载能力环境)方法形成了一个自然的结合,使开发人员能够结合军事和商业领域的机载软件生产的最佳实践。通过根据 DO-178C 及其补充文件中提供的指南开发和验证软件组件,FACE 组件提供商可以实现其 FACE 可移植性目标,同时实现高 DAL [设计保证级别] 可靠性和安全性。

FACE [未来机载能力环境] 方法是一种政府-行业软件标准和商业战略,用于获取负担得起的软件系统,旨在促进全球国防计划中便携式功能的创新和快速集成,从而降低系统生命周期成本。但是,FACE技术标准并未直接解决质量或适用性问题。特别是,尽管FACE技术标准定义了与保证相关的语言子集(“安全功能集”),但软件组件遵守这些子集之一并不一定意味着达到了相关的保证水平。在军事背景下证明这种保证涉及遵循MIL-HDBK-516C(适航认证标准)或MIL-STD-882E(安全实践)等标准的指导。

就这些标准而言,它们并不完全关注软件问题,也没有解决现代技术(如基于模型的工程、面向对象编程和形式化方法)提供的挑战(或机遇)。FACE组件开发人员可以利用的一种方法可以帮助实现相关的保证水平,方法是遵循RTCA DO-178C标准(及其补充)中针对商用机载系统所体现的原则。这些标准以软件为重点,涵盖现代技术,识别潜在问题及其解决方案。即使没有进行DO-178C的正式认证,这些标准也可以帮助开发人员满足最苛刻的可靠性和安全性保证要求,同时通过重复使用FACE应用程序组件实现成本节约。当使用编程语言技术(如 Ada 和 SPARK)时,这些优势会得到放大,这些技术最能支持高保证系统的开发和验证。

人脸技术标准

FACE技术标准是在The Open Group FACE联盟的支持下制定的开放标准,当前版本是3.0版;几个早期版本(2.0、2.1、2.1.1)也在使用中,并且受支持。FACE 技术标准定义了一个由五个段(图 1)和数据架构组成的参考架构:

操作系统段 (OSS) 为其他段提供软件基础,包括分区、进程/线程管理和内存管理等服务。

输入/输出服务段 (IOSS) 定义从 PSSS 到平台 IO 设备的接口

特定于平台的服务段(PSSS)定义了从PCS到IOSS的接口,例如图形支持。

传输服务段 (TSS) 定义 FACE 组件之间的通信接口

便携式组件段 (PCS) 提供应用程序功能,并通过仅使用其他段中定义的接口来实现可移植性。

图1|FACE技术标准定义了一个由五个段和一个数据架构组成的参考架构。

450-5e6a6f93bb52a-Adacore-Figure_1.png.jpg

FACE 参考架构的基础是 OSS,它通过 ARINC 653 和 POSIX API [应用程序编程

接口] 公开标准接口。编程语言的运行时库通常也是 OSS 的一部分,尽管它们不是通过 API 调用(可能无法在不同的编译器实现中移植)而是通过源语言语法调用的。

由于符合 FACE 标准的组件可以部署在具有不同安全和/或安保要求的上下文中,因此 FACE 技术标准为 OSS 接口定义了几个配置文件:

通用 – 对于不需要高级别保证的组件:不保证实时确定性,可选时间分区,需要空间分区。

安全 – 对于需要安全保证的组件:实时确定性,需要时间/空间分区。子配置文件安全基础和安全扩展反映了允许的 API。

安全性 – 对于需要安全和安保保证的组件:实时确定性,需要时间/空间分区。

FACE组件可以通过语言语法实现运行时功能,而不是在ARINC 653或POSIX API上显式调用,因此FACE技术标准定义了类似于OSS配置文件的语言限制(“功能集”)。为 C、C++、Ada 和 Java 定义了通用、安全扩展、安全基础和安全功能集。(FACE技术标准版3.0定义了Ada 95的安全和安保功能集;版本 3.1 为 Ada 2012 添加了这些集。

应用 DO-178C 原则

虽然DO-178C及其补充品是为应用于商业机载系统而开发的,但这些标准不一定是特定于军用或商业航空的,并且可以用于其他安全关键领域。该指南基本上涉及三个主要目标:

可靠性 – 系统执行其应执行的操作(无故障)

安全 – 系统不做它不应该做的事情(没有危险)

良好的软件工程实践 – 配置管理、质量保证等

该标准没有规定具体的开发流程、危害评估方法或编程语言/工具,而是定义了目标,当满意时,可以确信软件满足这些目标。事实上,大多数目标都与验证过程有关:人工审查、自动分析和基于需求的测试,以适当的信心表明每个生命周期过程的输出相对于其输入是正确的。置信度(以及实现置信度所需的努力)取决于软件的设计保证级别 (DAL)。

软件组件的正式 DO-178C 认证可能很昂贵,尤其是在更高的 DAL 上。然而,在需要这种认证的商业航空领域之外,DO-178C可以更普遍地被视为生产安全关键系统的“最佳实践”规范。从这个角度来看,该指南与FACE技术标准的要求是正交的,并且是一致的。通过采用和/或调整基于软件DAL的DO-178C指南,FACE应用程序开发人员 - 更具体地说,便携式组件部门的软件开发人员 - 可以在不进行正式认证的情况下获得DO-178C提供的大部分好处。

图2|DO-178C及其补充剂是为机载系统和其他安全关键领域而开发的。

450-5e6a6fbd550ff-Adacore-Figure+1.jpg.jpg

编程语言技术

DO-178C 的“软件生命周期环境规划”部分抓住了错误预防的本质:

。..选择限制引入错误机会的需求开发和设计方法、工具和编程语言,以及确保检测到引入错误的验证方法。

由于早期错误检测是降低开发和验证成本的关键,因此 FACE 应用程序开发人员需要仔细考虑使用哪种语言和工具。在具有 FACE 技术标准中定义的功能集的语言中,Ada 在编译时和运行时都强制执行最广泛的检查。Ada的形式可分析的SPARK子集更进一步,静态检测大量错误(包括不正确的信息流和缓冲区溢出),而不会产生大量的“误报”。

语言和 API 限制

DO-178C 制导对 FACE 组件开发的适用性在 FACE 功能集中得到了证明。尽管通用集可能适用于低 DAL 的软件,但 DAL C 到 A 的组件可能需要限制为简单的语言子集(安全扩展、安全基础或安全),以确保确定性执行和简单的运行时支持。确定性和简单性的要求既适用于应用程序代码本身,也适用于与应用程序隐式链接的任何运行时库(由 RTOS 或编译器供应商提供)。

例如,FACE 技术标准版 3.0 中 Ada 95 的安全扩展功能集禁止异步控制转移、动态存储释放和许多预定义的标准库;它还将并发(任务)支持限制为 Ravenscar 配置文件中定义的构造。安全基础和安全功能集进一步限制了运行时功能,将异常支持限制为“最后机会”处理程序,并禁止动态分配。遵守功能集限制(或为操作系统段配置文件定义的 POSIX 和 ARINC 653 API)有助于简化安全关键型软件的验证,同时满足 FACE 要求。

合格、值得信赖的工具

使用软件工具自动化、减少或消除活动可以降低成本并防止错误,但前提是该工具值得信赖。在DO-178C的说法中,该工具必须在适当的级别进行鉴定。DO-178C 根据工具异常的影响和软件组件的 DAL 定义了五个工具资格级别,TQL-5(最低)到 TQL-1(最高)。无论 DAL 如何,影响仅限于无法检测到错误的工具都需要根据 TQL-5 的要求进行限定。在另一个极端,输出是 DAL A 机载软件一部分的工具必须在 TQL-1 上合格。(由于工具中的异常可能会导致可执行文件中的错误代码,因此在没有此类异常的情况下需要很高的置信度。各种 TQL 的具体要求在补充 DO-178C 的 DO-330 工具资格考虑标准中定义。

符合相关 TQL 的工具可以信任用于 FACE 组件开发或验证;资格证明可以证明依赖该工具是合理的,而无需手动验证工具的输出。例如,DO-178C 的目标之一是“源代码符合标准”,对于安全关键型 FACE 组件,相关标准将是相关的功能集定义(安全扩展、安全基础、安保),可能通过项目特定的限制进行增强。检查源代码是否保留在生成的子集中的合格静态分析工具可以减少验证工作。

源代码的准确性和一致性

DO-178C 中的关键验证目标之一涉及源代码的审查和分析:

准确性和一致性。目的是确定源代码的正确性和一致性,包括堆栈使用情况、内存使用情况、定点算术溢出和解析、资源争用和限制、最坏情况执行时间、异常处理、未初始化变量的使用、缓存管理、未使用的变量以及由于任务或中断冲突而导致的数据损坏。编译器(包括其选项)、链接器(包括其选项)和某些硬件功能可能会对最坏情况的执行计时产生影响,应评估这种影响。

FACE组件开发人员需要警惕这些问题,并认识到选择合适的编程语言和工具的重要性。例如,在运行时在 Ada 中检测到整数和定点溢出,并且使用 Ravenscar 配置文件进行并发(所有 Ada 功能集都允许这样做,并且受可在 DO-178C DAL A 认证的运行时库支持)可以帮助防止数据损坏。SPARK 静态分析工具可以检测未初始化变量的使用、未使用变量的出现、整数和定点溢出的可能性以及许多其他错误。

使用以前开发的软件

FACE方法基于重用;在需要高保证的情况下,问题是当软件组件在不同于最初认证的环境中使用时,如何获得足够的置信度。

一个问题是确定组件的 DAL(因此,对于 FACE 组件,要使用的 OSS 配置文件/语言功能集)以及随之而来的生命周期要求。为了获得最大的可重用性,应在设想其使用的最高 DAL 下开发和验证组件。

另一个实质性问题是如何获得信心,即在一个系统中已被证明满足相关生命周期目标的组件将满足另一个系统中的相关目标。DO-178C 为几种情况提供了具体指导:当重用涉及软件修改、飞机安装更改、应用程序或开发环境更改或升级到开发基线时。其中每个项目的基础活动都是全面的影响分析,以在整个软件生命周期中识别组件在新上下文中重新部署的影响(包括对已知问题的分析)。例如,将相同的源代码移植到新处理器将需要重新验证最坏情况的执行时间假设、足够的堆栈空间预留和类似的属性。通过使用合格的工具可以减轻这种重新验证。

专业技术

现代软件技术(如基于模型的工程、面向对象和形式化方法)为机载软件的开发人员带来了许多好处,但它们也可能导致复杂性。例如,动态绑定简化了某些设计模式,但也使演示正确的数据依赖关系变得更加困难。DO-178C的技术补充直接解决了这些问题,并展示了如何解决潜在的问题。

FACE方法侧重于离散可重用软件组件的软件可移植性,将可靠性和安全性要求委托给其他标准。DO-178C专注于系统或子系统级别的软件可靠性和安全性,将可移植性(使用先前开发的软件)视为相关问题的“附加考虑因素”,而不是要求。这两种方法是相辅相成的,是一致的。通过根据 DO-178C 及其补充文件中提供的指南开发和验证软件组件,FACE 组件提供商可以满足 FACE 可移植性目标,同时实现高 DAL 可靠性和安全性。

DO-178C指南的一个关键要素是及早发现错误。面向软件工程的语言(如 Ada 和 SPARK)由合格的工具和可认证的运行时库(如 AdaCore 提供的库)提供支持,可以简化安全认证,同时实现 FACE 组件重用。DO-178C和FACE方法形成了一个自然的结合,允许开发人员结合商业和军事领域的机载软件生产的最佳实践。

审核编辑:郭婷

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

    关注

    33

    文章

    9453

    浏览量

    156275
  • 操作系统
    +关注

    关注

    37

    文章

    7338

    浏览量

    128802
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    霍尔开关如何保证自身的可靠和实用

    霍尔开关的可靠(稳定工作、不易失效)和实用(适配场景、易集成、低使用成本),核心依赖 “环境适配设计、电气防护、低功耗优化、标准化集成”四大方向,
    的头像 发表于 12-02 16:53 1088次阅读
    霍尔开关如何<b class='flag-5'>保证</b>自身的可靠<b class='flag-5'>性</b>和实用<b class='flag-5'>性</b>

    天空之眼,守护碧水清流:机载光谱成像系统在河流水环境监测中的应用

    随着环境污染问题的日益凸显,对河流水环境进行大范围、实时、精准的监测变得至关重要。传统的地面监测方法耗时费力,且难以反映水体的整体空间异质机载光谱成像技术,作为一种新兴的“天空之眼”,凭借其
    的头像 发表于 12-02 11:26 147次阅读
    天空之眼,守护碧水清流:<b class='flag-5'>机载</b><b class='flag-5'>高</b>光谱成像系统在河流水环境监测中的应用

    嵌入式测试软件设计

    认识到测试软件的好处了吧? 所以,之后写代码,写之前,有必要先想清楚,这个模块最后要怎么进行自测?要测哪些地方? 设计的软件测试
    发表于 12-02 06:06

    PCBA 加工中如何提高

    PCBA 直接影响产品可靠与良率,指元器件引脚或焊盘快速形成优质焊点的能力。若差,易出现虚焊、设备故障等问题。以下从全流程拆解
    的头像 发表于 11-06 14:40 207次阅读
    PCBA 加工中如何提高<b class='flag-5'>可</b>焊<b class='flag-5'>性</b>?

    嵌入式软件测试与专业测试工具的必要深度解析

    嵌入式系统作为控制、监视或辅助装置运行的专用计算机系统,其软件测试面临着独特的挑战和严格的要求。专业测试工具在嵌入式软件开发过程中发挥着不可替代的作用,是确保系统可靠和安全的关键保
    发表于 09-28 17:42

    进行数据校验时如何保证场景覆盖的全面

    在数据校验中保证场景覆盖的全面,核心是 从 “数据属性 - 业务逻辑 - 异常边界 - 环境交互” 多维度拆解场景 ,通过系统化梳理、优先级排序和动态迭代,避免因场景遗漏导致校验漏洞。以下是具体
    的头像 发表于 09-25 17:42 523次阅读

    实施动态校准与补偿策略时,如何保证数据的安全

    )” 三大风险,同时结合动态校准的技术特性(如工具本地计算、跨设备数据交互)设计针对措施。以下是分环节、落地的安全保障方案: 一、数据采集环节:确保 “源头数据真实、不可伪造” 动态校准与补偿的核心数据(如
    的头像 发表于 09-23 18:01 513次阅读

    如何保证数据校验系统的时间同步以提高准确

    在电能质量监测的数据校验系统中, 时间同步的准确直接决定了多监测点数据的时空一致、暂态事件的时序匹配度,以及校验结果的可信度 。要保证时间同步以提升数据校验准确,需从 “协议选择
    的头像 发表于 09-19 11:28 370次阅读

    请问如何保证UID(唯一ID)的唯一

    如何保证UID(唯一ID)的唯一
    发表于 08-21 08:18

    如何保证硫酸铜参比电极测量数据的准确

    硫酸铜参比电极测量数据的准确,可从电极的选择、安装、使用和维护等方面采取相应措施,具体如下: 选择合适的电极 质量可靠:选择有质量保证的硫酸铜参比电极,确保其内部结构合理、材料纯度,以减少因电极
    的头像 发表于 05-19 10:21 432次阅读
    如何<b class='flag-5'>保证</b>硫酸铜参比电极测量数据的准确<b class='flag-5'>性</b>

    提供半导体工艺可靠测试-WLR晶圆可靠测试

    无需封装:热阻低,允许施加更高温度和大电流密度而不引入新失效机理;实时反馈:与工艺开发流程深度融合,工艺调整后立即通过测试反馈评估可靠影响;行业标准化:主流厂商均发布WLR技术报告,推动其成为工艺
    发表于 05-07 20:34

    AEC-Q102认证之器件

    的作用。汽车电子设备在运行过程中需要面对复杂多变的工作环境,如高温、湿、振动等,而良好的是确保光电半导体器件与电路板之间实现可靠电气连接和机械固定的基础。只有
    的头像 发表于 05-07 14:11 431次阅读
    AEC-Q102认证之器件<b class='flag-5'>可</b>焊<b class='flag-5'>性</b>

    什么是选择蚀刻

    不同材料的刻蚀速率比,达到‌>5:1‌甚至更高的选择比标准‌。 一、核心价值与定义 l‌精准材料去除‌ 选择蚀刻通过调整反应条件,使目标材料(如多晶硅、氮化硅)的刻蚀速率远高于掩膜或底层材料(如氧化硅、光刻胶),实现
    的头像 发表于 03-12 17:02 752次阅读

    提升激光焊锡与铜的关键措施

    在PCB电路板的制造中,镀铜工艺与激光焊锡技术的结合对铜的提出了特殊要求。
    的头像 发表于 03-12 14:16 1017次阅读

    请问如何保证多片AD1278的通道之间相位一致

    读取手册,发现要保证多片AD1278的通道之间相位一致需要两点:1、CLK一致;2、SYNC_N同时拉高。 我的情况: 1、各个AD1278的CLK来着不同的时钟源,即分别采用10ppm
    发表于 01-14 06:02