SEooC在安全关键系统中重用嵌入式软件

描述

  避免重新发明轮子是高效产品开发的关键部分。在嵌入式编程中,这个概念始于受信任的库,并通过面向对象编程和 Java 等概念得到增强,这使我们能够创建当今的复杂系统。

  安全标准也促进了经过验证的软件元素的重用,尽管这带来了复杂的挑战。将一些元素引入到一个项目中,而这些元素在其开发中应用的严格程度并不相同,这将不可避免地导致弱点。因此,安全标准规定了验证这些组件用于安全项目的方法。

  但对效率的追求可能会导致在安全关键系统中不起作用的概念。定制现货 (COTS) 软件是许多行业以多种方式使用的术语,虽然它在工业安全方面具有非常特定的含义,但它可以成为走捷径的借口,这在安全方面是不可接受的项目。一个系统的强弱取决于它的弱点。未知谱系/出处软件 (SOUP) 用于医疗标准 IEC 62304,但在安全项目中没有“未知”的东西是有充分理由的。你可以测试它到死,但最终,当它的起源未知时,你如何在未来几年保持它?

  脱离上下文定义安全元素

  在汽车领域,ISO 26262-10 中定义的安全元素脱离上下文 (SEooC) 是在车辆中使用最初不是为该特定项目设计的组件的方法。

  SEooC 这个术语有点笨拙,但它清楚地定义了问题。您集成到系统中的所有软件库都是“脱离上下文”有效开发的:它们旨在提供特定功能,而不知道如何在目标系统中使用它。“元素”表示这是具有特定功能范围的单元或模块;“安全”表示该模块是在一组安全要求的背景下专门开发的。

  有两种基本类型的软件 SEooC(源自 ISO 26262-10-9):

  经验证的使用方法。这种类型的软件使用经过验证的参数(和其他措施)来验证 COTS 组件是否达到指定的安全级别。ISO 26262-8-14 指定了如何实现这一点,但在软件环境中仍有很多值得商榷的地方。可观察错误的概念是关键——记录产品的使用情况,以便可以可靠地记录和汇总所有错误,从而准确了解软件的可靠性。这需要考虑到具体的配置中。这些结果与目标项目的相关性是复杂的,因为在用于建立软件可靠性的现场测试用例中,几乎可以肯定安全项目具有不同的配置和工作环境。您能否相信未按照安全标准开发的软件能够可靠地报告所有错误?

  ISO 26262-6 方法。在汽车安全系统中开发软件元素的标准方法在用于开发道路车辆功能安全的 ISO 26262 标准的第 6 节中定义。它源自标准前面部分中定义的目标系统的完整 V 模型开发,并且本身就是一个 V 模型。因为该元素是脱离上下文开发的(即,不是从目标项目的安全计划中得出的),所以必须采用额外的措施。主要的附加措施是创建一组 SEooC 旨在工作的假设。这些假设必须在集成期间在目标平台上得到验证。

  完整的软件生命周期维护

  这是任何安全项目开发的关键部分:响应开发期间或发布后提出的问题的能力。一旦项目成熟,就需要一种方法来在问题出现时可靠地修改项目。ISO 26262-6 方法的一个关键优势是可以进行全面而准确的影响分析,并正确实施由此产生的更改,因为所有标准工件都是在设计、实施和测试之间具有可追溯性的情况下创建的。

  您从项目发布中获得的时间和人员越多,就越有必要拥有可用的人工制品及其相关流程,以便安全地进行更改。这种方法确保了未来的可维护性。

  跨行业重用

  在多个行业中使用许多嵌入式组件具有实际意义。例如,存储数据的文件系统或通信数据的网络堆栈不是特定于行业的,理想情况下,从一个项目中获得的好处应该在新项目中得到利用,无论它们应用于哪个行业。从软件的角度来看,跨不同行业开发软件的安全要求大体相似,但根据所需的安全级别,其严格程度不同。采用根据 ISO 26262-6 开发的 SEooC 方法为跨标准映射人工制品提供了良好的基础(例如,工业功能安全的 IEC 61508 或医疗设备的 IEC 62304)。

  为 SEooC 定义 ASIL 级别

  在所有安全标准中,都规定了安全级别。目标系统中故障的影响越严重,用于实施和验证软件的定义措施就越严格。

  为 SEooC 选择汽车安全完整性等级 (ASIL) 可能会有问题。简单的答案是始终开发到最高 ASIL 级别 (ASIL D),以便与任何项目集成而无需进行重大返工,并且跨行业标准的映射也更容易。不利的一面是,它使那些 SEooC 比那些开发到较低 ASIL 的 SEooC 贵得多。

  如何获取 SEooC

  SEooC 可以提供嵌入式组件作为安全系统的核心部分并降低成本。然而,设计用于在安全环境中重用的嵌入式组件不可避免地很复杂,因此必须深思熟虑地采购这些组件。为了获得最佳结果,他们需要在能够满足安全产品生命周期需求的环境中进行开发。

  最佳实践是开发一个完整的 ISO 26262 第 6 节安全元素,其中包含准备重用的假设和测试用例。这需要由项目管理系统支持,该系统允许每个客户使用在半独立项目中维护的 SEooC,以便整个软件维护生命周期可以独立应用于该项目。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分