Las pruebas impulsadas por IA ahora son más inteligentes. Descubra SOAtest 2025.1. >>

Cumplimiento de normas y estándares de codificación de AUTOSAR C++

C++ es un lenguaje complejo que requiere un gran esfuerzo para garantizar la previsibilidad y la seguridad. AUTOSAR (Automotive Open System Architecture) estableció los requisitos de AUTOSAR para C++14 para restringir su uso a construcciones predecibles. Cumpla con estos requisitos con las soluciones de Parasoft para minimizar los riesgos de seguridad.

¿Qué es AUTOSAR?

La Arquitectura de Sistema Abierto Automotriz (AUTOSAR) surge de una colaboración de desarrollo entre entidades del sector automotriz. Fundado en 2003, el grupo buscó establecer una arquitectura de software estandarizada y abierta en torno a las unidades de control electrónico (ECU) automotrices. También abarca semiconductores.

Un espacio para hacer una pausa, reflexionar y reconectarse en privado. AUTOSAR La alianza para el desarrollo buscó mejorar la eficacia y la disponibilidad de los requisitos de seguridad, la escalabilidad, la transferibilidad y la sostenibilidad a lo largo del ciclo de vida del producto. Si bien estos principios suelen asociarse con dispositivos médicos, también se aplican a ciertas tecnologías automotrices clasificadas como sistemas críticos para la seguridad. Productos como los airbags requieren tecnología que los active con precisión, mientras que sistemas como el control de motores requieren consistencia.

Un mayor software integrado en los automóviles también implica una gran cantidad de recopilación y procesamiento de datos en tiempo real. Diversos aspectos de AUTOSAR buscan satisfacer las necesidades de la electrónica y los componentes de software de los automóviles modernos.

Imagen de un vehículo autónomo circulando de noche hacia un paisaje urbano.

Desglose de las pautas de codificación AUTOSAR C++14

AUTOSAR Plataforma Clásica vs. AUTOSAR Adaptativo

Existen dos tipos de plataformas AUTOSAR: Adaptativa y Clásica. La Plataforma Clásica AUTOSAR no ofrece la flexibilidad ni la potencia de procesamiento de la Plataforma Adaptativa. La creciente complejidad de la tecnología automotriz exige reacciones más fáciles y respuestas más rápidas. Sin embargo, ambas plataformas no son rivales. Son compañeras de equipo. Ambas cumplen funciones diferentes en el ecosistema de diseño y desarrollo automotriz.

Comparación gráfica lado a lado de las plataformas AUTOSAR Classic y Adaptive

Plataforma Clásica AUTOSARPlataforma adaptable AUTOSAR
Ideal para una arquitectura de uno o varios núcleos y ECU profundamente integradas.Ideal para ECU más nuevas y diseñado para ejecutarse sobre arquitecturas HPC para aprovecharlas mejor.
Utiliza comunicación basada en señales con redes BUS como LIN o CAN.Utiliza comunicación basada en servicios con Ethernet.
Define un sistema operativo (SO).Define el contexto de ejecución, así como una interfaz de sistema operativo como PSE51.
Naturaleza estática con baja flexibilidad.Proporciona "dinámica planificada" durante la implementación de aplicaciones con integración flexible.
Los plazos son más apremiantes debido al procesamiento en tiempo real.Requisito suave en tiempo real.
Los ejemplos incluyen sistemas de frenado y control del motor.Los ejemplos incluyen procesamiento de datos de fusión de sensores y actualizaciones inalámbricas (actualizaciones OTA).

¿Qué es AUTOSAR C++14?

AUTOSAR C++14 es un estándar de codificación Para C++ versión 14 (ISO/IEC 14882:2014). También es un artefacto o uno de los resultados de la definición de la plataforma AUTOSAR Adaptativa, que proporciona especificaciones de interfaz para API y servicios. Esta sección de las directrices de codificación de AUTOSAR se actualizó originalmente. MISRA C++ 2008: un estándar de codificación obsoleto. Sin embargo, MISRA y AUTOSAR anunciaron su fusión en 2019 para apoyar la actualización a C++17, que se ha convertido en el lenguaje predeterminado para muchas soluciones electrónicas modernas de AUTOSAR. Estas directrices son tan robustas y optimizadas que cualquier industria que requiera programación embebida en C++ puede aplicarlas.

Reglas y desviaciones de AUTOSAR C++14

AUTOSAR C++14 cuenta con 342 reglas que proporcionan una comprensión clara y una guía sobre los requisitos de codificación. Las reglas de codificación de AUTOSAR C++14 se clasifican según su nivel de obligación.

  • Reglas requeridas
    Obligatorio para reclamar el cumplimiento de la norma.
  • Reglas de asesoramiento
    Recomendado pero sin estatus obligatorio.

Sin embargo, los desarrolladores pueden desviarse de un estándar, regla o directriz de AUTOSAR con aprobación. Para evitar el uso indebido, se requiere una aprobación formal para cada desviación. Además, AUTOSAR clasifica las reglas en función de si las herramientas de análisis estático pueden aplicarlas automáticamente.

  • Automated
    La automatización puede ser totalmente respaldada por herramientas de análisis estático.
  • Parcialmente automatizado
    La automatización puede ser totalmente respaldada por herramientas de análisis estático.
  • no automatizado
    No se puede soportar con herramientas de análisis estático.

El uso de C++14 en colaboración con las directrices AUTOSAR C++14 ofrece a los desarrolladores la posibilidad de usar compiladores superiores y un mejor acceso a herramientas avanzadas de prueba, verificación y análisis. Esto permite el uso de nuevos métodos de desarrollo, como la integración/entrega continua (CI/CD), que permiten detectar errores con mayor rapidez en el ciclo de vida del desarrollo de software.

“MISRA”, “MISRA C” y el logotipo del triángulo son marcas comerciales registradas de The MISRA Consortium Limited. © The MISRA Consortium Limited, 2021. Todos los derechos reservados.

Beneficios de tener la solución adecuada en su kit de herramientas de software AUTOSAR

Encontrar las herramientas de desarrollo adecuadas para garantizar la calidad del software es cuestión de prueba y error. Pero eso no significa que deba experimentar con herramientas o estrategias no probadas. Los numerosos beneficios de la automatización en las pruebas y el cumplimiento normativo son evidentes.

Detectar problemas con anticipación facilita las cosas para todos los involucrados en el desarrollo de software. Desde la arquitectura del software y el software de aplicación hasta el diagnóstico y la validación, las soluciones de Parasoft lo tienen todo en cuenta.

Adopte la conformidad con AUTOSAR C++14 para desarrollar software seguro, confiable y protegido, lo que reduce los costos de desarrollo, acelera el tiempo de comercialización y garantiza el éxito del producto a largo plazo.

Aumente la calidad del código y reduzca el costo de los defectos

Evite los defectos de código en las primeras etapas del proceso de desarrollo antes de que se conviertan en desafíos más costosos en el futuro.

Satisfacer los estándares de procesos de la industria

Parasoft ofrece el análisis estático AUTOSAR C++14 como la solución recomendada por estándares de proceso como ISO 26262, DO-178C, IEC 62304, IEC 61508, EN 50128 y más.

Satisfacer las pruebas de seguridad de análisis estático (SAST)

Incorpore las pautas de codificación de seguridad AUTOSAR C++14 en su ciclo de vida de desarrollo de software como parte de su estrategia SAST.

Pruebe de forma más inteligente con IA y ML

Parasoft incorpora inteligencia artificial y aprendizaje automático para mejorar la productividad en los flujos de trabajo de análisis estático AUTOSAR C ++ 14 de su equipo, marcando y priorizando las violaciones para corregir primero.

Incorpore el análisis estático de AUTOSAR C++14 en su flujo de trabajo de CI/CD

El análisis estático AUTOSAR C++14 de Parasoft se integra fácilmente en su flujo de trabajo de CI/CD optimizado con pruebas continuas para entregar rápidamente un software seguro y protegido de alta calidad.

Expandir desde AUTOSAR C++14 y crear pautas de codificación personalizadas

Cree su propia configuración de estándares de codificación personalizados para su organización utilizando Parasoft RuleWizard.

Combine los estándares de codificación con AUTOSAR C++14 para obtener una calidad de código óptima

Parasoft ofrece la agregación de MISRA con todos nuestros otros estándares de codificación compatibles, como CERT, CWE, OWASP, UL 2900 y más.

Soluciones para ayudar a cumplir con los requisitos de AUTOSAR

Captura de pantalla del menú principal del recorrido del producto de prueba Parasoft C/C++.
Icono de prueba de Parasoft C/C++

Prueba C / C ++

C/C++test, una potente solución automatizada de pruebas de software para aplicaciones críticas de seguridad automotriz, garantiza el cumplimiento de las directrices AUTOSAR C++14. Se integra a la perfección con su IDE de C y C++, su canalización de CI/CD y sus implementaciones en contenedores, lo que permite los métodos de verificación y validación requeridos por la norma ISO 26262..

Más Información
Captura de pantalla de Parasoft Report Center que muestra los resultados de las pruebas gráficas de conformidad con la norma ISO 26262 con AUTOSAR, MISRA y CERT.
Icono de Parasoft DTP

DTP

Obtenga una visión clara del cumplimiento de AUTOSAR C++14 con nuestra solución de informes y análisis. DTP integra los resultados de las pruebas y la trazabilidad de los requisitos, lo que proporciona una monitorización inteligente y continua de los resultados. El panel dinámico identifica las deficiencias en las pruebas, monitoriza el progreso y automatiza los informes de cumplimiento.

Más Información

Mejores prácticas de AUTOSAR

Cuando se trata del cumplimiento de AUTOSAR C++14, existen varias prácticas altamente beneficiosas. Aquí hay una lista de algunos de los métodos a considerar.

Realizar revisiones de código / pares

Además del cumplimiento de AUTOSAR C++14, reúnase con sus colegas ingenieros de software y verifiquen sistemáticamente el código de los demás en busca de errores y violaciones del estilo de codificación. Se ha demostrado que esta actividad acelera y mejora sustancialmente la calidad del código.

Registre correctamente sus desviaciones

Cualquier desviación de las pautas de AUTOSAR C++14 requiere una documentación exhaustiva sobre lo siguiente: la pauta específica, el alcance, la justificación, la garantía de seguridad, las consecuencias y la mitigación.

Claridad de código

La compatibilidad con AUTOSAR C++14 te ayudará a escribir código fácil de leer y comprender. No escribas código críptico, difícil de seguir o fácilmente malinterpretado. No querrás que otros ingenieros o tú mismo dediquen mucho tiempo a descifrar un error en tu código.

Portabilidad de código

La compatibilidad con AUTOSAR C++14 promueve la portabilidad del código, lo que permite migrar software fácilmente entre plataformas como POSIX y sistemas basados ​​en ANSI C con cambios mínimos. Esta flexibilidad reduce el esfuerzo de adaptación al cambiar de compiladores, sistemas operativos o hardware, lo que permite a las empresas aprovechar oportunidades estratégicas o de ahorro de costes sin necesidad de realizar grandes modificaciones.

Reducir el ruido de AUTOSAR C++14

Ciertas construcciones de código pueden infringir las reglas de AUTOSAR C++14. Parasoft permite filtrar intencionalmente este ruido.

Complejidad del código

El cumplimiento de AUTOSAR C++14 ayuda a escribir código que no tiene una gran cantidad de bifurcaciones. Cuantas más ramas, mayor es la complejidad del código y mayor el número de errores encontrados en el código.

Robustez del código

La compatibilidad con AUTOSAR C++14 le ayuda a escribir código confiable que maneja escenarios esperados e inesperados (incluidos casos de uso negativos y condiciones de datos no válidos), lo que garantiza la resiliencia de la aplicación.

Reutilización de código

El cumplimiento de AUTOSAR C++14 lo ayuda a escribir código portátil que se puede reutilizar en futuros productos o proyectos. Esto mejora la productividad y reduce los costos de mano de obra y pruebas.

Casos de uso de ejemplo

Los sistemas de software automotrices modernos dependen cada vez más de arquitecturas abiertas y estandarizadas como AUTOSAR para impulsar funciones de conducción autónoma y conectividad esenciales para la seguridad. Dos ejemplos clave de Cumplimiento para pruebas de software de conducción autónoma incluyen:

  1. Los sistemas avanzados de asistencia al conductor (ADAS), como LIDAR, utilizan software compatible con AUTOSAR para detectar riesgos de colisión al detectar con precisión los objetos circundantes.
  2. La asistencia al estacionamiento con conducción automatizada depende del código que cumple Requisitos de la arquitectura AUTOSAR para ejecutar maniobras seguras y precisas sin intervención del conductor.

Estos son solo un par de ejemplos notables. La creciente adopción de la Plataforma Adaptativa AUTOSAR y de los vehículos con IoT hace que la medición de datos en tiempo real y las capacidades de respuesta adaptativa sean cruciales.

Informes automatizados de cumplimiento de AUTOSAR

El panel de análisis de Parasoft con informes automatizados de cumplimiento de AUTOSAR facilita el suministro de las pruebas necesarias para la certificación.

Informe gráfico de cumplimiento de Parasoft AUTOSAR C++ que muestra el número y el porcentaje de reglas en cumplimiento junto con infracciones y desviaciones.

Para aplicaciones críticas para la seguridad y la protección, querrá utilizar nuestra solución certificada por TÜV SÜD para garantizar el cumplimiento de los estándares y la facilidad de adopción en sus procesos de desarrollo de alto rendimiento.

Introducción

Una gran ventaja de proponer la compatibilidad de AUTOSAR con C++14 es que puedes presentarlo a tu equipo y empezar a usarlo en cualquier fase del desarrollo de software de un proyecto. Mejor aún, es eficaz incluso si un proyecto o el software de tu ECU está incompleto y parcialmente codificado.

Desafíos AUTOSAR

  • Una gran cantidad de código puede producir una gran cantidad de advertencias.
    El mayor desafío con la introducción del cumplimiento AUTOSAR C++14 es que una gran cantidad de código puede generar una gran cantidad de advertencias. Por lo tanto, el enfoque al integrar el cumplimiento de AUTOSAR C++14 en un proyecto debe ser lograr que el equipo sea productivo lo antes posible. Esto minimizará las oportunidades para que el equipo se vea abrumado por las advertencias de análisis estático.

A medida que lograr la conformidad con AUTOSAR C++14 se convierte en parte de la rutina diaria de cada desarrollador, pueden analizar los resultados más rápido y corregir errores de manera más eficiente.

La madurez del producto en desarrollo también es importante, ya que influye en la incorporación de la compatibilidad con AUTOSAR C++14. La gestión del ciclo de vida de adopción funciona como se describe a continuación.

El número 1 dentro de un círculo azul

Reconocer y aplazar

Este enfoque se centra en proyectos existentes que ya están en el mercado. Con un desarrollo mínimo de código nuevo, todos los errores y vulnerabilidades de seguridad descubiertos se acumulan como deuda técnica dentro del código base existente.

El número 2 dentro de un círculo azul

Una línea en la arena

Los proyectos existentes con desarrollo actual hacen que los equipos mejoren el código nuevo a medida que se desarrolla para postergar menos advertencias críticas como deuda técnica.

El número 3 dentro de un círculo azul

Greenfield

Los nuevos proyectos adoptan este enfoque. Los desarrolladores pueden integrar AUTOSAR C++14 en sus entornos de desarrollo desde el principio para garantizar un alto nivel de calidad como código.

Por qué Parasoft

Icono de un tren en un contorno blanco centrado dentro de un círculo azul

Habilite el posprocesamiento automatizado y las estrategias de informes avanzados

Consulte los resultados de la prueba AUTOSAR de C/C++14 en el panel de informes dinámicos de Parasoft. Puede automatizar el posprocesamiento y las estrategias avanzadas de generación de informes utilizando datos históricos.

Es fácil ver los resultados de cumplimiento de AUTOSAR C++14 en compilaciones a lo largo del tiempo. Esto es así incluso al trabajar con bases de código extensas y código heredado, donde la visibilidad del código suele ser difícil. Puede centrarse rápidamente en la calidad del código recién añadido.

Icono dentro de un círculo azul que muestra un signo de dólar blanco.

Ahorro de tiempo y costes

La solución de análisis de código AUTOSAR de Parasoft, C/C++test, detecta problemas complejos de cumplimiento de C++14 en un entorno de ejecución AUTOSAR desde el inicio del desarrollo, sin necesidad de ejecutar costosas pruebas de ejecución. Esto optimiza los procesos de desarrollo en beneficio de todos.

C/C++test analiza las rutas de ejecución del código y detecta problemas de conformidad con AUTOSAR C++14, como la desreferenciación de punteros nulos, la división por cero y fugas de memoria. También busca vulnerabilidades de seguridad, como operaciones aritméticas en un operando de puntero, desbordamientos de búfer, código inaccesible y la función del sistema cstdlib.

Icono dentro de un círculo azul de un engranaje blanco que representa la integración continua.

Producir informes automáticos

Con widgets que rastrean automáticamente el cumplimiento de AUTOSAR C++14, los usuarios obtienen una vista dinámica del proceso de cumplimiento y pueden producir fácilmente informes automáticos para auditorías de código y objetivos de certificación.

Preguntas Frecuentes