tipos programa parametros lenguaje funciones ejemplos comandos codigos c++ c formal-methods safety-critical

programa - Métodos formales en C++ para software crítico de seguridad.



programa c++ (1)

Una compañía médica con la que trabajo utiliza Coverity y Coverity para verificar el código en busca de posibles problemas, como fugas de recursos y el uso del puntero sin inicializar.

Sin embargo, estas son herramientas y no son estándar para el código crítico de seguridad.

Lo que he visto es que MISRA ha estado trabajando en un estándar para C ++. Comenzaron con C, y comenzaron a trabajar en C ++ hace aproximadamente 5 años. Un gran problema es que el estándar MISRA para C ++, por ejemplo, dice que no debe usar plantillas. Eso realmente limita lo que puedes hacer en C ++. Sin embargo, puedes usar ese documento como punto de partida. Es posible que desee limitar las plantillas utilizadas en su software a lo que viene en la biblioteca estándar y aumentar, por ejemplo.

Tenga en cuenta que Klocwork tiene una extensión para MISRA C ++ .

Sin embargo, una de las mejores formas de escribir un buen código es probarlo con pruebas unitarias y pruebas de integración. He encontrado con años que esto es mucho más confiable que la mayoría de los otros métodos.

En cuanto a C, C tiene un buen soporte para los métodos formales que se pueden usar en el código (frama-c, VCC, verifast). C ++ no parece tener nada comparable por lo que puedo decir.

¿Qué métodos formales están disponibles para razonar sobre software crítico para la seguridad escrito en C ++?