Vea cómo la solución de calidad continua de Parasoft ayuda a controlar y administrar los entornos de prueba para ofrecer software de alta calidad con confianza. Regístrese para la demostración >>

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

C++ es un lenguaje complicado y requiere una gran inversión de esfuerzo para garantizar la previsibilidad, la seguridad y la protección. La organización AUTomotive Open System ARchitecture (AUTOSAR) desarrolló AUTOSAR C++14, un estándar de codificación que restringe el uso de C++14 a las construcciones que son predecibles y no generan riesgos de seguridad innecesarios.

¿Qué es AUTOSAR?

La arquitectura de sistema abierto AUTomotive (AUTOSAR) proviene de una asociación de desarrollo entre entidades automotrices. Fundado en 2003, el grupo buscó establecer una arquitectura de software abierta y estandarizada en torno a las unidades de control electrónico (ECU) para automóviles. También cubre los semiconductores.

La asociación de desarrollo AUTOSAR buscó mejorar la efectividad y disponibilidad de los requisitos de seguridad, escalabilidad, transferibilidad y sostenibilidad a lo largo del ciclo de vida del producto. Aunque no son inherentemente dispositivos médicos, ciertos aspectos de la tecnología automotriz ciertamente se incluyen en los artículos de protección. Las líneas de productos de línea de bolsas de aire requieren tecnología que las despliegue con precisión, mientras que los sistemas como el control del motor requieren consistencia.

Más electrónica integrada en los automóviles también significa una gran cantidad de recopilación de datos, así como el procesamiento de datos en tiempo real. Los diferentes aspectos de AUTOSAR buscan abordar las necesidades de los componentes de software y electrónica automotriz modernos.

AUTOSAR Plataforma Clásica vs. AUTOSAR Adaptativo

Hay dos tipos de plataformas AUTOSAR: Adaptativa y Clásica. La plataforma AUTOSAR clásica no ofrece el tipo de flexibilidad y potencia de procesamiento que ofrece la metodología adaptativa. La creciente complejidad de la tecnología automotriz requiere reacciones más fáciles y respuestas más rápidas.

Sin embargo, las dos plataformas no son rivales, sino compañeras de equipo. Ambos sirven para diferentes propósitos en el ecosistema de diseño y desarrollo automotriz.

Comparación gráfica lado a lado de las plataformas clásica y adaptativa de AUTOSAR

Diferencias clave

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?

Es un estándar de codificación para C++ versión 14 (ISO/IEC 14882:2014) y un artefacto o uno de los resultados en la definición de la plataforma Adaptive AUTOSAR que proporciona especificaciones de interfaz para API y servicios. Esta sección de las pautas de codificación de AUTOSAR originalmente acaba de actualizar 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 idioma predeterminado para muchas soluciones electrónicas AUTOSAR modernas.

De hecho, estas pautas son tan sólidas y optimizadas que se pueden aplicar a cualquier industria que requiera programación integrada en C++.

Reglas y desviaciones de AUTOSAR C++14

AUTOSAR C ++ 14 tiene 342 reglas para ayudar a brindar al usuario una comprensión clara y orientación sobre los requisitos de codificación. Reglas de codificación AUTOSAR C++14 se clasifican según el nivel de obligación.

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

Sin embargo, se puede permitir una desviación de un estándar, regla o directriz de AUTOSAR. Para evitar el abuso del concepto de desviación por parte de los desarrolladores que se desvían a voluntad, se deben incluir aprobaciones para cada desviación. Además, las reglas también se clasifican en función de si pueden aplicarse automáticamente mediante herramientas de análisis estático.

  • Email puede ser totalmente compatible con herramientas de análisis estático.
  • Parcialmente automatizado puede ser compatible con herramientas de análisis estático pero puede requerir. prácticas adicionales como la revisión del código.
  • No automatizado no se puede admitir con herramientas de análisis estático.

El uso de C++14 en colaboración con las pautas de AUTOSAR C++14 brinda a los desarrolladores la capacidad de utilizar compiladores superiores y un mejor acceso a herramientas mejoradas de prueba, verificación y análisis. Permite utilizar nuevos métodos de desarrollo como integración continua / entrega continua (CI/CD) que puede detectar errores antes 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 garantizar la calidad del software es una cuestión de prueba y error. Pero eso no significa que deba experimentar con herramientas o estrategias no probadas. Afortunadamente, la montaña de beneficios de la automatización con respecto a las pruebas y el cumplimiento son distintas.

Encontrar problemas antes solo puede facilitar las cosas para todos los involucrados en el desarrollo de software. Desde la arquitectura de software y el software de aplicación hasta el diagnóstico y la validación, las soluciones de Parasoft lo tienen todo en mente.

Implemente el cumplimiento de AUTOSAR C++14 para entregar un código seguro, protegido y confiable para obtener beneficios duraderos que impacten en el éxito y la longevidad de su producto al tiempo que reduce los costos de mano de obra y el tiempo de comercialización.

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)

Integre las pautas de codificación de seguridad AUTOSAR C++14 directamente 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 AUTOSAR C++14 SA en su flujo de trabajo de CI/CD

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

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 MISRA con todos nuestros otros estándares de codificación compatibles, como CERT, CWE, OWASP, UL 2900 y más.

Tipos de herramientas de análisis de código estático

Implemente las soluciones de Parasoft para realizar análisis estáticos de código sin importar en qué entorno de desarrollo trabaje.

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 completa sobre lo siguiente: qué pauta, alcance, justificación, garantía de seguridad, consecuencias y mitigación.

Claridad de código

El cumplimiento de AUTOSAR C++14 lo ayudará a escribir código que sea fácil de leer y entender. No sea demasiado inteligente y escriba un código críptico que sea difícil de seguir o fácilmente malentendido. No desea que otros ingenieros o usted mismo pasen mucho tiempo tratando de descifrar un error en su código.

Portabilidad de código

El cumplimiento de AUTOSAR C++14 ayuda a escribir código teniendo en cuenta la portabilidad porque el código portátil (POSIX, ANSI C, etc.) se puede mover fácil y rápidamente a otras plataformas. La adaptación de otros compiladores u otros sistemas operativos se puede hacer con cambios mínimos de código. Muchas veces, existen oportunidades financieras o comerciales por las que es necesario migrar a otro sistema operativo u objetivo.

Reducir el ruido de AUTOSAR C++14

Algunas construcciones de código se pueden escribir de una manera que desencadene una infracción de la regla AUTOSAR C++14. Parasoft proporciona una forma de filtrar conscientemente 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

El cumplimiento de AUTOSAR C++14 lo ayuda a escribir código confiable que no solo maneja los escenarios de días soleados sino también los días lluviosos. Incluyendo escenarios negativos que preparan su aplicación si se encuentra con datos no válidos.

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

Las características de la arquitectura de software abierta y estándar en muchos sistemas electrónicos de software automotriz modernos se utilizan hoy en día para la conectividad y la conducción autónoma.

Tome como ejemplo los sistemas avanzados de asistencia al conductor (ADAS) como LIDAR, que ayudan a los automóviles a detectar cuándo están en peligro de chocar contra un objeto. La asistencia de estacionamiento con conducción automatizada también depende en gran medida de la arquitectura de software AUTOSAR.

Estos son solo dos casos de uso, pero con la conectividad de la plataforma adaptativa AUTOSAR y los dispositivos de Internet de las cosas (IoT) en vehículos cada vez más comunes y más robustos, poder medir datos para adaptarse es crucial.

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.

Cómo empezar

Una gran ventaja de proponer el cumplimiento de AUTOSAR C++14 es que se puede introducir y utilizar en cualquier fase de desarrollo de software de un proyecto. Mejor aún es que es efectivo incluso si un proyecto o el software de su ECU está incompleto y parcialmente codificado.

Desafíos AUTOSAR

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 el cumplimiento de AUTOSAR C++14 se convierte en parte de la rutina diaria de cada desarrollador, podrán analizar los resultados más rápidamente y corregir errores de manera más eficiente.

La madurez del producto en desarrollo también es importante, ya que afecta la forma en que se puede incorporar el cumplimiento de AUTOSAR C++14. La gestión del ciclo de vida de adopción funciona como se describe a continuación.

  1. Reconocer y diferir. Este enfoque es para proyectos existentes que ya están en el mercado. Se está desarrollando poco código nuevo, por lo que todos los errores de seguridad descubiertos y las vulnerabilidades de seguridad se agregan a la deuda técnica existente.
  2. Una línea en la arena. Los proyectos existentes con desarrollo actual hacen que los equipos mejoren el nuevo código a medida que se desarrolla para diferir menos advertencias críticas como deuda técnica.
  3. Greenfield. Los nuevos proyectos adoptan este enfoque. Los desarrolladores pueden integrar el cumplimiento de AUTOSAR C++14 en sus entornos de desarrollo desde el principio para garantizar un alto estándar de calidad como código.

¿Por qué Parasoft?

La Solución AUTOSAR de análisis de código de Parasoft, Parasoft C/C++test, detecta problemas complejos similares al tiempo de ejecución de cumplimiento de AUTOSAR C++14 en un entorno de tiempo de ejecución de AUTOSAR al principio de la etapa de desarrollo, sin necesidad de ejecutar costosas pruebas de tiempo de ejecución. Esto agiliza los procesos de desarrollo de una manera que beneficia a todos.

C/C++test analiza las rutas de ejecución a través del código y encuentra problemas de cumplimiento de AUTOSAR C++14, como desreferenciación de puntero nulo, división por cero y fugas de memoria. También busca vulnerabilidades de seguridad, como aritmética en un operando de puntero, desbordamientos de búfer, código inalcanzable y función del sistema cstdlib.

Los resultados de los Conformidad con AUTOSAR C++14 de C/C++test los resultados se pueden ver en el tablero de informes dinámicos de Parasoft, lo que permite el procesamiento posterior automatizado y estrategias de informes avanzadas utilizando datos históricos.

Es fácil ver los resultados de cumplimiento de AUTOSAR C++14 en las compilaciones a lo largo del tiempo. Esto es cierto incluso cuando se trabaja con grandes bases de código y código heredado donde la visibilidad del código suele ser un desafío. Puede concentrarse rápidamente en la calidad del código recién agregado.

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

Los módulos de software básicos (BSW) son una colección de archivos de software que proporcionan cierta funcionalidad codificada que se ejecuta en una ECU. Estos módulos de software estandarizados pueden admitir comunicación, E/S, memoria y más.

Por ejemplo, algunos módulos de software básicos de AUTOSAR realizan tareas como duplicación de bus, diagnósticos e incluso criptografía para proteger los datos.

Las tres capas son:

  1. Capa de aplicación
  2. Arquitectura de software básica
  3. Entorno de tiempo de ejecución de AUTOSAR

Los módulos específicos de la unidad de controlador electrónico (ECU) y los módulos genéricos se incluyen en tres subcapas, incluida la capa de servicios, la capa de abstracción de ECU y la capa de abstracción de microcontrolador (MCAL).

RTE significa "entorno de tiempo de ejecución" y funciona como una especie de término medio entre la capa de aplicación y otras capas. Opera la comunicación intra-ECU y entre capas.

Como parte de las tres capas, la capa de abstracción de ECU sobre la capa MCAL tiene controladores de componentes de hardware y componentes para interfaces. Eso significa que su trabajo es garantizar que la capa anterior funcione independientemente del hardware de la ECU.

Formado en 2003, el grupo de OEM y otras partes involucradas incluyen toneladas de grandes nombres como Volkswagen y Robert Bosch GmbH.

AUTOSAR C++14 no proporciona ninguna orientación similar sobre el proceso de lograr el cumplimiento, al menos no directamente. Pero dado que las pautas de AUTOSAR C++ se basan en MISRA C++ 2008, es razonable consultar el estándar MISRA para buscar orientación sobre el proceso para lograr el cumplimiento.

  • Producir una matriz de cumplimiento, que establece cómo se aplica cada regla.
  • Producir un procedimiento de desviación.
  • Formalizar las prácticas de trabajo dentro del sistema de gestión de la calidad.

El cumplimiento de estos requisitos significa algunos trámites adicionales. Lo primero que debe ocurrir es una definición de la matriz de cumplimiento.

Además, se debe establecer un procedimiento de manejo de desviaciones. El procedimiento de desviación formaliza los pasos que deben tomarse cuando el desarrollo debe desviarse de las especificaciones o pautas.

Una plataforma AUTOSAR adaptativa define una plataforma para desarrollar unidades de control automotriz que brindan funciones sofisticadas como sistemas avanzados de asistencia a la conducción, transmisión de medios o actualizaciones de software a través de Internet.

C++ ofrece las funciones de lenguaje necesarias para admitir los requisitos de la plataforma AUTOSAR al aplicar un enfoque orientado a objetos, el uso de una arquitectura orientada a servicios, el uso de POSIX y sistemas operativos similares, y compatibilidad total con microcontroladores de 32 y 64 bits.

El análisis estático es el proceso de examinar el código fuente sin ejecución, generalmente con el fin de encontrar errores o evaluar la seguridad y confiabilidad del código.

Esto significa que el análisis estático se puede usar en código parcialmente completo, bibliotecas y código fuente de terceros. Las herramientas de análisis estático ayudan a los equipos de software a cumplir con los estándares de codificación como MISRA C/C++, AUTOSAR C++14, SEI CERT o su propia configuración personalizada.