软件开发编码规范文档_车载嵌入式软件如何声明符合MISRA语言规范

20200922 作者更新:
感谢各位的关注,研究最后已经有了结论,研究过程和资料以及最后的结论请参考发布在百度文库上的PPT
https://wenku.baidu.com/view/06cfc5ca4a35eefdc8d376eeaeaad1f34793115c.html
如需研究收集的标准,请私信获得网盘链接
----
需要解答如下问题方可声称符合:
1.使用哪个C/C++语言版本进行项目开发?
2.使用哪个静态代码检查工具进行检查代码合规性?
3.检查工具应该如何部署到开发流程进行检查才算合规?
4.使用哪个版本的MISRA指南才算合规?
5.ISO26262对于软件开发的要求是什么?

1ac8fb25454517a8d6d48a54648e2316.png
编码规范差异比较研究结论

1e63b0eb1322b007ac4b3f08b47ea4bc.png
静态代码检查工具选择标准

fcb45fdc07e30e5901a5cbb5b8a0af5b.png
合规实施风险及应对措施

​​

如下为研究开始时逐步展开的针对上面的问题的思路,仅供各位思考如何合规,感谢关注。

参考国内某汽车企业的软件规范,对于嵌入式车载软件的编码静态静态检查做如下要求:

10.1.1 静态测试要求
10.9.2.1 修复代码静态扫描问题
供应商应对所负责的所有代码进行静态扫描,并修复所有发现的缺陷。无法修复的缺陷需要经过公司同意。
C/C++ 代码需要遵守MISRA C/C++规范,公司使用QAC 和Coverity 进行扫描。
其他语言和工具,需满足至少以下异常被包含:
栈溢出
访问越界
资源泄露
空指针
未初始化
数值溢出
10.9.2.2 Code Metric 要 求
Code Metric 由特定工具(QAC、Coverity、Logiscope 等)生成,公司不指定特定工具。
以下Code Metric 需要被测试并且跟踪:
圈复杂度(Cyclomatic Complexity “v(G)”), 不高于 15.
注释密度(Comment Density, COMF), 0.2 到 1
路径数量(Numbers of PATHs, PATH),1 到 80.
10.1.2 可靠性测试要求
供应商需针对软件可靠性要求和测试方案进行可靠性测试,并提供测试数据和结果。

最后的结论

百度了一圈,只发现如下相关介绍。

https://jingyan.baidu.com/article/ff42efa92242f1c19e2202f8.html​jingyan.baidu.com

某汽车企业的规范里提及的QAC工具的官网介绍如下:

https://www.perforce.com/products/helix-qac​www.perforce.com

Coverity工具的官网介绍如下:

https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html#compliance​www.synopsys.com

Misra官网出版的2020版符合性指南给出了较为完整的体系流程要求:

MISRA Compliance 2020: Achieving compliance with MISRA coding guidelines, ISBN 978-906400-26-2 (PDF), February 2020.

In order for a claim of MISRA compliance to have meaning, it is necessary to establish: Use of a disciplined software development process;
使用规范的软件开发流程; Exactly which guidelines are being applied;
明确使用哪份指南 The effectiveness of the enforcement methods;
执行方法的有效性 The extent of any deviations from the guidelines;
偏离指导原则的程度; The status of any software components developed outside of the project.
项目外开发的任何软件组件的状态
如第5.1节所述,在项目开始时制定了一个指导性的重新分类计划,作为详细说明如何将指南应用于项目的本机代码的意向声明。此外,还可制定额外的GRP,以适应由采用的规范组成的项目组成部分。
在项目结束时,应编制一份指南合规摘要(GCS),以记录项目总体要求的最终合规水平。GCS包括指南中每个指南的条目,并记录其MISRA类别允许的遵守程度。
指南的合规性等级如下:
1. 合规-项目中没有违反指南的情况;
2. 偏差-项目中存在违反指南的情况,这些都有偏差支持;
3. 违规-项目中存在未得到偏差支持的违反指南的行为;
4. 不合格-没有检查是否符合指南。

待更新,持续研究中。。。

如何采用Git+gerrit+jenkins实现持续集成?

访问Coverity 和 QAC 的官网,均宣称提供Jenkins插件。Jenkins的设置参考官方介绍文档:

https://plugins.jenkins.io/misra-compliance-report-generator/​plugins.jenkins.io

Jenkins的官方展示显示使用了PC-Lint工具,官网链接如下

https://www.gimpel.com/

efe5b983e1eb2003d5c4d435611f09ea.png
PC-Lint的官方手册说明并不100%支持所有规则的检查

Misra官网的连接提供了能够进行语言规范检查的工具提供商

https://www.misra.org.uk/Links/tabid/63/Default.aspx​www.misra.org.uk

Axivion

BUGSENG

Cosmic Software

Cppcheck

Esterel Technologies

Gimpel Software

GrammaTech

Green Hills Software

Helix QAC (formerly from Programming Research Ltd)

Hitex UK (embedded tools reseller)

IAR Systems

Klocwork

LDRA Ltd

Metrowerks

Oakwood Computing

Parasoft

Phaedrus Systems Ltd (embedded tools reseller)

Polyspace

RistanCASE

Scientific Toolworks Inc

SonarSource

Soft4Soft

Sparrow

Suresoft Technologies Inc

TASKING Software Tools

Telelogic

大名鼎鼎的VS CODE插件里只能搜索到一个插件如下

C/C++test - Visual Studio Marketplace​marketplace.visualstudio.com
567ea570256ed630951f64297cf5fa26.png

Misra C 各版本差异对比表

5c098c3d66bb8bde45a1fda73fda7c85.png

最新的C语言版本为2018版,https://www.iso.org/standard/74528.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值