作者:JEREMY VANDOMELEN,BENJAMIN BROSGOL
预计国防平台的使用寿命长达数十年。开发经久耐用的高可靠性、安全关键型软件需要来自值得信赖的行业合作伙伴的综合工具。强大的软件开发解决方案可以帮助工程师设计和开发新的长寿命无人系统,并可以在当前部署的无人平台上升级系统,以延长其生命周期。
国防和航空航天平台一直是“经久耐用”的,但在当今时代,各种此类车辆 - 陆地,海洋,空中和太空 - 预计将在长达数十年的使用寿命内运行。例如,波音B-52同温层堡垒军用飞机自1952年首飞以来,已经在美国空军服役了半个多世纪。波音公司于1962年停止生产亚音速喷气动力轰炸机,但2013年和2015年进行的升级预计将延长B-52的使用寿命至2045年或2050年。
设计、开发、制造、测试和认证新平台的时间和成本密集型过程通常可以尽可能长时间地避免。因此,我们的注意力集中在确保系统(无论是正在开发的还是已经部署的)能够在更长的使用寿命内运行。
无人驾驶飞行器——包括无人驾驶飞机系统(UAS)、无人地面飞行器(UGV)和无人水下航行器(UUV)——现在正保持与载人飞行器相同的寿命标准。美国宇航局的旅行者1号和2号无人航天器在1977年发射到恶劣,富含辐射的太空环境整整40年后,仍然每天运行,探索和通信。回到地球上的无人驾驶车辆遭受着不同的命运。
无人过期
两个对美国军方很重要的早期UAS平台现在已经接近二十年的服役 - 以色列航空航天工业公司(IAI)的RQ-5猎人以及诺斯罗普格鲁曼公司以及通用原子公司的MQ-1捕食者。RQ-5于1995年投入使用,于2015年与美国陆军进行了最后一次飞行,但据说国防承包商正在海外运营退役部队。
MQ-1是过去20年的主力,将于2018年退役于美国空军服役。退役原定于2015-2017年,但由于中东需要其监视技能而被推迟。
软件和硬件工程师已经对MQ-1进行了多次更新,以延长其使用寿命并增加其功能,以跟上军事任务的需求和要求。MQ-9 Reaper在1995年首次推出时严格来说是一种监视无人机,同样由通用原子公司制造,此后通过软件和硬件升级演变为武装机载武器。
政府和军方领导人表示希望从MQ-1平台中获得更多收益,但他们认识到从软件和硬件的角度来看,它不再可行。退役后,预计这些无人机将被剥夺其可用组件,然后填充飞机骨头。然而,其软件DNA将在后续无人驾驶车辆中继续存在,所吸取的经验教训有助于制定设计灵活,功能强大,长寿命无人系统的最佳实践。
软件审查
软件是长寿命拼图的重要组成部分,因为军队正在努力延长无人平台的能力和寿命。软件开发环境、编程语言和验证/测试/分析工具都是确保无人系统在较长的使用寿命内跟上不断变化的威胁环境、不断发展的认证和任务要求以及用户需求的关键组件。
强大的软件解决方案可以帮助工程师设计和开发新的长寿命无人系统,以及升级当前现场或改装无人平台上的系统,以延长其生命周期。软件代码的使用寿命远远超过无人驾驶车辆本身。在军用车辆退役很久之后,其软件代码可以继续为后续平台奠定基础并投入使用——就像MQ-1“捕食者”一样。因此,选择最佳软件工具至关重要,但不一定具有挑战性,尤其是在选择过程中首先考虑几个因素的情况下。
长寿命无人系统的软件开发和验证工具注意事项包括:
可扩展性,以适应可以处理附加功能、多任务有效载荷、不断变化的认证要求和新威胁的增量软件/硬件更新;
定期更新以保持相关性,与用户需求和行业/应用程序需求保持同步,并提高效率和生产力;
在过去的高保证计划方面取得了成功的记录;和
全面的功能,包括完整的软件开发套件和集成开发环境 (IDE),提供编译器、调试器、静态分析和测试工具等元素,并支持基于模型的开发和形式化方法。
灵活开发
长寿命无人系统必须保持最新和相关性。随着任务要求的变化,它们的特性和功能也必须改变。军事领导人——他们专注于准备——必须部署能够满足当前和未来需求的灵活、多任务系统。软件开发环境和工具集应有助于确保无人系统能够跟上不断发展的战斗空间环境的步伐。
模块化和可扩展性是当今几乎所有软件和硬件解决方案的关键属性。最终用户、项目经理和工程师都非常重视系统适应增量更新的能力,以增加功能、更改有效载荷、修复问题、解决安全漏洞和集成最新的技术创新 - 所有这些都是以延长使用寿命的名义。
无人系统设计可以通过重用前代车辆的软件代码启用的特定功能来节省开发时间和资金。软件开发环境应有助于保持和保护对软件的大量投资,同时保持当前和未来增长所需的灵活性和可扩展性。语言功能在这里可以提供帮助(例如,一种面向对象的方法,其中可以将新组件添加为现有组件的扩展,而无需修改甚至重新编译旧代码)。工具支持也很有用,例如浏览器和代码分析工具。
新旧
将旧系统与新系统混合总是有点挑战,但正确的软件开发流程和工具可以提供帮助。
一个问题:旧代码可能存在潜在的错误或漏洞,这些错误或漏洞可能会在添加新功能或更改操作环境时触发。例如,一个最初被认为是独立的应用程序,几年前设计时安全性不那么重要,现在可能是远程访问的,因此成为对手的潜在目标。检测潜在问题的静态分析工具是一项值得的投资;例如,静态分析工具可以标记在常见弱点枚举 (CWE) 中表现出弱点的构造。
现实世界的软件是用多种语言编写的:它可以是用于安全关键组件的Ada,用于低级例程的C,以及用于用户界面的Java或C++。软件开发环境应支持多种语言的组件的无缝互操作性,并在可能的情况下在组件接口上进行检查和实用检查。
系统升级通常需要更改目标平台。编写代码应简化可移植性,编写旧版软件所使用的语言可能会影响此过程的难易程度。例如,Ada 包括对并发(任务)的标准支持,因此可以可移植地编写用户代码,而不是直接访问操作系统的线程服务。
新组件和现有组件之间的交互可能会对安全性和可行性产生影响,但软件开发环境可以帮助检测和避免这种不受欢迎的副作用和不兼容问题。有效的验证、测试和静态分析工具可以帮助发现和消除不准确的属性、验证和保留所需的属性、确定升级有意失效的过时属性以及验证更新的属性,从而简化升级。随着软件和系统的规模和复杂性随着时间的推移而增长,工具和流程应具有良好的扩展性并集成新组件。
处理过时问题
软件过时可能有多种原因,包括硬件不兼容或供应商停止支持或推进其产品。为了帮助解决过时问题和更好的面向未来的无人系统,开发团队应该投资由长期行业合作伙伴和全球用户社区支持的软件工具,所有这些都致力于继续使用和增强软件语言、开发框架和工具集。如果供应商不支持项目中使用的语言的最新版本,那么这可能是一个警告信号,表明他们的长期承诺是值得怀疑的。
为了促进面向未来的软件开发,所使用的编程语言应该具有长期和经过验证的成功使用记录,同时还应表现出稳定和可控的发展 - 即稳定性/兼容性但不是停滞不前。此外,编译器同样应该具有成功的使用历史,并在功能和代码质量方面定期升级。
如果特定的嵌入式电子元件(如处理器)升级、过时或不再受支持,借助开放、可移植、可互操作的软件解决方案,可以避免昂贵的端口或重写。为了促进变革,软件开发框架(包括编程语言)应该可以在一系列硬件选项中移植,包括尖端和专用嵌入式处理器。开放、模块化、可扩展且全面的开发平台有助于而不是阻碍硬件/软件集成和互操作性。
悠久的遗产
过去的经验通常是未来行为的最大预测指标,因此选择长期表现良好且可靠的软件解决方案是有利的。
从事UAS项目的设计人员应投资于专门为需要高完整性和保证的安全和任务关键型应用而设计和使用的语言和工具。寻找行业领导者在国防、航空航天和其他重视安全性和可靠性的市场中备受瞩目、复杂甚至类似的项目中成功采用的软件开发和验证工具非常有用。
软件开发框架的强大程度取决于其背后的提供商,因此请寻找值得信赖的行业合作伙伴,该合作伙伴在生产、支持和增强强大、功能强大、功能齐全的工具方面有着悠久的传统。
软件开发和验证工具,以及不断增强和支持的编程语言通常更面向未来。
整套
软件开发环境和工具集的质量和有效性会对最终的软件产生深远的影响,进而影响整个无人系统。无人驾驶车辆开发的整体方法需要一个强大、直观的集成开发环境 (IDE),以支持从设计和编码到系统集成、测试、调试和代码分析的完整开发工作流程。
软件问题可能会导致生产计划出现重大延迟,从而导致已部署环境中出现大量不必要的停机。对于程序进度和软件质量而言,必须在开发周期的早期发现错误,而纠正这些错误的成本最低。对于最关键的组件,通过形式化方法实现的保证 - 基于数学的确信已满足部分程序属性(例如没有运行时错误) - 非常值得投资。
语言和工具技术可以帮助无人系统开发人员应对这些挑战。一个例子是 Ada 语言及其相关的工具支持。Ada 提供广泛的检查,甚至在程序运行之前帮助检测错误,并发功能可有效地映射到现代实时操作系统 (RTOS) 和目标硬件,完整的面向对象的编程功能和多语言互操作性。
Ada 自成立以来不断发展,以反映用户体验和要求以及技术趋势。该标准的当前版本(Ada 2012)包括对基于合约的编程(前置和后置条件)的支持,这有助于验证,并实际上将需求嵌入到源代码中,可以静态或动态地检查它们。Ada目前部署在各种现代防御平台和设备上,包括陆地,海上,空中和太空的军事嵌入式系统。
支持 Ada 语言的是各种工具和开发环境,这些工具和开发环境已用于生成最高安全关键级别的软件(DO-178B/C 中的设计保证级别 A)。AdaCore提供了两个这样的工具:GNAT Pro开发环境,其版本特别适用于需要继续使用特定维护技术分支的长期系统;以及 CodePeer 静态分析工具,该工具可以发现新代码或现有代码中的漏洞(包括检测 CWE 中的各种弱点)。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !