迁移当今复杂的军事和商业航空电子系统可能是一个相当艰巨的命题,但可以采取几个步骤来缓解一些头痛。
在当今的关键军事、商业航空电子设备和其他系统中,有数亿行遗留代码在使用。这些遗留系统中的大多数都是使用现已过时(或过时)的编程语言和过时且不再可用的开发系统开发的。因此,这些遗留系统的维护和升级变得越来越困难和昂贵,迫使开发人员将其应用程序迁移到新的开发主机、编译器、操作系统甚至编程语言。
当确实需要升级系统时,请避免此时对应用程序的其他方面进行现代化改造的诱惑,例如将应用程序转换为新的编程语言。迁移到“最新和最伟大的”可能很诱人,但通常更明智的做法是放慢速度,仅在真正需要和经济上合理时才迁移。理想情况下,应使用原始开发系统和语言或混合语言配置中同一开发系统支持的另一种语言添加新功能。
迁移复杂的嵌入式软件 - 特别是在需要实时响应和高度安全关键性的应用中 - 可能是一个昂贵、耗时且有风险的过程,需要更改代码、重新测试甚至重新认证。有许多因素使遗留应用程序难以移植,包括编程语言的细微差别、编译器实现、运行时和硬件依赖关系、使用超出定义的编程语言的扩展以及不兼容的应用程序代码结构。迁移应用程序还可能会影响先前的认证工作(例如,DO-178)。
尽管如此,保留经过充分验证的应用程序并使它们能够在不同的处理器、开发环境、编译器甚至更新的编程语言上运行仍然至关重要。任务和安全关键型软件的成本可能远远超过 10 美元/行和数年的创建成本(对于带有工件的安全关键型软件,每行超过 100 美元)。相比之下,传统软件通常可以以每行几美元的价格迁移,并在一年内重新部署。
在考虑是否迁移旧版应用程序时,必须考虑许多因素。其中包括嵌入式应用程序的性能、资源约束(如内存和电源)、时序约束、数据布局(必须与底层硬件匹配)、新功能的可扩展性以及更改目标字长的后果(例如,从 8 位到 16 位、16 位到 32 位)。其他因素包括可读性和可维护性、更改的可追溯性、认证或重新认证要求,以及将 RTOS 引入裸板环境的潜在副作用。
迁移旧版应用程序的复杂性使得适当的规划至关重要。例如,在开始迁移项目之前,DDC-I 会执行迁移评估研究,以确定技术挑战并解决未知问题。有了这些信息,DDC-I 的专业服务团队可以就如何最好地进行迁移工作提出建议和技术解决方案,包括人力需求和成本估算。
更改编程语言
在所有迁移工作中最具挑战性的是将用传统语言(如 Ada 或 Jovial)编写的代码迁移到新语言(如 C 或实时 Java)上。无论是为了便于维护还是为了利用高级新语言功能,最好使用支持旧语言和新目标语言的开发环境,并能够混合语言。这将允许您缓慢迁移并逐步进行测试。开发人员可能还希望利用可加快转换过程的工具和服务。
例如,DDC-I提供了半自动化工具,以可预测和直接的方式转换应用程序,同时保留原始应用程序结构和源代码注释。这使得转换后的代码可读且可维护,最大限度地降低引入软件错误的风险,并消除对软件转换工具的任何进一步依赖。使用新语言后,可以使用更新的语言优化工具对应用程序进行优化,使用新功能进行增强,或转换为模型语言(例如 UML)。
即使借助这些工具,转换应用程序也很少是微不足道的,尤其是在需要任务或安全关键性时。尽管如此,考虑到与开发新应用程序相关的过高成本和时间,迁移现有应用程序通常是最佳选择。借助适当的规划、转换工具和在该领域具有特定专业知识的专业服务公司,开发人员可以大大加快转换过程,同时降低风险。
审核编辑:郭婷
-
处理器
+关注
关注
68文章
19155浏览量
229050 -
嵌入式
+关注
关注
5068文章
19008浏览量
302988
发布评论请先 登录
相关推荐
评论