代码质量与安全 | 嵌入式开发中不得不说的编码标准——Barr-C

来自Barr Group的编码标准Barr-C能够减少嵌入式软件中的bug,并引入风格指南(stylistic guidelines),让维护、移植更简单。
引用
本文将讲述开发人员如何使用Barr-C:1018来检测用C语言编译的固件中的错误,以及它如何与MISRA结合使用。
引用
龙智作为DevSecOps研发安全运营一体化解决方案供应商、Perforce授权合作伙伴,持续关注代码质量与安全领域的动态与发展,为您提供功能安全和标准合规领先的静态代码分析解决方案与最佳实践参考。联系我们,立即了解C/C ++语言静态代码分析器Helix QAC如何帮您遵守Barr-C规则。

图片

什么是Barr-C?

Barr-C是由Barr Group开发的嵌入式C语言编码标准,致力于减少固件中的bug数量,同时让嵌入式软件的维护、移植更简单。

BARR-C:2018指南分为两大类:

  • 第一类:处理语言的子集,例如避免使用特定的关键字(例如“register”或“continue”)和使用类似函数的宏。
  • 第二类:与编程风格相关(例如缩进和命名约定)。

第一类中的某些规则被标记为“0bug...句号(Zero Bugs…Period.)”。遵守这些规则有助于在第一时间防止bug。

为什么Barr-C很重要?

即使已经使用了正确的工具来识别缺陷和合规性问题,开发嵌入式软件依旧充满着挑战。

BARR-C:2018定义了一种风格,主要是为了尽量减少编码错误。因此,BARR-C:2018可以被视为C语言子集的第一步,适用于各种项目。

对于没有使用编码标准和静态分析的情况来说,采用BARR-C:2018会带来显著的进步。

如何实现Barr-C合规性?

要想符合BARR-C:2018,您必须强制执行所有规则。

检测不合规的代码有几种方法,例如使用非正式的代码审查或自动扫描。每条规则中都描述了建议的实施方法。标准中的许多规则都可以使用静态分析工具来进行自动检查,比如Helix QAC。

Barr-C与MISRA有何关系?

设计关键安全系统的开发人员都知道,要严格遵循MISRA C:2012指南,因为符合MISRA C:2012能确保嵌入式代码安全可靠。

BARR-C:2018不是为了与MISRA C:2012竞争而设计的,实际上,它们相容且互补。例如,某个项目使用MISRA C:2012,MISRA C给出的建议是采用和执行一致的编码(coding)风格,这就可以使用BARR-C:2018的某部分编程(programming)风格来满足。

同样的,一些关键项目可以先遵循Barr-C,然后顺利过渡到MISRA C。

为什么要使用Helix QAC来满足Barr-C合规性?

因为Helix QAC可以帮助您轻松遵守编码标准和指南,包括MISRA、Barr-C和其他功能安全标准。

作者简介: 

图片

吉尔·布里顿(Jill Britton)
合规总监,Perforce

吉尔·布里顿在多个行业拥有超过30年的嵌入式软件经验。她曾担任电信、汽车、国防和教育软件等领域企业的软件工程师和管理者。吉尔现在是Perforce的合规总监,同时也是MISRA的委员会成员。吉尔拥有纽卡斯尔大学计算机科学和统计学学士学位,以及伦敦布鲁内尔大学计算机科学硕士学位。文章来源:https://bit.ly/3DVYxoA

分享DevSecOps解决方案最新动态,帮助您学习与使用Atlassian, Perforce, Whitesource, Cloudbees及龙智...

1 声望
1 粉丝
0 条评论
推荐阅读
研讨会回顾 | UI自动化测试现场演示
2022年12月6日,龙智与软件测试自动化“领导者”SmartBear联合举办了主题为“如何通过自动化测试实现降本、增效与提质”的在线研讨会。此次研讨会中,龙智技术工程师邱洁玉现场演示了使用UI自动化测试的过程,并简要...

龙智DevSecOps阅读 191

封面图
javascript变量命名规范
程序员三大难题:变量命名、缓存失效、循环边界。驼峰命名首先,和其他语言一样,大部分变量建议采用驼峰命名法。 {代码...} 而对于常量,使用大写字母和下划线来组合命名。 {代码...} 根据变量类型来命名普通变...

一丁目1阅读 344

好的代码的品味
1. 代码检测工具代码格式检测工具-CheckStyle代码规范检测工具-Sonarlint代码规范检测工具-Alibaba-Java-Coding-GuidelinesAlibabaJava开发规范PDF版代码规范检测工具-SonarQube2. 代码规范书籍Effective JavaAli...

async_wait1阅读 289

封面图
AST 初探深浅,代码还能这样玩?!
大家好,这里是 菜农曰,欢迎来到我的频道。我们今天的主题是 AST (抽象语法树)AST 听起来好像是个很新的东西,那么具体有什么用,好不好用就在这篇文章中找到答案吧~我们简单将这个词拆分抽象、语法、树,如果...

菜农曰阅读 542

封面图
遗留代码处理技巧与案例演示
本质是一种技术债务,产生原因一方面是业务原因:如业务本身场景繁多、流程复杂等;另一方面是技术原因:如代码不规范、设计不合理、祖传代码文档注释缺失等。它会影响我们的程序很多方面:如可读性、可修改性、...

京东云开发者1阅读 224

封面图
代码影响范围工具探索
2.研发提测完成后,测试进入测试后经常会向研发询问本次需求改动影响范围,以此来确定测试用例,以达到精准测试,提升整个需求的质量,缩短交付周期。

京东云开发者阅读 339

封面图
代码质量与安全 | 想在发布竞赛中胜出?Sonar来帮你
在追求快速迭代、持续发布的现在,如何在发布竞赛中胜出?唯有简化应用程序的发布。使用Sonar的“边写边清洁”方法,可以帮助组织在保持时间进度的同时推出更多的功能,并且免于遭受技术债务带来的后果。

龙智DevSecOps阅读 260

分享DevSecOps解决方案最新动态,帮助您学习与使用Atlassian, Perforce, Whitesource, Cloudbees及龙智...

1 声望
1 粉丝
宣传栏