Artículos técnicos

Cómo se construye la fábrica de software para automóviles


El diseño basado en modelos ofrece principios ágiles al desarrollo de sistemas, componentes físicos y software. Desde definición de requisitos, arquitectura del sistema y diseño de componentes hasta implementación, validación, pruebas e implementación, el diseño basado en modelos abarca todo el ciclo de desarrollo y permite una rápida adaptación a los requisitos cambiantes.

Con tecnologías inteligentes de conducción y cabina, la complejidad funcional del vehículo está aumentando rápidamente. Al mismo tiempo, los consumidores exigen más de sus vehículos inteligentes. En este entorno, los vehículos definidos por software (SDV) se han convertido en una tendencia clave y el software se ha convertido en el núcleo de la tecnología automotriz. Producir un SDV requiere un cambio en el proceso de desarrollo, donde el desarrollo de software y hardware se separan para permitir iteraciones de software rápidas. La capacidad de desarrollo de software de una empresa se refleja en la velocidad de iteración y entrega de actualizaciones a los consumidores. Es fundamental proveer a desarrolladores con buenas herramientas, procesos y métodos para diseñar, probar y actualizar software de manera eficiente. Mientras tanto, es necesario explorar cómo integrar el desarrollo ágil con la integración continua/entrega continua (CI/CD) y el modelo V tradicional para lograr un equilibrio efectivo entre eficiencia y calidad de desarrollo.

Zeekr, un fabricante de vehículos eléctricos premium con sede en China, compartió recientemente su experiencia en diseño basado en modelos a su nuevo entorno de sistema operativo para vehículos, y las nuevas capacidades en Simulink® para modelar software basado en arquitectura orientada a servicios (SOA) y generar código C++ utilizando Embedded Coder® (Figura 1).

Diagrama de flujo que muestra el nuevo entorno del sistema operativo de un vehículo de Zeekr. El diagrama de flujo muestra cómo Simulink y Embedded Coder se incorporan al flujo de trabajo para modelar software basado en SOA.

Figura 1.Zeekr desarrolla e implementa nuevas funciones para SDV.

El equipo de Zeekr también ha desarrollado SOMOC, una herramienta de arquitectura de software para el sistema operativo de vehículos personalizado de Zeekr con System Composer™, MATLAB® y App Designer (Figura 2).

Diagrama de flujo que muestra una descripción general de SOMOC, la herramienta de mantenimiento de SOA personalizada de Zeekr. El diagrama de flujo muestra cómo se incorporan MATLAB, System Composer y App Designer en el flujo de trabajo.

Figura 2. SOMOC, la herramienta de mantenimiento SOA personalizada de Zeekr.

En las siguientes secciones, los expertos del Centro de Software y Electrónica de Zeekr comparten su experiencia en la construcción de una fábrica de software, la integración de nuevas características de software, la aceleración de la entrega de software, la reducción del tiempo y el costo de desarrollo y la garantía de seguridad y confiabilidad.

Arquitectura orientada a servicios y su separación

Para satisfacer los requisitos de iteración rápida de funcionalidades, es necesario pasar gradualmente del software tradicional basado en señales a un diseño orientado a servicios. Al mismo tiempo, es necesario separar el software del hardware, así como las capas dentro de la arquitectura del software, como el núcleo del sistema operativo, el middleware y la capa de aplicación. La separación total es vital para garantizar una iteración rápida del hardware y el software, a su propio ritmo, acortando así el ciclo de desarrollo y abordando los requisitos de usuarios.

Una estrategia clave para permitir una iteración rápida es la adopción de SOA. SOA facilita la separación flexible entre el software y el hardware, y entre diferentes aplicaciones de software. Esto no solo facilita el desarrollo y mantenimiento del software, sino que también conduce a una coordinación perfecta entre el software del vehículo, la comunicación, la seguridad de la información y el entorno de nube, creando efectivamente un ecosistema de nube completo para vehículos.

No existe una solución milagrosa que aborde los desafíos de desarrollar un sistema de software complejo, interdisciplinario y a gran escala. Para ciertas aplicaciones, el uso de lenguajes de alto nivel como C/C++ (especialmente para módulos que involucran mecanismos de publicación-suscripción o multiprocesamiento) puede ser sencillo.

Al mismo tiempo, el equipo de Zeekr tiene una amplia experiencia en el desarrollo de sistemas de propulsión, chasis y carrocería utilizando el diseño basado en modelos. Como resultado, para las funciones maduras que han sido validadas a través de pruebas de producción o tienen máquinas de estado complejas, el equipo de Zeekr continúa utilizando un enfoque de diseño basado en modelos. El objetivo es integrar estos modelos en la plataforma SOA. Para lograrlo, Zeekr y MathWorks han colaborado en una cadena de herramientas de desarrollo basada en modelos integrados (Figura 3).

Diagrama de flujo que muestra una cadena de herramientas de desarrollo basada en modelos, que incorpora modelos en la arquitectura SOA.

Figura 3. Cadena de herramientas de desarrollo basada en modelos integrados de Zeekr, desarrollada en colaboración con MathWorks.

Reducción del ciclo de desarrollo y reducción de costes con simulación de vehículos virtuales

Aproximadamente el 90% de las pruebas de algoritmos de conducción automatizada se realizan en plataformas de simulación, el 9% en pistas de prueba y el 1% mediante pruebas en carreteras del mundo real. Las pruebas en plataformas de simulación son especialmente importantes debido a la dificultad de replicar la aparentemente infinita variedad de escenarios de conducción en condiciones viales reales.

A medida que la industria automotriz adopta nuevos avances tecnológicos, los OEM están adoptando cada vez más procesos de desarrollo ágiles, pruebas automatizadas, CI, computación en la nube y virtualización. Estos enfoques aceleran los ciclos de desarrollo de software, y las tecnologías de simulación y virtualización de vehículos tienen el mayor impacto en integración y validación.

Las empresas automotrices han estado utilizando la simulación para desarrollar y probar sistemas de control de energía y movimiento de vehículos. Simulink se utiliza para construir modelos dinámicos y algoritmos de control, y simular escenarios para evaluar y optimizar sistemas de control, realizar calibraciones o ajustar algoritmos. En el futuro, las tecnologías de simulación permitirán crear gemelos digitales, y utilizar estos vehículos totalmente virtuales para predecir el comportamiento del vehículo real y realizar simulaciones exhaustivas.

Con el respaldo de una plataforma de simulación integrada, la simulación de vehículos virtuales permite crear prototipos, calibrar y validar nuevas funciones de software. Concentrar el esfuerzo de desarrollo al principio del proceso permite acortar enormemente el ciclo de desarrollo y reducir costes. Zeekr aprovecha las funcionalidades listas para usar de MATLAB y Simulink para crear vehículos virtuales rápidamente (Figura 4).

Flujo de trabajo para el sistema de simulación de vehículos virtuales de Zeekr, desarrollo de modelos e iteración basada en los resultados de la simulación.

Figura 4. Zeekr utiliza MATLAB y Simulink para desarrollar vehículos virtuales.

Reducción del tiempo de entrega con DevOps

En los últimos años, muchas empresas automotrices se han centrado en el software. Esto ha resultado en un cambio hacia prácticas de CI y DevOps, donde los datos se recopilan durante la operación, se retroalimentan al proceso de desarrollo y se utilizan para iterar continuamente el software del vehículo.

El software automotriz se caracteriza por altos costes y requiere una gran cantidad de desarrollo, integración y entrega de código. El uso de prácticas de CI y DevOps puede acortar el tiempo desde la publicación de código hasta actualizaciones de producto, lo que reduce el tiempo de desarrollo y errores, mientras que garantiza una entrega de software segura y de alta calidad a través de integración continua, pruebas automatizadas y análisis de código estático.

DevOps prioriza las metodologías ágiles para entregar productos más rápido. La creciente complejidad del software, la aceleración del tiempo de comercialización, los presupuestos limitados y la divergencia de los ciclos de vida del software y hardware han hecho necesaria la integración del diseño basado en modelos y los principios de desarrollo ágil. El uso de modelado y simulación, pruebas y validación automatizadas y generación automatizada de código mejoran significativamente la eficiencia del desarrollo y la velocidad de implementación.

Para lograr estos objetivos, Zeekr utiliza Polyspace®, Polyspace Bug Finder™ y Polyspace Code Prover™ para comprobar defectos de software, especificaciones de codificación y vulnerabilidades de seguridad.

Zeekr ha desarrollado un conjunto de herramientas automatizadas de pruebas unitarias y verificación de servicios. El código generado es verificado por estas herramientas para garantizar que el programa ejecutable es confiable. Al mismo tiempo, Zeekr también integra el desarrollo y la verificación de modelos en su sistema DevOps. Al igual que con el código, profesionales de desarrollo funcional pueden cargar modelos en un repositorio de código (Figura 5).

Gráfico que muestra el ciclo DevOps de Zeekr, desarrollo del modelo de negocio, integración automática y verificación del sistema de simulación.

Figura 5. El sistema DevOps de Zeekr permite cargar modelos a un repositorio.

Desarrollo ágil y modelo V para garantizar la seguridad funcional

Los SDV han introducido muchas innovaciones, como la conducción autónoma y un mejor control del vehículo. Sin embargo, esta evolución también trajo consigo desafíos considerables para la seguridad funcional. En particular, a medida que la arquitectura del software cambia de AUTOSAR clásico a sistemas operativos de vehículos y arquitecturas de servicios heterogéneos y distribuidos, surgen nuevas incertidumbres en la construcción de métodos tradicionales de análisis de seguridad funcional, conceptos de diseño de seguridad de software y hardware, sistemas de verificación de seguridad y seguridad de la cadena de herramientas. Por lo tanto, el desafío fundamental al que se enfrentan los equipos de ingeniería que trabajan en SDV es la prueba y validación.

Actualmente, el proceso de desarrollo de software más común en la industria automotriz sigue el modelo V, que implica pruebas correspondientes en cada etapa de desarrollo, desde los requisitos hasta el código fuente, y cada fase se basa en el resultado de la anterior. Las ventajas del modelo V radican en el proceso claro, la trazabilidad y el control de calidad. Sin embargo, este enfoque también tiene inconvenientes, como ciclos de desarrollo largos, dificultad para adaptarse a requisitos cambiantes, desafíos de pruebas y falta de flexibilidad.

Como los procesos tradicionales de desarrollo de software no logran seguir el ritmo de la creciente complejidad de los sistemas automotrices, el desarrollo ágil ha surgido como una solución. Apoya el desarrollo de software a través de iteraciones repetidas, entregando software en pequeños incrementos para permitir actualizaciones continuas, en lugar de esperar a publicar el software completo al final del proceso de desarrollo.

El enfoque actual de desarrollo de software de Zeekr combina el modelo V con metodologías ágiles. Esta estrategia híbrida mantiene el proceso de desarrollo estructurado del modelo V para el desarrollo general del vehículo, al tiempo que introduce flexibilidad para requisitos específicos, garantizando la seguridad y confiabilidad de los productos de software y facilitando una entrega rápida (Figura 6).

Representación gráfica de la estrategia híbrida de Zeekr, que combina el enfoque de desarrollo del modelo V tradicional con prácticas ágiles.

Figura 6. Zeekr combina el enfoque tradicional de desarrollo de software del modelo V con prácticas ágiles.

El coste de desarrollo y validación de características aumentó significativamente debido a la centralización de funciones en varios controladores en el modelo V tradicional. En este contexto, Simulink ofrece beneficios sustanciales para el desarrollo de modelos. Con su conjunto completo de herramientas de verificación de modelos, Simulink admite un proceso de desarrollo de software, metodología y kit de herramientas completo y maduro para la norma ISO® 26262. Esto garantiza eficazmente la precisión y fiabilidad del modelo.

Además, el diseño basado en modelos extiende los principios ágiles a los esfuerzos de desarrollo de sistemas que incluyen componentes físicos y software. Desde definición de requisitos, arquitectura del sistema y diseño de componentes hasta implementación, validación, pruebas e implementación, el diseño basado en modelos abarca todo el ciclo de desarrollo y permite una rápida adaptación a los requisitos cambiantes. Como tal, el diseño basado en modelos puede satisfacer las necesidades de un enfoque híbrido que combina el modelo V y los principios de desarrollo ágil.

Publicado en 2024

Artículos sobre industrias afines