相关链接:
第1章 目的
本通告简要说明了在机载系统和设备的合格审定中如何使用RTCA/DO-178B或EUROCAE/ED-12B“机载系统和设备合格审定中对软件的考虑”来进行机载软件的适航审查。本通告旨在为适航审查人员和申请人及其相关供应商更好地理解和掌握RTCA/DO-178B或EUROCAE/ED-12B(以下简称DO-178B/ ED12B)的要求,进而更好地进行机载软件的符合性证明和审查活动提供指导。作为一种指导性资料,本通告所提供的方法不是唯一的,也不是强制性的。
第2章 依据和背景
本通告是在国内机载软件审查实践的基础上,依据DO-178B/ED-12B并参考波音公司培训教材“审定工程师在机载设备和系统审定中的作用”制定的。随着软件审查工作经验的积累,今后还将不断对其进行修订和完善。
现在RTCA最新的为DO-178C标准。该标准规定了软件开发过程中从需求定义到测试验证的所有阶段,旨在确保航空软件的功能安全性。DO-178B最早于1992年发布,是航空软件开发的关键标准,而2011年发布了DO-178C。DO-178C在DO-178B的基础上引入了对现代软件开发方法的支持。例如,模型驱动开发(DO-331)、面向对象方法(DO-332)和形式化方法(DO-333)等都得到了标准的认可和应用。这些技术手段的引入使得开发人员能够在更高层次上设计软件,同时保持严格的验证和审查过程。
DO-178B/DO-178C与其他相关标准如DO-254(硬件设计标准)、ARP4754A(系统开发与验证标准)共同构成了航空系统的适航性审查基础。通过这些标准,航空系统中的软件与硬件能够通过严格的流程得到验证,确保系统整体的安全性和可靠性。
第3章 相关文件
在机载系统的软件审查中,除了DO-178B/DO-178C,还涉及许多其他关键标准和文件,如:
CCAR-21部、23部、25部、27部、29部和183部等;
RTCA/DO-178B EUROCAE/ED-12B;
AC25.1309-1 A/AMJ25-1309、AC23.1309-1C等。
第4章 DO-178B/ED-12B与软件审查
DO-178B/ED-12B为在当前的机载系统及设备的合格审定中如何保证这些系统和设备的软件满足适航要求提供了一种可接受的方法。它适用于型号合格证/型号认可证(TC/VTC)、补充型号合格证/补充型号认可证(STC/VSTC)或TSOA/PMA/VDA的申请人和这些申请人的相关供应商。图4-1表明了DO-178B/ED-12B在适航审定过程中的应用面。
DO-178B/ED-12B就机载软件如何满足适航要求给予了如下的指导:
确定了软件等级与软件生存周期过程的目标要求之间的对应关系;
确定了各软件生存周期过程的目标;
说明了如何达到这些目标的基本方法和设计上的考虑;
说明了如何来表明对这些目标要求的符合性。
DO-178B/ED-12BB附件A(按软件等级确定的过程目标及输出)中的表A-1至表A-10概括地表述了这些指导。有关这些附表的内容详见本文附录。
4.2 DO-178C的改进与扩展
DO-178C在DO-178B的基础上引入了对现代软件开发方法的支持。例如,模型驱动开发(DO-331)、面向对象方法(DO-332)和形式化方法(DO-333)等都得到了标准的认可和应用。这些技术手段的引入使得开发人员能够在更高层次上设计软件,同时保持严格的验证和审查过程。
第5章 软件等级和失效情况类别
DO-178B和DO-178C为航空器系统的软件开发提供了框架,涵盖了从需求定义到测试验证的整个生命周期。标准将软件划分为不同的安全等级(A到E),每个等级对应不同的开发和验证要求。具体来说:
A 级软件:失效会导致灾难性后果(如飞行器坠毁),因此要求最高。
B 级软件:失效会导致严重事故,影响飞行器的控制或乘客安全。
C 级软件:失效会对系统功能产生一定影响,但不会导致严重事故。
D 级软件:失效对飞行安全的影响较小。
E 级软件:失效对飞行安全没有影响,因此开发和验证要求最低。
软件等级是通过系统安全性评估确定的,与硬件的失效情况分类相似。系统安全性评估分析软件失效对航空器系统整体安全性的影响,然后根据失效的严重性划分软件等级。然而,软件不同于硬件,它无法通过统计手段分配失效率。由于软件的失效大多源于设计缺陷,无法像硬件故障那样通过时间和环境因素预测,因此软件的等级更依赖于其对系统功能和安全性的潜在影响。
对于复杂的分区软件系统,系统中的每个模块可能会以不同的方式影响整体功能。某些模块的失效可能对系统功能影响较小,而其他模块的失效可能会导致系统崩溃。因此,软件等级的确定必须结合模块间的相互作用和系统安全性评估结果。
第6章 软件审查概述
在确定审定基础的阶段,通过对系统需求的分配和对系统安全性的评估等过程,系统分配给软件的功能以及软件的等级就确定了。由此,便进入到了对软件的具体开发和审查阶段。以下各条简要说明了在软件开发和审查的整个阶段中,软件的各个生存周期过程及其相互关系,以及软件审查的基本流程和方法等。
6.1 软件审查与软件生命周期过程
软件审查是实现型号/系统审定目标不可缺少的环节之一。如图6-1所示,软件审查出自于型号/系统审查过程,最后又回到并结束于型号/系统审查的过程之中。软件生存周期过程包括:软件计划过程、软件开发过程和贯穿于这两个过程之中的软件综合过程。同时,软件开发过程被进一步细划为软件需求过程、软件设计过程、软件编码过程和软件集成过程一它们构成了软件产品开发的主线。而软件合成过程则被细划为软件验证过程、软件配置管理过程、软件质量保证过程和软件审定联络过程。其中,软件验证过程构成了软件审查的主线。
这些过程之间的基本关系如图6-2所示。
软件生命周期的每一个过程都必须经过详细的审查。根据DO-178B/DO-178C的要求,软件生命周期分为以下几个主要阶段:
软件计划过程:软件计划阶段制定详细的开发和验证计划,包括质量保证、配置管理、审查流程等内容。计划阶段的主要任务是确保项目的所有目标、资源和时间表合理安排。
软件开发过程:开发过程包括需求分析、设计、编码和集成。这一阶段的重点在于确保软件的功能和安全需求被完整捕获,并在每个环节中得到实现。
软件综合过程:软件综合过程主要包括软件验证、配置管理、质量保证和审定联络。每个综合过程都需要经过详细的验证,以确保开发过程的输出符合适航标准。
6.2 软件审查的基本流程和方法
软件审查的基本流程和方法依据DO-178B/DO-178C的附录A确定,审查重点包括以下几个方面:
软件审定计划的审查:审查人员需要确认软件开发计划是否合理,符合适航性要求,并能确保开发过程中的每一步都能够被验证和追踪。
开发过程的符合性审查:包括对需求分析、设计、编码和测试各环节的审查。特别是在高安全等级的软件中,审查人员需要确保所有功能和安全性需求都能被验证。
工具鉴定文档的审查:在开发过程中使用的自动化工具(如代码生成器和测试工具)也需要经过审查,确保它们不会引入额外的错误或风险。
验证过程的审查:包括检查验证计划、测试用例、测试结果、覆盖率分析等,确保软件经过充分的测试,并且所有功能需求都能被验证。
具体如下:
软件生存周期过程的特殊性决定了在确保软件产品的安全性(可靠性)入、可追踪性、可验证性和可维护性的过程中软件审查方法的特点。如图6-3所示,软件审查的基本流程和方法是依据在型号/系统的审定基础中所确定的软件等级,按DO-178B/ED-12B附件A(按软件等级确定的过程目标及输出)表A-1至表A-10中所确定的该软件等级在每一软件生存周期过程中的目标要求和符合性方法,逐项审查申请人对这些目标要求的符合性输出,而这些输出就是D0-178B/ED-12B第11章中所述的20种“软件生存周期文档”(必要时,还包括第12.2节中有关软件开发工具和验证工具的鉴定文档等)。其中,软件审定计划、软件配置索引和软件实施概要是适航部门在审查并批准申请人的符合性方法和符合性证据时最基本的三份文档。必须注意的是,DO-178B/ED-12B所给出的目标要求和符合性方法都是原则性的,申请人应针对其欲开发软件的实际情况并运用软件工程的专业知识将这些目标要求和符合性方法具体化。同时,为了便于表明对审定基础中有关软件要求的符合性,申请人还应参照上述表A-1~A-10的内容编制具体的“软件符合性检查单”并提交给审查人员。审查人员首先应注意审查软件审定计刻,批准申请人所采用的符合性方法,然后审查软件开发过程和合成过程的符合性情况,其重点是评审和分析软件的可追踪性和可验证性,检查各项验证测试(必要时也包括试飞)的规程(程序)和结果以及对软件验证结果的覆盖分析等内容,以确保申请人:
①落实了对该软件的安全性考虑;②加载了该软件的系统/设备符合安全性要求;③能够持续地生产出经批准的软件产品。
6.3 对替代方法的说明
在航空软件开发和审查中,DO-178B和DO-178C允许在特定情况下使用替代方法,如形式化方法或模型驱动开发,以确保开发过程高效且符合安全性要求。使用替代方法的前提是必须证明其在达到标准安全性和可靠性要求方面与传统方法相当。这些替代方法主要用于解决传统开发方法难以覆盖的复杂场景,如复杂系统建模和验证。
常见的替代方法:
形式化方法:通过数学模型证明软件的行为与需求一致,这种方法对高安全等级(如A、B等级)软件尤为适用,因为其能够确保软件设计和实现的正确性。
模型驱动开发:通过自动化工具将高层次的软件模型转换为代码,减少手工编码带来的潜在错误。DO-331中详细说明了如何通过模型驱动的开发方式确保软件安全性和功能性符合性 。
多版本编程:通过开发多个独立的版本并引入投票机制来决定最终的输出结果,减少单个版本的错误影响。
审查替代方法时,审查人员需要确保:
替代方法的实施过程符合安全性要求。
所有产生的输出都能通过验证和测试达到与传统方法一致的置信度。
6.4 对采用先前开发软件的要求
根据DO-178B第12.1节,使用先前开发的软件时,需要满足特定的审查要求。先前开发的软件在新环境中的复用可能会涉及修改、配置管理和软件质量保证等方面的问题 。
先前开发软件的常见场景:
软件修改:如果先前开发的软件需要进行修改,则必须重新评估系统安全性,并根据新的软件等级进行验证和测试。具体操作包括:
重新分析需求和设计变化。
评估更改对软件整体结构和功能的影响。
针对受影响的区域进行回归测试。
航空器安装发生改变:在新的航空器上安装先前开发的软件时,需要重新进行系统安全评估,以确保新的环境不会引入额外的风险。
开发环境或应用环境的变化:如果软件在新的开发环境或不同硬件平台上运行,必须对其行为进行重新评估和验证。特别是当硬件或编译器更改时,之前的测试结果可能不再适用,需要重新验证目标代码 。
软件配置管理和质量保证也需要针对新的应用环境进行调整,以确保软件在新的环境中依然保持可追踪性和一致性。开发团队必须提供详细的文档,描述软件从旧应用到新应用的迁移过程,并确保所有配置项的版本管理和变更控制都得到妥善处理。
6.5 软件开发工具和验证工具的鉴定
根据DO-178B第12.2节的规定,任何用于省略、缩减或自动化软件开发生命周期中关键步骤的软件工具都必须经过严格的鉴定 。工具的鉴定确保其不会引入错误,并能提供与手工过程相同甚至更高的置信度。
工具鉴定的类型:
软件开发工具:如自动代码生成器、集成开发环境(IDE)和编译器等。因为这些工具直接影响最终的软件产品,它们必须经过详细的鉴定,确保其生成的代码没有引入新的错误。如果生成的代码不再经过第6章中的验证步骤,则工具的鉴定变得至关重要 。
软件验证工具:这些工具用于自动化测试和分析,但不会直接影响软件的功能。例如,静态分析工具、测试框架等。如果这些工具的输出未经过其他手段验证,则必须对其进行鉴定。
工具鉴定的流程:
工具分类:首先确定工具是开发工具还是验证工具,进而确定其鉴定要求。
验证工具的输出:对于开发工具,鉴定的目标是确保工具生成的代码没有引入错误,而验证工具则要求确保其能够正确识别软件中的缺陷。
文档编制:所有工具鉴定过程需要有详细的文档支持,包括工具的功能说明、使用场景、验证结果等。这些文档将作为审查人员评估工具是否符合DO-178B/DO-178C要求的依据。
在审查工具时,审查人员需要特别关注工具的可靠性和输出一致性,确保其能够在相同的输入条件下产生一致的输出,避免因工具的不确定性引发软件缺陷。
第7章 软件委任工程代表(DER)的工作和基本职责
在软件审查过程中,软件委任工程代表(简称,软件DER)的工作就是通过评估软件的各生存周期过程及其符合性文档来确定软件是否符合审定基础的要求。具体内容包括:
评估软件计划、软件产品的具体标准和规程的符合性:
评估这些计划和规程在开发过程、验证过程、配置管理过程和质量保证过程中的实施情况;
协助DMIR确保质保系统对软件过程的监督和评审;
监督申请人解决在软件过程中和软件产品中所暴露出的符合性问题;
向适航部门提供软件的符合性证据等;
软件DER的基本职责包括:
监督软件过程及其输出对DO-178B/ED-12B的符合性;
参与评估与安全性相关的软件问题:
参与准备“软件实施概要”文档;
参与协调同适航部门的联络工作;
将适航部门所关心的软件问题通知申请人的供应商;
准备有关软件审查的支持性材料(如DER的工作记录、评审记录和试验观察记录等)并提交给适航部门;
参与准备关于系统的审定计划;
及时报告适航部门在教件过程中和软件产品中所发现的设计问题以及对这些问题的评估意见和纠正措施的建议等。
第8章 软件质量保证(SQA)
鉴于软件产品的特性,DO-178BED-12B尤其强调了对软件设计及设计更改阶段的质量保证要求。
在软件质量保证的过程中,申请人的质保系统应按照经批准的软件质量保证计划,通过监督和评审软件的各生存周期过程及其输出来确保:在各过程中的缺陷或问题均能够被查出并得以评估、跟踪和解决,以及各软件过程的目标得以满足。由此,确保软件产品符合审定基础的要求。软件质量保证的工作目标包括:
从组织机构上和过程管理的程序上确保软件的开发过程和合成过程(包括对软件的更改)符合经批准的软件计划、具体标准和规程等;
在进/出每一个软件生存周期过程时确保满足相应的过程转换准则;
确保软件产品的符合性评审得以进行;
确保可持续地生产出经批准的软件产品。
软件质量保证活动与其它的质量保证活动一样,应具有相应的独立性和权威性,并应在其它软件生存周期过程的活动中发挥主动性。软件质量保证过程的具体工作详见D0-178B/ED-12B的8.2和8.3节。
第9章 附录 - DO-178B/ED-12B
附录部分通常提供了软件等级对应的具体审查目标和输出要求,详细说明了每个软件等级在各个开发阶段的审查细节。附录还包括常见问题解答和审查过程中需要重点关注的内容,帮助开发团队更好地准备符合性审查材料。
内容来源
名称:机载系统和设备合格审定中的软件审查方法文号:AC-21-2