用于安全关键软件的C ++中的形式方法

时间:2014-07-22 23:54:28

标签: c++ c formal-methods safety-critical

考虑到C,C对可以在代码中使用的形式方法(frama-c,VCC,verifast)有很好的支持。就我所知,C ++似乎没有任何可比性。

有哪些正式方法可用于推理用C ++编写的安全关键软件?

1 个答案:

答案 0 :(得分:2)

我使用的医疗公司使用CoverityKlocwork检查代码是否存在资源泄漏和未初始化指针使用等可能出现的问题。

但是,这些是工具,而不是安全关键代码的标准。

我所看到的是MISRA一直致力于C ++标准。他们从C开始回归,并在大约5年前左右开始使用C ++。一个大问题是,例如,C ++的MISRA标准说你不应该使用模板。这真的限制了你在C ++中可以做的事情。但是,您可以将该文档用作起点。例如,您可能希望将软件中使用的模板限制为标准库中的模板和增强功能。

请注意,Klocwork具有MISRA C++的扩展名。

然而,编写优秀代码的最佳方法之一是使用单元测试和集成测试来测试它。多年来我发现这比大多数其他方法更可靠。