Logotipo de Parasoft

¡Vea la prueba de Parasoft C/C++ en acción!

Programe una demostración personalizada.

Solicitar una demo

WEBINAR

Mira MISRA C 2025: Todo lo que necesitas saber

Vea a Michal Rozenau, miembro colaborador del equipo de desarrollo de MISRA C 2025, brindar una mirada en profundidad a MISRA C 2025.

MISRA C 2025: Qué hay de nuevo y por qué es importante

MISRA C 2025 se basa en MISRA C 2023 al perfeccionar las directrices de cumplimiento, eliminar normas obsoletas y fortalecer las mejores prácticas. Está diseñado para reducir los costos operativos de cumplimiento al eliminar normas obsoletas y reforzar... mejores prácticas de codificaciónEn particular, la seguridad funcional se mejora mediante reglas más estrictas sobre uniones y punteros que reducen los riesgos de comportamiento indefinido. Además, los desarrolladores ahora tienen mayor flexibilidad para finalizar cláusulas de cambio, como return y continue, lo que les permite agilizar las auditorías y evitar retrasos.

Esta sesión también muestra cómo Parasoft C/C++test proporciona una prueba completa Cumplimiento de MISRA Cobertura y se integra a la perfección en los flujos de trabajo de desarrollo modernos. El soporte inicial total de Parasoft para MISRA C 100 garantiza que los equipos puedan adoptar los estándares de codificación más recientes de inmediato, evitando costosas repeticiones de trabajo y manteniéndose a la vanguardia en mercados competitivos.

Puntos clave

  • Mejoras y nuevas directrices
  • Cambios necesarios en la pólizas
  • Aclaración sobre el código generado por IA
  • Integración sencilla en el pipeline de CI/CD
  • Aplicación de IA/ML patentados para la productividad

Comprensión del análisis estático y el desplazamiento a la izquierda

Análisis estático Es un método para detectar errores y problemas de código examinando el código fuente sin ejecutar la aplicación. Se realiza en las primeras etapas del proceso de desarrollo, lo que a menudo se denomina "desplazamiento a la izquierda". Esto es importante porque solucionar los problemas con antelación es mucho más económico y sencillo que solucionarlos más adelante, especialmente después del lanzamiento del software.

Además de detectar errores, el análisis estático ayuda a mantener altos los estándares de codificación. Esto es fundamental para sistemas donde la seguridad es crucial, como en dispositivos médicos, aeronaves y vehículos autónomos. Estándares como MISRA y AUTOSAR C++ 14 contribuyen a ello. No todas las herramientas son totalmente compatibles con estos estándares, pero el análisis estático de Parasoft sí lo es.

El análisis estático también es automatizado y repetible. No es necesario crear casos de prueba específicos como para las pruebas unitarias o de integración. Además, proporciona información sobre métricas de calidad del código, como la complejidad y la legibilidad, lo que ayuda a los desarrolladores a mejorar su rendimiento general.

La evolución de MISRA C: de 2023 a 2025

MISRA C es un conjunto popular de directrices de codificación para aplicaciones críticas de seguridad, utilizado en los sectores de la automoción, el ferrocarril, la aeroespacial, la defensa, la medicina y la automatización industrial. La última versión... MISRA C 2025, es una actualización incremental de MISRA C 2023.

He aquí un vistazo a los cambios:

  • Nuevas reglas: Se han introducido 4 nuevas reglas.
  • Reglas eliminadas: Se han eliminado 2 reglas, pero sus prácticas están cubiertas por otras pautas.
  • Regla no aplicada: 1 regla ha sido deshabilitada por defecto.
  • Reglas renumeradas: Se han trasladado 3 reglas a secciones más adecuadas.
  • Reglas modificadas: Se han actualizado 13 reglas.

En total, MISRA C 2025 contiene 224 directrices.

Conclusiones clave de las actualizaciones de MISRA C 2025

  • Nuevas restricciones: Se prohíben las definiciones provisionales en encabezados y declaraciones externas en archivos fuente. La comparación implícita de punteros a valores nulos ahora está explícitamente prohibida. También se prohíbe la lectura de un miembro de unión que no se haya definido, con la excepción de los miembros de arrays de caracteres.
  • Conversión de puntero a entero: La conversión de punteros a tipos enteros ahora requiere un procedimiento de desviación explícito, y la regla 11.4 cambió de ser consultiva a obligatoria.
  • Incluir guardias: El requisito de tener identificadores de macroprotección únicos en todo un proyecto ahora es más claro.
  • Restricciones relajadas: Ya no se requieren definiciones de tipo específicas para tipos de punto flotante. Permite conversiones entre punteros y tipos enteros, y la conversión inmediata de la memoria recién asignada a un tipo de puntero específico.
  • Declaraciones de cambio: Las cláusulas de conmutación ahora se pueden terminar con declaraciones distintas a break, como llamar abort o utilizando return.
  • Declaraciones de devolución múltiples: La regla contra múltiples declaraciones de retorno en una función ahora no se aplica de manera predeterminada, lo que reconoce que los lenguajes estructurados como C no violan el principio de punto único de salida.

MISRA y código generado por IA

Para garantizar la calidad del código, MISRA trata el código generado por IA como si estuviera escrito a mano, por lo que se aplican las mismas pautas de codificación de MISRA.