开发符合 MISRA C 的软件需要规划、文档和工具,以最好地执行指南的意图和精神。MISRA C:2023 修正案 2012 (AMD4) 和 MISRA C:4 的 2023 版用于开发安全和安保关键型软件系统,解决了 C 标准的最新两个版本(ISO/IEC 9899:2011 和 2018)中引入的并发功能,并将所有 MISRA C 版本合并到一个文档中。
MISRA C不是编码风格指南,而是一套规则和指令,用于最小化或消除已知危险的编码实践。鉴于对安全和安保关键型系统的这种重要性,AMD4 和 MISRA C:2023 版本使开发人员有机会重新审视其流程,以改进对有效和高效地证明 MISRA 合规性的支持。
MISRA 合规性:2020 指南指出,合规性声明必须确定:
使用规范的软件开发过程
应用的确切准则
执法方法的有效性
与准则的任何偏差程度
在项目之外开发的任何软件组件的状态
新老制造商必须确定如何在不牺牲开发速度的情况下将MISRA规则和指令集成到其流程中。
图 1:来自 LDRA 工具套件的 MISRA 合规性报告示例(来源:LDRA)
MISRA C:2023合规框架
MISRA C 指南没有指定实现合规性的确切流程和工具,因为记录此类要求会不公平地限制嵌入式开发团队可以做的事情。相反,MISRA 合规性:2020 指南提供了“在声明 MISRA 合规性时软件开发过程中必须涵盖的内容”的定义,作为捕获最重要活动的框架。
MISRA 指南涵盖了许多流程和合规性要点。在这里,我们将介绍需要更多思考的活动,这些活动将对希望简化合规性工作的开发团队产生最大的影响。
定义规范的软件开发流程
MISRA 合规性:2020 指南指出,“MISRA 指南旨在在记录的软件开发过程框架内使用”,并且“遵守 MISRA 指南必须是代码开发阶段的一个组成部分,在提交代码以供审查或单元测试之前,需要满足合规性要求。
将合规性集成到新的或现有的开发流程中,首先要定义如何在生命周期的每一步验证 MISRA 规则和指令。这些活动会影响开发人员培训、合规性项目的创建和管理,以及合规性测试的运行方式。
开发团队应以足够全面的方式正式记录这些过程,以确保在开发生命周期的每个阶段完全实现所有软件需求,并且测试活动涵盖所有代码。此文档必须包括驱动开发任务的所有决策,包括培训、报告、开发工具链的选择和运行时配置。
在 MISRA C:2023 上培训开发人员
通过正式培训,开发人员可以花更少的时间试图自己了解MISRA合规性,而将更多的时间花在交付代码上。MISRA 合规性:2020 指南建议包含有关嵌入式应用程序使用 C 语言的概念以及安全和安保关键系统的细节。
除了代码之外,开发人员还应该了解他们选择的开发环境(从编译器工具链到静态分析工具)的安全和安保影响。随着 MISRA C:2023 包含针对复杂多线程系统的新指南,刷新开发人员对他们的选择如何影响 MISRA 指南的执行以及如何减少在并发应用程序中引入违规的可能性的理解变得更加重要。
静态分析工具为课堂培训提供了有效的补充,因为它们在课程结束后很长时间内提供了全面和实时的微学习形式。静态分析结果在编写代码时强化了 MISRA 规则和指令,在新手和有经验的开发人员的头脑中保持恒定的意识水平。
建立偏差流程
MISRA合规性要求代码供应商和收购方就规则和指令的解释达成一致。这种一致性至关重要,因为合规性的概念因项目而异,具体取决于它们各自的要求和特征。部分一致性来自建立一个管理偏离指南的流程,其中证明合规性可能不切实际或不可能遵循某个项目。
MISRA 合规性:2020 指南将偏差记录定义为包含以下信息:
违反的准则
对可以接受违规行为的情况的描述
需要偏差的原因
解释上下文和语言问题的背景信息
一套要求,包括相关的风险评估程序和预防措施
使用自动化支持合规性活动
自动化减少或消除了MISRA合规活动中的手动工作和人为错误的可能性。为了从自动化工具中获得最大收益,开发团队应按照 MISRA 合规性:2020 指南的建议,在软件生命周期的早期部署它们:
“一个试图在其生命周期后期检查合规性的项目可能会花费大量时间重新编码、重新审查和重新测试,而且这种返工很容易意外引入缺陷。”
为了简化合规性测试,MISRA C:2012引入了两种规则分类:
对于分析技术可以提供结论性验证的规则,可决定
无法确定无法验证保证的情况
将可判定规则与MISRA的建议配对,使用静态分析进行验证,可以为自动化合规性测试提供高效而全面的解决方案。
MISRA C:2023 合规性始于坚实的战略
将 MISRA 合规性集成到开发流程中有助于改善代码的安全性。这种集成需要了解 MISRA C 规则和指令,团队将这些规则和指令嵌入到开发生命周期的各个方面。
从培训到自动化工具,MISRA合规流程应使开发人员能够最大限度地减少已知危险的编码实践,并支持代码供应商和收购方之间的期望一致。预先采用这些目标的组织将比那些等待的组织更有可能获得MISRA合规性的成功。
审核编辑:郭婷
-
amd
+关注
关注
25文章
5440浏览量
133921 -
嵌入式
+关注
关注
5068文章
19013浏览量
303098 -
自动化
+关注
关注
29文章
5510浏览量
79086
发布评论请先 登录
相关推荐
评论