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

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

3天内不再提示

DO-332帮助解决OOT的动态灵活性关键认证挑战

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

扫码添加小助手

加入工程师交流群

DO-332是DO-178C标准对面向对象技术(OOT)和相关技术的补充,分析了安全关键软件中面向对象引发的问题,并为处理OOT的漏洞提供了新的指导。DO-332的一个重要新目标是“本地类型一致性验证”,它利用了称为“Liskov替换原理”的类型理论结果,并帮助解决OOT的动态灵活性带来的一些关键认证挑战。

面向对象技术(OOT)被广泛使用,并得到包括C++JavaAda在内的一系列编程语言的支持,但由于各种原因,它的普及尚未扩展到机载和其他安全关键软件。根本问题是验证利用OOT三个基本元素的软件的复杂性:继承,多态性和动态绑定。(图 1 说明了面向对象的基础知识。一个简单的例子说明了这些问题:

图1:面向对象基础知识

poYBAGNp9tyATsxyAAB1h1SmucU165.jpg

假设 Sensor 类是继承层次结构的根,ref 是对此层次结构中任何类中的对象的多态引用,而 Reset 是为不同的 Sensor 类定义不同的操作。声明参考。Reset(。..) 根据 ref 表示的对象的类动态绑定到相应的版本。如何验证此调用是否满足重置操作的要求?

如果使用继承来定义不是传感器专用化的子类,则会出现一个问题。此子类的重置可能具有与重置传感器无关的某些效果,或者可能会生成异常。ref 从这样的子类引用对象将是一个错误,需要分析以表明错误不会发生。这使验证过程复杂化。

另一个问题涉及结构覆盖率分析。对于 DO-178 标准中三个最高级别(A、B 或 C)中的任何一个的系统,必须使用基于需求的测试来证明完整的语句覆盖率。但是,编译器可能会选择几种实现策略来处理动态绑定,这些策略对“语句覆盖率”的含义有不同的含义。结构覆盖范围的范围不应取决于编译器使用的实现策略。

DO-332[1]是DO-178C[2]的OOT补充,通过局部类型一致性的新概念解决了这些问题,该概念利用了继承只应用于类专用化的原则。

继承和利斯科夫替代原则

在面向对象的设计中,系统的体系结构反映了类及其关系。一个特别重要的关系是专业化(“is a”),但还有很多其他关系。实现设计涉及选择用于捕获关系的语言机制。

在面向对象的语言中,继承可用于实现两个类之间的各种关系。但是,当继承用于专用化以外的任何内容时,可能会出现异常,因为为超类定义的操作可能对子类没有意义。在类型论的背景下,已经研究了将继承限制为专业化关系,其中它被称为Liskov替换原理(LSP)[3]。非正式地说,LSP 意味着无论在哪里可以使用超类的实例,都应该允许替换任何子类的实例。

使用继承进行专业化与操作的前置条件和后置条件(其“协定”)具有重要的交互作用。前提条件是在调用操作时对程序状态所做的假设。后置条件是保证操作在操作完成时对程序状态进行的操作。前置和后置条件可以明确指定 - 可以在源文本中指定,如Ada 2012[4]或SPARK[5],也可以单独指定 - 或者它们可以隐含在操作逻辑中。

如果继承符合 LSP,则操作的子类版本不应施加比超类版本更强(更具限制性)的前提条件。否则,调用可能在某些情况下(在超类实例上)成功,但在其他情况下(在子类实例上)失败。类似地,子类的操作版本不应指定比超类版本更弱(更通用)的后置条件。

因此,符合 LSP 意味着满足两个属性:

协定一致性:任何子类操作都不会加强它所覆盖的超类操作的前置条件或削弱后置条件。

行为一致性:每个子类操作都满足其超类的要求。

DO-332 在新目标“本地类型一致性验证”中捕获了这些概念。此目标不需要证明类层次结构符合 LSP,这将过于严格。相反,它反映了对于符合要求的类体系结构,验证工作更简单,并且分析只需要考虑本地上下文。

本地类型一致性

图 2 显示了与验证本地类型一致性相关的活动,DO-332 需要 A、B 或 C 级别的软件。“对于使用替换的每个子类型”的措辞是指发生动态绑定的上下文,例如 ref。Reset(。..),所讨论的“子类型”是 ref 在这一点上可以引用的对象的类。潜在的类不一定是完整的层次结构,不同的类集可能适用于同一操作的不同调用。

图2:与验证本地类型一致性相关的活动,DO-332 要求级别为 A、B 或 C 级软件

pYYBAGNp9t2ARSCqAABcrcuuKHg531.jpg

考虑引用的特定出现。Reset(。..),并让 HeatSensor 成为 ref 可以在那里引用的对象可能的子类之一。引用的本地类型一致性。HeatSensor的重置(。..)可以“乐观地”或“悲观地”地证明。如果HeatSensor满足LSP,则乐观方法有效,可以通过两种方式进行:

通过形式化方法,通过证明HeatSensor的复位版本满足传感器版本的要求,并且不会加强传感器复位的前置条件或削弱后置条件。

通过测试,通过使用 HeatSensor 的实例对传感器的重置版本运行基于要求的测试。

来自编程语言及其工具集(例如 Ada 2012 或 SPARK)的适当支持可以促进形式化方法。

乐观的方法将证明超类和子类的操作版本之间的契约和行为一致性。通过对子类的基于需求的测试以及可能通过形式化方法获得额外的验证。

如果类不符合 LSP,或者动态绑定调用很少,或者层次结构很浅和/或很窄,那么测试可能出现的每种可能的情况可能是最简单的。这是图 2 中第三个项目符号项中指定的悲观测试。需要基于需求的测试来对可能出现的每个子类执行操作。

DO-332、本地类型一致性和 LSP 指南认证

本地类型一致性验证只是安全使用 OOT 的一个方面;DO-332 包含有关其他 OOT 元素以及相关技术(如通用模板)的指南。DO-332 是“语言不可知论者”;有关如何使用 Ada 2012 作为编程语言在安全关键或高安全性系统中应用 OOT 的更多细节[6]。

DO-332 的本地类型一致性指南与 DO-178C 的一般验证方法一致,确保所有测试都基于要求。它以一种新颖的方式调整验证活动,以反映面向对象的语义和类结构对LSP的遵守程度。新指南应有助于促进面向对象编程(OOP)在航空电子设备和其他关键领域的安全使用。

审核编辑:郭婷

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

    关注

    2573

    文章

    54368

    浏览量

    786058
  • JAVA
    +关注

    关注

    20

    文章

    2997

    浏览量

    115682
  • C++
    C++
    +关注

    关注

    22

    文章

    2122

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    德州仪器ADS644X系列ADC:高性能与灵活性的完美结合

      在当今的电子设计领域,模数转换器(ADC)的性能和灵活性对于系统的整体表现起着至关重要的作用。德州仪器(TI)的ADS6445、ADS6444、ADS6443和ADS6442(统称ADS644X
    的头像 发表于 11-27 18:07 1099次阅读
    德州仪器ADS644X系列ADC:高性能与<b class='flag-5'>灵活性</b>的完美结合

    C语言的编程技巧

    代码的灵活性和可维护性。 ‌6、使用合适的条件语句‌:选择合适的条件语句(如if、else if、else、switch)可以提高程序的执行效率和可读性。‌ ‌7、模块化和分层开发‌:采用模块化
    发表于 11-27 06:46

    无线充电单线圈和三线圈

    现代无线充电技术通过线圈设计优化,提升充电效率与灵活性,三线圈系统实现动态路径调节,增强抗干扰与温控能力。
    的头像 发表于 11-26 08:18 222次阅读
    无线充电单线圈和三线圈

    FreeRTOS和uC/OS-II的功能特性

    : 提供内存分区(固定大小块)管理机制,高效且避免碎片(但灵活性不如动态堆分配)。也可以集成自己的内存分配器。 严谨性: 以其高可靠性和确定性著称,代码经过严格的验证和测试(包括航空/医疗等关键领域
    发表于 11-17 08:17

    启动电压 2.5V升压恒流芯片H6912 12V-24V升压36V无频闪调光ic灵活性

    稳定驱动 LED 负载。 输入电压范围覆盖 2.6-40V,能直接适配锂电池及各类中低压供电场景。 输出耐压无固定限制,仅由外接 MOS 管的耐压规格决定,灵活性强。 调光与功能设计 支持模拟
    发表于 10-18 10:00

    EtherCAT热插拔技术:提升工业自动化系统灵活性关键

    在工业自动化领域,系统灵活性和维护性至关重要。本文将探讨EtherCAT从站热插拔技术,介绍其如何通过动态管理从站设备,提高系统的灵活性和维护性。EtherCAT热插拔技术EtherCAT是一种
    的头像 发表于 10-16 11:36 318次阅读
    EtherCAT热插拔技术:提升工业自动化系统<b class='flag-5'>灵活性</b>的<b class='flag-5'>关键</b>

    开发无线通信系统所面临的设计挑战

    的设计面临多种挑战。为了解决这些挑战,业界逐渐采用创新的技术解决方案,例如高效调变与编码技术、动态频谱管理、网状网络拓扑结构以及先进的加密通信协议。此外,模块化设计、可升级架构与边缘计算的结合,为系统带来更高的
    的头像 发表于 10-01 15:15 9707次阅读

    动力电池组半自动生产线:效率与灵活性的平衡之道

    、一致性差,而全自动化生产线虽能提升产能,却面临设备成本高、柔性不足的难题。在此背景下,半自动生产线凭借其“人机协同”的独特优势,成为行业兼顾效率与灵活性的重要选择。 半自动生产线的核心逻辑:以人补机,以机
    的头像 发表于 09-16 10:05 379次阅读

    LitePoint预认证测试解决方案加速Wi-Fi 7部署

    随着我们从Wi-Fi 7研发工具周期进入商业推广阶段,客户应在其测试策略中纳入接入点预认证。预认证测试确保符合监管标准和互操作性要求,以实现与生态系统的顺利集成,从而增强频谱利用率、提高功率传输灵活性和扩大覆盖范围。
    的头像 发表于 08-29 15:11 879次阅读

    动态BGP与静态BGP的区别?

    支持自动发现(通常通过监听端口) 适用场景小型网络、连接少量对等网络大型网络、频繁变动的对等关系 可维护性修改需人工操作,灵活性差可自动发现/建立邻居,运维更自动化 路由学习来源通常结合静态路由导入来自动态
    发表于 06-24 06:57

    PLL技术在FPGA中的动态调频与展频功能应用

    随着现代电子系统的不断发展,时钟管理成为影响系统性能、稳定性和电磁兼容性(EMI)的关键因素之一。在FPGA设计中,PLL因其高精度、灵活性和可编程性而得到广泛应用,本文将深入探讨PLL技术在FPGA中的动态调频与展频功能应用。
    的头像 发表于 06-20 11:51 2212次阅读
    PLL技术在FPGA中的<b class='flag-5'>动态</b>调频与展频功能应用

    将M.2 SSD转为可插拔设计:提升工作站灵活性与维护效率的解决方案

    在日常工作站PC电脑使用中,内置的M.2SSD虽然具备高速传输和节省空间的优势,但在频繁维护、更换或数据交换时,拆装过程较为繁琐。将M.2SSD转换为外置可插拔的形式,不仅大幅提升了操作灵活性,也有
    的头像 发表于 05-09 17:10 1127次阅读
    将M.2 SSD转为可插拔设计:提升工作站<b class='flag-5'>灵活性</b>与维护效率的解决方案

    PoE交换机在安防监控系统中的关键作用

    。随着技术的不断发展,PoE交换机提供快速集成新设备与新应用的灵活性。这种灵活性确保安防监控系统始终处于技术前沿,以有效应对不断变化的安全挑战。 飞速(FS)PoE交换机:安全监控系统的理想选择
    发表于 03-24 16:41

    磁性近程传感器保证非接触式定位和近程检测的灵活性和可靠性

    保证非接触式定位  和近程检测的 灵活性和可靠性   磁性近程传感器为多种应用中的非接触式定位和近程检测提供了可靠而灵活的可选方案。这类传感器能够通过多种非磁性表面可靠地检测磁场。磁性近程传感器
    的头像 发表于 03-17 11:53 1041次阅读
    磁性近程传感器保证非接触式定位和近程检测的<b class='flag-5'>灵活性</b>和可靠性

    设备管理系统新范式:区块链存证+动态权限管理

    企业面对数字化转型挑战,设备管理面临安全与灵活性问题。传统设备管理方案漏洞频出,数据易遭篡改,权限管理僵化。企业需构建区块链存证+动态权限管理方案,提升设备管理可信度、灵活性与效率,实
    的头像 发表于 03-13 10:41 863次阅读
    设备管理系统新范式:区块链存证+<b class='flag-5'>动态</b>权限管理