翻译整理自:https://militaryembedded.com/avionics/safety-certification/why-aerospace-and-defense-software-needs-do-178c
引言
DO-178C是航空电子行业中使用的功能安全标准。它为机载系统的适航性提供指导,是一个覆盖完整软件开发生命周期(SDLC)的流程驱动标准。
无论是商用还是军用航空器,设计其功能安全性都至关重要,尤其是在任何故障都可能导致任务失败或人员伤亡的系统中。
本文探讨了DO-178C的优势、流程及其在军事领域的应用,并分析了静态分析如何助力DO-178C合规。
DO-178C简介
航空业受到严格监管,以确保所有涉及的航空电子系统(从飞机制造、维护到空域网络和交通控制系统)在飞行中安全运行,并最大限度地减少事故发生的可能性。
现代飞机由日益复杂的组件构成,因此在整个SDLC中遵循DO-178C等法规和安全标准,及早且频繁地解决安全问题至关重要。制造商必须确保符合DO-178C标准,并通过漫长的认证流程,才能在产品上市前获得适航资格。
航空电子软件的开发长期以DO-178为指导。最初的DO-178标准由RTCA与EUROCAE于20世纪70年代制定,为机载系统软件提供了设计保证流程,重点关注测试和文档。
最新版本DO-178C《机载系统与设备认证中的软件考虑》在潜在开发方法上更具灵活性和非规范性,同时详细说明了设计保证流程(源自适航法规)。该标准于2012年发布,包含针对新技术发展的更新,并为需要适航认证的项目提供了特定技术的补充指导。DO-178C的技术补充涉及以下三项技术:
基于模型的开发验证(DO-331)
面向对象技术及相关技术(DO-332)
形式化方法(DO-333)
这些补充文件定义了每种技术在机载软件中的应用范围,列出了需要满足的额外或替代活动和目标,并澄清了与技术相关的目标和活动。
DO-178C还引入了相关补充标准DO-330《软件工具鉴定考虑》。DO-330是一个独立的工具鉴定标准,为使用工具实现DO-178C合规提供了指导。“工具鉴定”是一个旨在降低工具错误对系统安全性影响风险的过程。如果风险可接受地低,则说明错误极少或对安全性无影响。使用已通过鉴定的工具可以节省时间并加速开发。(例如,Helix OAC已通过DO-330鉴定,并提供包含所有必要文档的鉴定包。)
通过采用这一正式且流程驱动的功能安全标准,嵌入式航空航天系统的开发者可以确保其系统通过严格测试,为意外事件做好准备,并在各种环境中安全稳定地运行。
在SDLC中应用DO-178C的军事优势
在美国,联邦航空管理局(FAA)将DO-178C作为软件认证流程的一部分。
由于DO-178C被视为航空电子领域的核心标准,航空航天与国防行业已采用这一功能安全标准,重点关注军事应用的特定领域,包括:
任务成功概率(MSP) ——安全性至关重要,但军事合规更侧重于MSP而非民用合规。
恶劣的操作环境 ——军用飞机系统常在极端环境中运行,包括极高或极低的温度、强风和风切变力。
文档审查 ——所有文档均需由军方/客户审查,而不仅仅是《软件认证计划》(PSAC)和《安全保证系统》(SAS)。
机构批准 ——通常需要军事机构的批准,而非FAA或欧盟航空安全局(EASA)的批准
军用航空航天与国防项目通常在机载系统的技术进步中处于领先地位。它们将创新推向新高度,开发新技术以获得战术优势,同时降低风险。因此,军用飞机配备了先进的航空电子与飞行控制系统、高性能发动机、武器与侦察系统、导航与卫星通信设备等。由于军事飞行技术应用的任务关键性,其软件安全认证指南的要求可能与商用航空不同。然而,军方仍采用DO-178C等核心标准,以确保其嵌入式系统稳健、安全且可靠。
如何实现DO-178C合规
设计保证等级(DALs
DO-178C的前身DO-178B引入了设计保证等级(DAL)的概念,这一分类系统在DO-178C中继续沿用。DAL用于衡量软件故障对飞机安全性的潜在灾难性影响。风险越高,需要满足的安全目标和活动就越多(证明合规的难度也越大)
DAL分为五个等级,其中A、B和C级最为严重。这些等级的软件故障可能导致人员伤亡。D级故障可能导致不适或不便(如航班延误),而E级故障对安全性无影响。
设计保证流程帮助航空航天与国防领域的软件开发团队在SDLC的每个阶段确保安全性。即使无需认证,遵循DO-178C规定的流程也能确保开发者明确并遵循最佳实践。
DO-178C是一个流程驱动的标准,其中六个关键流程对航空航天软件开发尤为重要,每个阶段包含多个目标:
规划 ——规划阶段概述软件开发和验证流程,包括活动、资源和质量目标。在此阶段,需定义软件生命周期流程的活动、流程之间的关系、顺序、反馈机制和转换标准,并选择生命周期环境。此外,还需确定软件需求等级和每个软件功能的临界等级,以决定所需的合规级别。最后,规划阶段应考虑如何管理与DO-178C标准相关的需求(例如通过Helix RM等工具)。
开发 ——开发阶段需设计确保代码可追溯、可验证且一致的软件架构,以满足标准要求。这包括编写符合最佳实践和指南的代码,以及使用能在编写时发现并修复错误的工具和方法。在此阶段,应向系统流程(包括系统安全评估流程)提供高层和低层需求,并积极开发源代码。
验证 ——验证流程确认软件是否符合合规要求,并正确实现了设计。这包括展示可追溯性、测试与测试覆盖率,以及通过代码审查或静态分析工具(如Helix OAC和Klocwork)确保代码符合编码标准。
配置管理 ——配置管理用于管理所有设计数据和合规证据,并记录对正式设计基线的任何更改,以确保可追溯性和可重现性。具体目标包括识别所有配置项、建立基线和可追溯性、问题报告、变更控制、变更评审、配置状态统计、归档、检索与发布、软件加载控制以及软件生命周期环境。
质量保证 ——定期审查和审计软件,以证明其符合DO-178C标准,并解决任何违规或偏差。
认证 ——在准备认证时,需收集并更新整个开发生命周期中记录的相关文档,包括需求、设计、测试、验证结果和发现的偏差。认证机构随后检查所有开发和验证证据,以确定项目是否符合DO-178C流程和指南。
在每个阶段,更高的DAL等级需要完成更多的活动和目标,以确保安全性并证明符合DO-178C标准。
更安全的天空与更广阔的创新前景
关注现代化和创新的军事与国防组织应考虑采用DO-178C,以在保障安全的同时加速开发。
DO-178C指南和认证持续适应新兴数字技术,例如无人飞行器系统(UAS)和潜在的AI航空技术。航空航天与国防行业热衷于开发这些尖端技术和具备下一代能力的机载系统,以提升能力并改善战备状态。为此,他们愿意投入大量资金——美国国防部2024财年预算申请高达8420亿美元,较2023年增长3.2%。
作为支出的一部分,许多军事组织正在将商业技术应用于国防领域。私营企业与初创公司和学术界的合作必须满足这些应用的国防需求,而商业领域的产品也需要符合行业要求和安全认证。
通过将DO-178C用于军事航空航天应用,各类航空航天与国防组织的开发团队可以在拥抱创新的同时,确保机载系统软件即使在最关键的DAL影响和最极端的条件下也能安全、可靠地运行。
通过静态分析确保DO-178C合规
静态分析是一种自动检查源代码是否存在漏洞、错误或违反行业标准规则的方法。它是软件验证的重要组成部分,而验证是DO-178C中的关键项目步骤。
通过使用静态分析等工具,可以满足DO-178C合规要求,确保航空航天与国防代码无错误并遵循编码最佳实践。在设计保证流程中应用静态分析有助于早期缺陷检测、可追溯性以及验证指南中规定的软件需求。
静态分析还有助于强制执行编码标准,从而助力DO-178C合规。编码标准保持编码实践的一致性并减少错误。机载嵌入式系统通常使用C和C++编程语言,但由于这些语言并非为安全性设计,因此已制定了以安全为目标的编码标准:
JPL ——美国宇航局喷气推进实验室(JPL)制定了C语言的机构标准,其可靠软件实验室提出了开发安全关键代码的10条规则
JSF AV C++ ——联合攻击战斗机(JSF)机载C++标准定义了一套C++规则集,旨在为航空航天与国防行业生成正确、可靠且可维护的代码。
MISRA ——MISRA C和C++是专注于嵌入式系统安全的编码指南。