在军事和航空航天系统中迁移安全关键型软件

描述

  DO-178B 应用程序面临重新验证和重新认证,即将迁移到 DO-178C 标准。

  当今的军事和商业航空电子系统中使用了数亿行遗留代码。这些遗留系统中的大多数都是使用现已过时(或过时)的编程语言和开发系统以及不再可用的编程专业知识开发的。因此,这些遗留系统的维护和升级变得越来越困难和昂贵,从而迫使开发人员将其应用程序迁移到新的开发主机、编译器、安全关键操作系统和编程语言。此外,监管机构对认证施加的新标准和新要求也可能引发对软件迁移和重新验证的需求。

  迁移复杂的嵌入式软件,特别是在需要实时响应和高度安全关键性的应用中,可能是一个昂贵、耗时且有风险的过程,需要更改代码、重新测试、重新审查、重新分析甚至重新认证。有许多因素使旧版应用程序难以移植。这些因素包括编程语言的细微差别、特定于编译器的实现、运行时和硬件依赖关系、使用超出定义的编程语言的扩展以及不兼容的应用程序代码结构。迁移应用程序还会影响已通过 DO-178B 认证或即将通过 DO-178C 认证的代码的重用。

  迁移到新语言

  在所有迁移工作中,最具挑战性的是将使用传统语言(如 Ada 或 JOVIAL)编写的代码移动到另一种语言(如 C)中。由于生成的应用程序与原始应用程序不完全相同,因此至少需要基本的重新测试,并且可能需要完全重新验证。此外,由于必须在源代码级别修改应用程序,因此分配给该程序的新软件工程师可能必须接受传统编程语言以及应用程序设计和内部工作方面的培训。这将不可避免地将错误引入应用程序。其他因素也将发挥作用。例如,生成的代码将具有不同的布局,并且可能不再适合可用内存。数据布局也将不同,不再正确映射到底层硬件。性能和时序方面也将发生变化。

  更改语言时,最好使用支持旧语言和新目标语言的开发环境,并能够混合语言。这将允许设计人员缓慢迁移并逐步进行测试。虽然许多编译器可以组合不同语言的代码段,但大多数调试器工具一次只处理一种语言。这意味着开发人员必须同时调用多个工具来查看代码段之间的交互。这些工具很少以协调的方式进行交互或交换信息,以帮助将目标代码与多种语言源相关联。混合语言开发环境(如DDC-I的OpenArbor)允许从单个启动进行混合语言调试,从而更容易检测交互错误并协调新的和现有的代码。

  开发人员可能还希望利用可加快转换过程的工具和服务。其中包括半自动化工具,这些工具以可预测和直接的方式转换应用程序,同时保留原始应用程序结构和源代码注释。这使得转换后的代码可读且可维护,最大限度地降低引入软件错误的风险,并消除对软件转换工具的任何进一步依赖。使用新语言后,可以使用更新的语言功能优化应用程序,并/或使用新功能进行增强。

  DO-178B/DO-178C 迁移

  如果应用程序最初已通过 DO-178B 认证并已迁移,则必须使用新语言、开发环境、验证环境和运行时环境重新验证和重新认证。如前所述,今年晚些时候,该行业将开始从DO-178B过渡到DO-178C,这将在新开发和遗留代码重用方面产生新的影响。除了对 DO-178B 的指南进行一些澄清外,DO-178C 文档还增加了新的指南,以适应自 DO-178B 发布以来变得很常见的开发技术,包括面向对象编程、基于模型的开发(UML 或 Simulink)、工具鉴定和形式化方法。

  对于开发人员来说,好消息是DO-178C保留了核心DO-178B指南,并进行了一些修改以进行澄清。开发人员仍然必须熟悉适用于其特定流程和程序的每个领域的指南。开发人员还必须评估附加指南的影响,相应地定制其流程和过程,并更新他们迁移的任何软件和认证项目。但是,DO-178B的大部分将保持不变,从而简化了向DO-178C的过渡。

  审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分