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

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

3天内不再提示

Ficosa International的Polyspace使用历程

MATLAB 来源:MATLAB 2023-10-26 10:16 次阅读

在当今汽车的安全性、可靠性和效率方面,汽车软件系统发挥着日益重要的作用。为此,工程团队需要专注于为高级驾驶辅助系统 (ADAS)、电池管理系统、稳定性控制和类似应用提供创新功能。此外,他们往往还需要证明符合 ISO 26262 和 ISO/SAE 21434 标准,以此确保满足功能安全和网络安全要求。

作为一家全球顶级汽车供应商,Ficosa International 致力于开发适用于各种汽车应用的软件。在为确保符合行业标准而建立的流程中,Ficosa的工程团队使用 Polyspace 静态代码分析产品来衡量并提升代码质量,并将这一做法贯穿于从实现到单元验证、集成和鉴定测试的整个开发生命周期。Ficosa 使用的许多流程都是依据一组明确定义的软件质量目标建立的。这些目标围绕着正在开发的组件的关键程度和项目的成熟度而制定。软件质量目标清楚地阐明了 Polyspace 静态分析度量和编码规范(如 MISRA 和 CERT/CWE)的验收标准和阈值,以及运行时错误。目前,在每次进行软件更改时,都会自动评估并强制实施这些标准,作为 Ficosa 软件开发过程不可或缺的一部分。因此,最大限度地减少了代码质量评估的主观性,同时提高了整个软件开发生命周期的总体开发效率。

本文的作者是来自 Ficosa International 的 David Tuset、Roger Marsal 和 Yolanda Guasch。

Ficosa International 的 Polyspace 使用历程

2010 年,我们开始研究一个与车辆通信模块有关的项目。作为此项目要求的一部分,我们需要利用静态分析来检查 MISRA C 合规性。经过对市售静态分析产品的全面评估,我们根据性能和成本选择了 Polyspace 产品。与此同时,我们还在逐步实现 Automotive SPICE (ASPICE) 能力 2 级合规性。我们开始使用 Polyspace Bug Finder 和 Polyspace Code Prover 进行静态分析,从而为软件单元验证活动提供支持。

很快,我们的工程团队就开始涉足 ADAS 的其他领域。客户也开始要求我们实现 ASPICE 3 级合规性。我们同时启动了多个项目,这些项目要求满足 ISO 26262 的功能安全标准。不久之后,我们的一些客户又开始要求进行 CERT C 合规性和常见弱点枚举 (CWE) 检查,以确保符合安全编码标准;具体到我们的情况,客户要求实现 ISO 21434 合规性。

Polyspace 产品的静态分析有助于我们支持上述各项活动。但从组织的角度来看,我们缺乏全面的计划,以明确定义我们为了确保软件质量要在开发和验证活动中应用的方法、度量和阈值以及何时应用它们。没有形式化框架的一个缺点是,开发团队往往要等到项目后期才执行静态分析,而不是从项目伊始就系统化地执行这项分析。如果仅在开发后期进行静态分析,其结果就可想而知了,一定包含许多违规行为,其中包括诸多不符合 MISRA C 的情况。由于在发现问题时项目已经接近尾声,因此,很难通过解决这些问题或证明其合理性来纠正如此多的违规行为。

为了应对这一挑战,我们抓住了 2020 年新冠疫情期间活跃项目相对空闲的机会,全面分析了 Ficosa International 如何才能在可靠性、功能安全和网络安全等多个方面最好地实现我们自己和客户的软件质量目标。根据此分析,我们最终得到了一个软件质量目标文档。目前,我们的团队使用该文档作为确保所交付软件系统质量的依据。

制定软件质量目标

在 Ficosa International 的软件质量目标文档中,我们定义了在验证我们开发的软件时应用的各种度量和规则,包括基于 MISRA C、CERT C 和 CWE 的度量和规则,以及圈复杂度和注释密度等软件度量。

接下来,我们根据所验证代码的来源、正在开发的组件的类型及其成熟度定义了应用度量和规则的标准。

例如,我们针对第三方代码、现有代码、自动生成的代码和手写代码制定了不同的目标(图 1)。对于第三方代码,我们只运行强制性的 MISRA C 规则,并假设这种类型的代码附带其他补充性质量证据。而对于现有代码、生成的代码和手写代码,我们强制实施越来越严格的规则集。根据 ISO 26262 的汽车安全完整性等级 (ASIL) 要求和 ISO/SAE 21434 的网络安全保证等级 (CAL) 要求,在功能安全或网络安全方面受到影响的组件需要进行额外的检查。

wKgZomU5zIuAY-1MAADH4YIvAO0519.jpg

图 1. Ficosa International 依据软件组件类型和项目成熟度制定的软件质量目标。

此外,在组件从早期开发(“A 样本”)阶段推进到中间阶段、倒数第二个阶段和最终交付(“B、C 和 D 样本”)阶段的过程中,我们还针对项目制定了更严格的目标。最后,对于集成的代码,我们提供了单独的精简规则和度量子集。也就是说,一组通过各自软件质量目标评估的组件现在可合并成为更大系统的一部分。这在简化复杂软件的静态分析时非常有用。

将静态分析集成到开发工作流中

我们一旦拥有明确定义软件质量目标的文档,就开始使用 Polyspace 静态分析产品将这些目标集成到我们的开发和测试过程中(图 2)。

wKgZomU5zIuAAVrEAAFTFpFgTY8419.jpg

图 2. Ficosa International 的代码实现和验证过程,突出显示静态分析和后续更正。

在此过程中,一个关键步骤是当开发人员在 Git(我们的版本控制系统)中发出拉取请求时引入了一项要求。为了使拉取请求获得批准,除了单元测试之外,代码还必须成功通过 Polyspace Bug Finder 和 Polyspace Code Prover 的某些静态分析检查。这一变化使得我们的整体工作流得到了显著改进,因为它建立了一种门控机制,确保开发人员只有在根据适当的软件质量目标彻底验证其代码,并解决静态分析期间识别的任何问题或证明其合理性后,才能成功完成拉取请求。

在软件集成和测试期间,可以使用 Polyspace 产品根据集成代码的软件质量目标执行静态分析。在此阶段,仅基于系统级规则和集成的软件度量,对 MISRA C 合规性和代码度量执行检查。特别要关注集成级别的问题,如共享内存的并发访问、死代码和关键运行时错误。

随着我们越来越多地使用 Jenkins 来实现持续集成和持续交付 (CI/CD),Polyspace 产品支持的频繁静态分析和持续反馈将发挥重要作用,可确保我们的开发人员和集成商使源代码与软件质量目标保持一致。此外,通过 Polyspace Access Web 界面,我们所有团队都可以访问集中式数据库以查看静态代码分析结果,并监控达成交付质量目标水平的进度。

开发功能安全产品时,需要考虑的另一个重要方面是,确保软件工具不会在大规模生产软件中引入错误或无法检测到错误。ISO 26262 明确要求执行软件工具鉴定过程,以根据工具的关键程度对其进行分类,并执行必要的活动来鉴定他们。对于 Polyspace 产品,MathWorks 提供了一个认证套件,可为 Bug Finder 和 Code Prover 提供项目级支持。

主要优势

在根据 ISO 26262 和 ISO/SAE 21434 标准开发和交付汽车软件的过程中,使用 Polyspace 产品依据明确定义的软件质量目标为 Ficosa International 带来了诸多重要优势。

其中一个优势是,我们开发人员的开发技能得到了稳步提升。Polyspace 产品能够提供详细及时的反馈,帮助开发人员了解如何以及从何处提高代码质量,进而使他们成长为更娴熟也更高效的开发人员。事实上,根据我们现有的流程,开发人员别无选择,只能了解并解决通过静态分析检测到的问题。

我们获得的另一个重要优势是,简化了 ASPICE 和 ISO 26262 的外部质量评估或其他客户要求的合规性目标。如今,我们所做的一切都更容易得到验证,因为我们有明确的软件质量目标以及相应的报告(例如说明 MISRA 和 CERT 偏差问题比过去少得多),还有证明我们的代码已通过客观质量标准的证据。

也许,最重要的是,Polyspace 产品帮助我们实现了质量目标,同时提高了效率(或至少保持效率不变)。通常,当治理团队或类似小组更改他们所在组织的开发工作流,引入我们所实施的那种早期验证步骤时,开发人员会将他们需要完成的附加步骤视为额外工作。然而,借助 Polyspace 产品,我们能够向我们的团队证明,为每个拉取请求执行静态分析的附加步骤实际上提高了他们的效率。他们可以更高效、更自信地交付高质量的代码,因为通过静态分析发现的所有错误都在开发过程的早期阶段得到了消除,而不必等到最后阶段才来解决。

除了 Ficosa 法可赛,还有很多其他的主机厂和供应商也在使用 Polyspace,来解决他们软件质量的问题。

例如沃尔沃汽车也选用了 Polyspace 来提高开发速度和软件质量,并通过了 ISO 26262 和 ISO/SAE 21434 的认证。

审核编辑:汤梓红

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

    关注

    41

    文章

    497

    浏览量

    33302
  • 代码
    +关注

    关注

    30

    文章

    4748

    浏览量

    68349
  • adas
    +关注

    关注

    309

    文章

    2168

    浏览量

    208524

原文标题:通过 Polyspace 静态代码分析简化 ASPICE、ISO 26262 和 ISO/SAE 21434 的遵循过程

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    International Technology roadm

    International Technology roadmap for semiconductors技术文档 这资料还是不错的,可供参考学习哦!
    发表于 03-25 01:18 25次下载

    The New Personal International

    The New Personal International Language Esata:1. Introduction to Esata2. Esata Alphabet
    发表于 04-11 08:53 44次下载

    CSA International正式在中国成立首家测试认证

    CSA International正式在中国成立首家测试认证实验室 测试和认证机构CSA International日前正式宣布在广州成立其在中国的首个实验室。随着该新的实验室的成立,CSA International
    发表于 11-13 09:57 1569次阅读

    国际电信联盟(ITU,International Telec

    国际电信联盟(ITU,International Telecommunication Union) 国际电信联盟,简称电联,是国际电信领域的标准化组织,也是世界各国政府的电信主管部门之间协调电信事务方
    发表于 10-01 12:46 2565次阅读

    CSA International发布电动工具新标准

    CSA International发布电动工具新标准 CSA International于近期发布了电动工具标准CAN/CSA-C22.2 No. 71.2-2008。新标准将于2010年7月31日开始生效。    此次更新主要影响
    发表于 12-29 08:32 1143次阅读

    VoIP术语-International Telecommu

    VoIP术语-International Telecommunication Union   英文原义:International Telecommunication Union 中文释义:国际电信联盟标准
    发表于 02-24 10:48 826次阅读

    什么是Digi International

    什么是Digi International     Digi International 通过开发可靠的产品和技术,将本地或远
    发表于 05-02 16:21 793次阅读

    International Rectifier的电源管理技术解决方案

    e络盟致力为中国的设计工程师和维修工程师提供更多International Rectifier的先进的产品和最具有创意的解决方案。
    发表于 09-11 15:07 15次下载

    关于Polyspace应用到基于模型的设计可能性分析和介绍

    对于 Sum 模块的 MISRA 10.3 违规是为了满足 S 函数接口要求有意为之,我们可以在验证之前就在模型中添加说明,相应的说明会反应到 Polyspace 的结果中(左图),避免了重复
    的头像 发表于 09-16 15:31 3254次阅读
    关于<b class='flag-5'>Polyspace</b>应用到基于模型的设计可能性分析和介绍

    关于Polyspace静态分析的具体作用分析和介绍

    这一范围还体现在市场上各种各样的静态分析工具。例如,一些高级编译器有一个采用静态分析形式的内置语法检查器。在该范围的另一端是基于形式化方法的工具,如可以执行语义分析的 Polyspace,为您的软件提供详细的运行行为。
    的头像 发表于 09-18 15:41 8467次阅读
    关于<b class='flag-5'>Polyspace</b>静态分析的具体作用分析和介绍

    ADSP-BF70xBlackfin-FintionSecurities International Processor硬件参考

    ADSP-BF70xBlackfin-FintionSecurities International Processor硬件参考
    发表于 05-18 21:38 4次下载
    ADSP-BF70xBlackfin-FintionSecurities <b class='flag-5'>International</b> Processor硬件参考

    AD717x Eval International软件

    AD717x Eval International软件
    发表于 05-30 18:06 7次下载
    AD717x Eval <b class='flag-5'>International</b>软件

    STM32的ADC学习历程

    STM32的ADC学习历程(电源技术期刊影响因子)- STM32的ADC学习历程 STM32基础学习历程,帮助想学好STM32的网友!
    发表于 09-27 12:32 70次下载
    STM32的ADC学习<b class='flag-5'>历程</b>

    舜宇车载光学荣获“FICOSA最佳供应商”大奖

    舜宇车载光学荣获“FICOSA最佳供应商” 大奖 近日,FICOSA在中国江苏太仓举办了2022年度最佳供应商大奖颁奖典礼。基于2022年度的各量产供方综合表现,舜宇车载光学被评为最佳供应商并授予
    的头像 发表于 11-29 12:39 1349次阅读

    如何使用Polyspace Code Prover来统计堆栈

    前一篇文章介绍了堆栈和内存的一些背景知识。本次介绍如何使用 Polyspace Code Prover来统计堆栈,如何使用这些数据为软件优化服务。
    的头像 发表于 07-25 14:06 448次阅读
    如何使用<b class='flag-5'>Polyspace</b> Code Prover来统计堆栈