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

    文章

    359

    浏览量

    22798
  • 应用程序
    +关注

    关注

    38

    文章

    3346

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析MAX17007/MAX17008:双路可组合QPWM图形核心控制器

    深入解析MAX17007/MAX17008:双路可组合QPWM图形核心控制器 在笔记本电脑等电池供电系统的电源设计中,高效、稳定且灵活的电源控制器至关重要。MAX17007/MAX17008 作为双
    的头像 发表于 04-02 15:30 119次阅读

    MCU分布式模块化自动测量单元可扩展且兼容

    在结构物安全监测领域,MCU分布式模块化自动测量单元以其卓越的可扩展性与广泛的兼容,为各类工程监测项目提供了灵活高效的解决方案。这一设计理念不仅降低了系统部署的复杂,更在长期运行中
    的头像 发表于 04-01 15:46 223次阅读
    MCU分布式<b class='flag-5'>模块化</b>自动测量单元可扩展且兼容

    即插即用 DAQ 设备与模块化 DAQ 系统的概念解析

    数据采集(DAQ)技术在科研教育、工业制造、环境监测、生命科学、能源和通讯等领域,扮演着至关重要的角色。即插即用的DAQ设备和模块化DAQ系统因其各自独特的优势而备受青睐。本文将探讨即插即用DAQ
    的头像 发表于 03-30 17:31 145次阅读
    即插即用 DAQ 设备与<b class='flag-5'>模块化</b> DAQ 系统的概念解析

    MD320系列 模块化矢量变频器用户手册

    电子发烧友网站提供《MD320系列 模块化矢量变频器用户手册.pdf》资料免费下载
    发表于 03-30 16:36 0次下载

    MAX17007/MAX17008:笔记本电脑的双路可组合QPWM图形核心控制器

    MAX17007/MAX17008:笔记本电脑的双路可组合QPWM图形核心控制器 一、引言 在笔记本电脑的电源管理领域,高效、稳定且灵活的电源控制器至关重要。MAX17007/MAX17008作为
    的头像 发表于 03-17 14:00 248次阅读

    MAX17007A/MAX17007B/MAX17008:笔记本电脑的双路可组合QPWM图形核心控制器

    MAX17007A/MAX17007B/MAX17008:笔记本电脑的双路可组合QPWM图形核心控制器 一、引言 在电池供电系统的电源设计中,高效、稳定且灵活的电源控制器至关重要。MAX17007A
    的头像 发表于 03-12 15:35 278次阅读

    模块化UPS电源:重塑关键供电系统的未来架构

    UPS,凭借其革命的设计理念,正成为构建下一代关键电力基础设施的核心选择,它不仅是一台设备,更是一套面向未来的可成长、高可用的供电解决方案。一、核心革新:模块化设计
    的头像 发表于 01-16 08:47 411次阅读
    <b class='flag-5'>模块化</b>UPS电源:重塑<b class='flag-5'>关键</b>供电系统的未来架构

    MCU自动测量单元的分布式模块化设计有什么用?

    在大坝、桥梁等大型结构物的安全监测中,数据采集系统的架构设计至关重要。MCU自动测量单元所采用的“分布式模块化”理念,正是应对这类复杂工程挑战的核心方案。它不仅是一种技术趋势,更是提升监测系统灵活性
    的头像 发表于 01-14 14:56 285次阅读
    MCU自动测量单元的分布式<b class='flag-5'>模块化</b>设计有什么用?

    鼎阳科技推PXIe模块化示波器、PXIe模块化矢量网络分析仪产品组合,构建新一代模块化软件定义的测试平台

    新品发布 2026年1月12日,鼎阳科技全新推出PXIe模块化示波器、PXIe模块化矢量网络分析仪和USB矢量网络分析仪三款新品,并同步推出三款PXIe嵌入式控制器与PXIe混合机箱。基于模块化架构
    的头像 发表于 01-14 10:35 6.6w次阅读
    鼎阳科技推PXIe<b class='flag-5'>模块化</b>示波器、PXIe<b class='flag-5'>模块化</b>矢量网络分析仪产品<b class='flag-5'>组合</b>,构建新一代<b class='flag-5'>模块化</b>、<b class='flag-5'>软件</b>定义的测试平台

    嵌入式软件开发的 10 个技巧分享

    限制使用全局变量的数量。在C语言中可用外部关键字标识这些变量。 技巧 4:充分利用模块化特性 无论问哪一名工程师,项目的哪部分最有可能延迟交付并超出预算,答案都是软件软件往往是复
    发表于 12-25 06:04

    Amphenol RJE1D系列模块化插孔:高性能网络连接的理想选择

    Amphenol RJE1D系列模块化插孔:高性能网络连接的理想选择 在当今高速发展的网络通信领域,可靠且高性能的连接器对于确保数据的稳定传输至关重要。Amphenol的RJE1D系列模块化
    的头像 发表于 12-10 09:35 514次阅读

    模块化开关电源组合特性测试研究

    模块化开关电源产品被广泛应用于工业自动控制、高可靠设备、科研设备、半导体制冷制热、工控设备、通讯设备、电力设备、仪器仪表、医疗设备等领域。中电华星作为国内目前销售规模较大的模块化电源供应商,在
    的头像 发表于 11-19 14:31 1.2w次阅读
    <b class='flag-5'>模块化</b>开关电源<b class='flag-5'>组合</b>特性测试研究

    芯科科技推出Simplicity Ecosystem软件开发套件

    Silicon Labs(芯科科技)今日在深圳盛大举办享誉业界的Works With开发者大会,同时宣布推出Simplicity Ecosystem软件开发套件,它不仅是下一代模块化软件开发
    的头像 发表于 10-27 16:45 1576次阅读

    电源模块的短路保护如何通过自动测试软件完成测试

    当今电力电子领域,电源模块的可靠至关重要,短路保护作为其关键特性,需通过精确的自动测试
    的头像 发表于 09-03 19:10 1012次阅读
    电源<b class='flag-5'>模块</b>的短路保护如何通过自动<b class='flag-5'>化</b>测试<b class='flag-5'>软件</b>完成测试

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

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