0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么模块化可组合性对当今的安全关键型软件开发至关重要

星星科技指导员 ? 来源:嵌入式计算设计 ? 作者:Mark Pitchford ? 2022-11-16 16:51 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

模块化和可组合性是软件中的流行语,适用于从企业计算到裸机应用程序的所有内容。对于安全关键型嵌入式系统,这些概念通过允许针对不同用例以不同的组合使用现有软件组件来定义软件重用的目标。

虽然正式模块化开发的大部分推动力来自航空航天和国防领域,但它提供的好处与安全关键部门相关。了解模块化可组合性为何以及如何融入安全关键型开发,是利用软件重用优势同时满足当今功能安全标准的苛刻目标的关键。

模块化可组合性的概述和挑战

模块化解决了设计具有明确定义的接口的子系统(模块)的问题,这些接口可用于各种上下文。可组合性要求模块之间的关系,以便它们可以以解决多个问题的方式组合在一起。特温特大学的Ansgar Fehnker对这两个概念如何协同工作给出了这样的定义:

“如果一种设计方法有利于生产软件元素,那么它就满足了模块化可组合性,这些软件元素可以自由地相互组合以产生新系统,可能与最初开发它们的环境完全不同。

简而言之,模块化可组合性意味着跨系统的可移植性和可重用性,就像乐高积木从街景到航天器一样。

像乐高一样,模块化有一个实际的限制。乐高是一个特定品牌的建筑玩具,不能轻易与斯蒂克尔积木或麦卡诺连接。这同样适用于模块化软件,因为一旦组件投入生产,在不同的环境中重用它通常会受到约束和警告。

一个真实而臭名昭著的例子是阿丽亚娜5发射失败。根据欧洲航天局的报告,损失“是由于惯性参考系统软件的规格和设计错误。在阿丽亚娜5号开发计划期间进行的广泛审查和测试不包括对惯性参考系统或整个飞行控制系统的充分分析和测试,这些系统本可以检测到潜在的故障。虽然该软件实际上与阿丽亚娜4中成功使用的软件相同,但它受到新环境环境的影响。

安全关键标准如何反映模块化可组合性

许多行业标准都引用了与安全可重用性相关的过程和目标,如以下各节所述。

软件项目隔离:IEC 62304:2006+AMD1:2015

国际电工委员会 (IEC) 62304:2006+AMD1:2015 医疗器械标准允许将软件项目分开,目的是将尽可能少的系统放置在安全关键性较高的类别中(例如,C 类软件“在考虑软件系统外部的风险控制措施后,可能导致危险情况,从而导致不可接受的风险, 由此可能造成的伤害是死亡或重伤“):

“软件架构应促进安全操作所需的软件项的隔离,并应描述用于确保有效隔离这些软件项的方法”

图 1 说明了安全影响较少的软件项目(第 X 项)和具有高安全关键影响的软件项(Y 项和 Z 项)的分离。由于存在高度安全的关键项目,整个软件系统被指定为C类。

6362c3f7a9f1c-Fig1+for+LDRA+ModComp+article.jpg

图 1:根据 IEC 62304:2006 +AMD1:2015 对软件项目进行分区的示例 图 B.18(来源:IEC)

提高开发效率:FAA AC 20-148

美国联邦航空管理局 (FAA) 咨询通告 AC 20-148 为可重用软件组件 (RSC) 的开发提供了指导,例如软件库、操作系统通信协议。RSC 与其他组件的不同之处在于,所需的文档和指南远远超出了通常提供的软件工件。

咨询通告有明确的指导方针,以确保每个接口(包括应用程序代码和目标硬件)都由开发人员以 RSC 提供商规定的方式完全定义。这种高度指定的模块化意味着RSC在很大程度上可以被视为“黑匣子”,因为无论目标应用程序的目的如何,RSC都可以被假定为以明确定义的方式运行。

这意味着在符合 DO-178 标准的系统中部署 RSC 可以节省大量认证时间。如果没有 RSC,FAA 要求每次重用时重新生成、重新提交和重新审查认证工件,包括对现有安装进行的软件更改。

促进重用:开放集团未来机载能力环境

开放集团未来机载能力环境 (FACE) 联盟通过可负担性、速度、敏捷性和卓越改进目标,建立了一条在航空中重用软件的途径。FACE技术战略和标准概述了几个关键原则,包括:

建立一个软件环境,使FACE应用程序从一架国防部飞机或作战平台重新利用到另一架国防部飞机或作战平台,只需最少的软件修订。

采用增强软件可移植性的设计原则 - 例如,为每个便携式 FACE 应用程序提供一组通用接口。

限制使用某些 API 调用并要求其他调用的编码标准 - 例如,遵守 POSIX API 的特定部分,以确保 FACE 可移植性单元 (UoP) 的功能签名在语法上正确,并强制正确使用关键语言结构。

自动化在实现模块化可组合性目标方面的价值

无论标准或方法如何,模块化可组合性原则往往会在时间和金钱方面对安全关键型开发过程产生巨大影响。乍一看,这似乎是一个昂贵的提议,但如今的自动化工具(可重用组件可用于各种工具链)简化了验证的不同方面,如图 2 所示。

6362c4af0fef7-Fig2+for+LDRAModComp+article.jpg

图 2:支持确认重用代码适用性的自动化需求可追溯性和回归测试示例(来源:LDRA)

需求可追溯性

软件生命周期中劳动密集型和易出错元素的自动化在最大限度地减少模块化可组合性的开发影响方面发挥着关键作用。识别需求和证明履行可能是一个苛刻的过程,特别是当功能需求必须与 DO-178 等标准一起验证时。

自动化可追溯性可缓解潜在的项目管理难题。通过自动化,可以在初始模块开发和不同环境中的每次未来部署之间使用相同的机制来管理和跟踪需求。模块需求的确认可以通过自动化和链接回归测试来实现,包括单元测试、针对编码标准的静态分析检查和其他措施。

单元测试

尽管它们的统称,称为“单元测试”工具的自动化工具通常同时支持单元测试和集成测试。这些工具的价值在于使用相同的机制来测试单个可重用单元和多个集成单元作为一个整体。测试本身不需要更改函数是单独测试还是作为调用树的顶部进行测试。在前一种情况下,自动生成的存根可以处理超出范围的代码。

这种自动化方法有助于将模块集成到初始项目和未来项目中。每当在新环境中调用模块时,例如部署到不同的目标硬件时,都可以简单地回归原始测试。通过在新项目的上下文中调用模块的 API,可以验证其适用性。

为您的项目带来模块化可组合性

可重用性是安全关键型应用程序开发人员的圣杯,但模块化可组合性为实现其目标提供了一种可行、现实的机制。虽然有关于软件重用的恐怖故事和许多讨论模块化和可组合性原则的标准,但自动化为任何项目提供了安全重用的有效途径。

自动化减少了在不同环境中管理、跟踪和测试组件重用所需的时间和精力。生命周期平台(如LDRA 工具套件)可确保重用模块适合其环境,具有从需求可追溯性到静态分析再到单元和集成测试的功能。这些功能使安全和安保关键软件开发团队能够根据严格的行业标准获得可重复使用组件的认证和批准。

审核编辑:郭婷

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

    关注

    0

    文章

    341

    浏览量

    22122
  • 应用程序
    +关注

    关注

    38

    文章

    3339

    浏览量

    59232
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙5开发宝藏案例分享---模块化设计案例分享

    鸿蒙模块化开发大揭秘!官方隐藏案例实战指南 大家好呀! 最近在HarmonyOS文档里挖到一个宝藏——官方其实藏了大量模块化设计案例!很多小伙伴可能没注意到,今天我就带大家手把手拆解这些黄金实践,附
    发表于 06-12 16:17

    MCU-40自动测量是如何实现分布式模块化?

    在岩土工程、大型基建和能源设施的安全监测中,传统的集中式数据采集系统往往面临布线复杂、扩展性差、容错率低等挑战。南京峟思工程仪器有限公司推出的MCU-40自动测量系统,凭借其创新的分布式模块化
    的头像 发表于 04-10 14:03 ?329次阅读
    MCU-40<b class='flag-5'>型</b>自动测量是如何实现分布式<b class='flag-5'>模块化</b>?

    MCU分布式模块化自动测量单元的核心功能是什么?

    在岩土工程与大型结构安全监测领域,精准、实时的数据采集与分析至关重要。南京峟思研发的MCU-40型模块化自动测量单元,凭借其智能、高可靠
    的头像 发表于 04-09 14:25 ?300次阅读
    MCU分布式<b class='flag-5'>模块化</b>自动测量单元的核心功能是什么?

    开源安全领航者!华为云 CodeArts Governance 构建更安全软件开发生命周期

    成分分析专业版已开启公测。 随着开源软件广泛应用,颠覆技术不断涌现,如何在软件开发全流程中保障开源安全,成为企业面对的重要挑战。 根据研究
    的头像 发表于 02-12 16:50 ?1893次阅读
    开源<b class='flag-5'>安全</b>领航者!华为云 CodeArts Governance 构建更<b class='flag-5'>安全</b>的<b class='flag-5'>软件开发</b>生命周期

    重磅新品|CMW系列模块化连接器

    模块化连接器产生背景随着人们不断追求产品功能的多样和极致性能,产品不断的更新迭代,连接器作为测试物与被测设备之间的桥梁,测试需求也随着功能的增加不断变化。在过去,传统的连接器虽然在一定程度上满足了
    的头像 发表于 02-06 09:14 ?1214次阅读
    重磅新品|CMW系列<b class='flag-5'>模块化</b>连接器

    嵌入式软件开发符合ISO 26262 功能安全标准

    ISO 26262 功能安全标准的要求可能非常具有挑战,尤其是当您的汽车系统中的某些部件相比其他部件具有更高的安全风险时。开发者如何在整个软件开发
    发表于 01-15 12:04 ?3次下载

    如何提高嵌入式代码质量?

    嵌入式代码的质量是至关重要的。本文将探讨如何通过有效的开发方法和工具来提高嵌入式代码的质量,以确保系统的可靠和可维护。 理解嵌入式系统的特点和需求 嵌入式系统与传统的桌面应用
    发表于 01-15 10:48

    DevSecOps自动安全关键软件开发中的实践、Helix QAC&amp;amp; Klocwork等SAST工具应用

    DevSecOps自动旨在通过在软件开发生命周期的各个阶段集成安全流程,使用自动化工具和最佳实践来简化开发安全和运营。实现DevSecO
    的头像 发表于 01-03 16:05 ?530次阅读
    DevSecOps自动<b class='flag-5'>化</b>在<b class='flag-5'>安全</b><b class='flag-5'>关键</b><b class='flag-5'>型</b><b class='flag-5'>软件开发</b>中的实践、Helix QAC&amp;amp; Klocwork等SAST工具应用

    模块化示波器的技术原理和应用

    测信号的波形。 信号处理: 模块化示波器内部包含信号输入、信号处理和图像显示三个部分。信号输入部分负责接收被测信号,信号处理部分对信号进行放大、滤波等处理,以确保信号的准确和稳定性。 实时示波器以及
    发表于 12-11 14:20

    模块化仪器的技术原理和应用场景

    。 二、应用场景 自动测试系统:模块化仪器在自动测试系统中发挥着重要作用,可以适应多种测试需求,提高测试效率和准确。它们通常由
    发表于 11-28 15:09

    模块化点焊电源技术:开启高效、灵活的焊接新纪元

    当今工业生产领域,尤其是在汽车制造、航空航天、精密仪器及装备制造等行业中,高效、灵活的焊接技术扮演着至关重要的角色。模块化点焊电源技术的兴起,无疑为这些行业开辟了一条全新的道路,开启了焊接工
    的头像 发表于 11-19 09:08 ?608次阅读
    <b class='flag-5'>模块化</b>点焊电源技术:开启高效、灵活的焊接新纪元

    模块化插座接线方法有哪些

    扩展或改变插座的功能。以下是一些模块化插座接线方法的概述,以及一些安全和安装的注意事项。 1. 基本接线方法 模块化插座的基本接线方法通常包括以下几个步骤: 1.1 断开电源 在开始接线之前,确保断开电源,以防止触电事故。 1.
    的头像 发表于 10-18 09:50 ?2091次阅读

    EMI滤波器的作用和重要性

    滤波器的应用更是至关重要。这些领域中的电子设备往往承载着生命安全或国家安全重要使命,任何微小的电磁干扰都可能引发严重的后果。因此,通过安装EMI滤波器来保障电磁环境的
    发表于 09-10 14:28

    研华工控机的模块化设计,复杂应用场景的灵活解决方案!

    工控机模块化设计是工业自动和嵌入式系统领域的重要趋势。灵活、可扩展的设计,使得用户可以根据实际需求,选择合适的模块进行组合,形成高度定制
    的头像 发表于 09-07 09:58 ?810次阅读
    研华工控机的<b class='flag-5'>模块化</b>设计,复杂应用场景的灵活解决方案!

    无刷电机驱动芯片方案的选择至关重要

    当今科技飞速发展的时代,无刷电机因其高效、低噪、长寿命等显著优势,在众多领域得到了广泛应用,从工业自动到智能家居,从电动汽车到航空航天。而在无刷电机系统中,驱动芯片方案的选择至关重要,它直接影响
    的头像 发表于 09-05 17:28 ?1367次阅读