作者:BENJAMIN BROSGOL,GREG GICCA
新的航空电子软件安全标准DO-178C及其补充软件工具认证注意事项(DO-330)澄清并扩展了DO-178B中提供的工具认证指南。通过基于敏捷开发原则的方法,可以加快在整个系统演变过程中维护资格就绪工具的挑战。
如果航空电子软件认证所需的手动活动被自动化工具减少或取代,并且未经验证就使用该活动的输出,则开发人员需要限定该工具:证明该工具至少与它所取代的活动一样值得信赖。新的航空电子安全标准DO-178C及其配套的软件工具资格考虑因素DO-330澄清并扩展了DO-178B中定义的工具认证指南。以下讨论总结了新指南,并介绍了在存在系统维护和更改的情况下维护资格就绪工具的敏捷方法。
DO-178B 中的工具认证
DO-178B[1]是一种商业航空电子软件安全标准,在军用飞机开发中越来越多地使用,通常被称为“基于过程”:它指定了软件生命周期过程的相互关联的集合,每个过程都包含一组活动和相关目标。这些活动产生的输出(“项目”)由证书颁发机构人员进行评估,以查看它们是否符合 DO-178B 中指定的目标。适用的目标(以及适用的活动和工件)取决于软件级别:软件在确保飞机和乘员安全方面的关键程度。级别范围从E(无效)到A(软件故障可能直接导致飞机损失,从而导致生命损失)。
一些 DO-178B 活动是可自动化的,该标准描述了如果在未经验证的情况下使用工具的输出,如何信任工具来替换或减少手动活动。它定义了两个类别:开发工具和验证工具。开发工具生成的输出是机载软件的一部分,因此有可能引入错误。例如,从基于模型的设计生成源代码的代码生成器。验证工具不能引入任何错误,但可能无法检测到错误,例如,静态分析工具标识在初始化之前读取的变量。
除其他数据项外,工具认证还需要准备工具操作要求 (TOR)。TOR 定义了工具的各种属性,包括其功能、安装、使用和操作环境。
当且仅当该工具生成的软件不受与其他机载软件相同的适用认证目标时,开发工具才需要合格。开发工具认证需要满足与机载软件认证相同的目标。(尽管编译器和链接器是开发工具,但不需要资格认证,因为它们的输出是通过其他 DO-178B 活动验证的。事实上,资格认证将是昂贵的,并且不会简化实现其他目标(如可追溯性分析)的工作。
鉴定验证工具比鉴定开发工具要简单得多,部分原因是DO-178B的理念是鼓励使用此类工具来自动化涉及重复性和基于规则的任务的活动,自动化工具比人工更好地执行这些活动。验证工具的资格基本上包括证明该工具符合其 TOR。
DO-178C 中的工具认证
工具认证一直是DO-178B认证的重要组成部分,但在实践中出现了几个问题:
验证工具和开发工具之间的区别并不总是直截了当的。此外,验证工具可能不是简单地自动化特定活动;它的输出也可用于消除或减少一些其他活动。
要求开发工具满足与机载软件相同的目标是不必要的限制,因为操作环境不同。例如,航空电子软件中的无限递归可能会耗尽堆栈存储并导致系统故障;开发工具中的相同行为不会带来安全隐患。
虽然工具鉴定本质上是在特定系统背景下进行的,但如果资格认证要求加快在现有系统的修改版本上重复使用合格的工具,那将是有益的。
所有这些问题都在DO-178C或其随附的补充DO-330,软件工具资格考虑中得到解决。
“开发工具”和“核查工具”已被三个标准所取代。标准 1 对应于开发工具(即,该工具可以将错误插入机载软件)。标准 2 对应于可能无法检测到错误的验证工具,用于减少其他开发或验证活动。标准 3 对应于可能无法检测到错误但不用于减少其他开发或验证活动的验证工具。
工具所需的资格 - 其工具资格级别(TQL) - 取决于其标准和工具所用软件的软件级别,如表1所示。TQL 的范围从 5(相当于 DO-178B 验证工具)到 1(类似于软件级别 A)。与每个 TQL 关联的活动和数据项在单独的文档 DO-330 中定义,其结构与 DO-178C 相同。DO-330 为工具鉴定提供全面的指导,并识别机载软件和工具的执行环境之间的差异。
DO-330 明确涵盖了以前合格的工具的使用。简而言之,只要开发人员能够通过更改影响分析证明该工具仍符合其 TQL 要求,即使操作环境或工具本身发生任何变化,就可以重复使用以前合格的工具。
表 1:工具所需的资格 - 其工具资格级别(TQL) - 取决于其标准和使用该工具的软件的软件级别。
重复使用以前合格的工具
重用或轻松调整先前合格工具的认证工件的能力尤为重要。DO-178B在这里没有提供明确的指导。对于任何新系统,或者如果工具或环境的任何方面发生更改,则需要对一个系统执行的工具鉴定重复。因此,项目经理通常会在早期阶段选择操作环境和工具,然后提交这些版本,以便在最终系统认证期间可以使用工具认证工件。这有时被称为“大冻结”,即环境和工具被提前锁定。
DO-330 解决了这些问题。针对以前限定的工具的特定指南允许重用限定项目,只要没有任何更改会影响限定。它考虑三种情况:
无需更改即可重用以前合格的工具 – 例如,当工具用于相关项目或现有项目的多个阶段时。开发人员需要确定计划中的方法和基本原理。
对工具操作环境的更改 – 开发人员需要更新一个或多个计划,但大部分原始资格项目可以按原样重复使用。只有与操作环境相关的更新项目需要由证书颁发机构进行评审。
对工具本身的更改 – 必须提供更改影响分析,但工具重新认证的成本仍然较低,基本上只需要与已更改或受更改影响的方面相关的活动。关键是能够准确地确定和指定发生了什么变化,这些变化会影响什么,或者更重要的是,它们不会影响什么。
敏捷重新认证
根据 DO-178B 或 DO-178C 和 DO-330 中的刀具认证指南,可以定义一个框架来跟踪刀具或其操作环境的更改,并自动启动由更改触发的工具认证活动。
例如,可以根据 DO-178C 和 DO-330 中定义的目标初步开发和鉴定工具。可以在配置管理 (CM) 系统中捕获和维护完整的工具开发生命周期过程及其关联的鉴定工件,包括所有依赖关系(参见图 1)。核心 CM 系统允许对重现刀具鉴定所需的所有鉴定数据和工件进行基本重新生成。完整的结构允许影响和变化分析。通过这种方式,可以跟踪工具操作环境或工具本身的任何变化。最重要的是,该结构将清楚地显示工具的哪些部分及其工件不受影响,因此可以保持不变并保持其先前的审查和资格准备。
图1:可以在配置管理 (CM) 系统中捕获和维护完整的工具开发生命周期过程及其关联的认证工件,包括所有依赖关系。
过渡到新的资格指南
DO-178B实际上是DO-178C的一个子集。因此,项目可以继续为 DO-178B 制定的开发和认证计划,同时将所选部分迁移到 DO-178C,例如,利用 DO-330 中的工具认证目标。因此,现有的DO-178B项目和新的DO-178C项目都可以利用DO-330在工具鉴定和重新认证方面的具有成本效益的指导。
AdaCore 资格计算机框架是上一节中描述的敏捷技术的正在进行中实现,支持这种方法。它可以帮助项目避免“大冻结”,以便工具和开发环境能够顺利发展。当更新可用时,工具可能会升级到较新版本,而不会丢失系统认证所需的工具资格。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !