Articles techniques

Construction d’une usine de logiciels automobiles


L’approche Model-Based Design étend les principes agiles aux efforts de développement de systèmes qui incluent des composants physiques et des logiciels. Allant de la définition des exigences, de l'architecture du système et du design des composants, jusqu’à l’implémentation, la validation, les tests et le déploiement, l’approche Model-Based Design couvre l'ensemble du cycle de développement et permet une adaptation rapide aux exigences qui évoluent.

Grâce aux technologies de conduite intelligente et de cockpit intelligent, la complexité fonctionnelle des véhicules augmente rapidement. Dans le même temps, les consommateurs sont plus exigeants envers leurs voitures intelligentes. Dans cet environnement, les véhicules conçus autour du logiciel (SDV) sont devenus une tendance clé et le logiciel constitue le cœur de la technologie automobile. La livraison de SDV nécessite un changement dans le processus de développement, où les développements software et hardware sont découplés pour permettre des itérations logicielles rapides. La capacité de développement software d’une entreprise se reflète dans la vitesse d’itération et de livraison des mises à niveau aux consommateurs. Il est essentiel de doter les développeurs de bons outils, processus et méthodes afin qu’ils puissent concevoir, tester et mettre à jour efficacement les logiciels. En attendant, les développeurs doivent explorer comment intégrer le développement agile avec l’intégration continue/la livraison continue (CI/CD) et le modèle en V traditionnel afin d’atteindre un équilibre optimum entre l’efficacité et la qualité du développement.

Zeekr, un fabricant de véhicules électriques haut de gamme, basé en Chine, a récemment partagé son expérience concernant l'application de l’approche Model-Based Design à son nouvel environnement de système d'exploitation de véhicule, y compris avec l'utilisation de nouvelles fonctionnalités dans Simulink® pour la modélisation de logiciels basés sur une architecture orientée services (SOA) et la génération de code C++ à l'aide Embedded Coder® (Figure 1).

Un organigramme affichant un aperçu du nouvel environnement du système d'exploitation du véhicule de Zeekr. L'organigramme montre comment Simulink et Embedded Coder sont intégrés dans le workflow de modélisation de logiciels basés sur SOA.

Figure 1.Zeekr développe et déploie de nouvelles fonctionnalités pour les SDV.

L'équipe a également développé SOMOC, un outil d'architecture logicielle pour le système d'exploitation de véhicule personnalisé de Zeekr avec System Composer™, MATLAB® et App Designer (Figure 2).

Un organigramme affichant un aperçu de SOMOC, l'outil de maintenance SOA personnalisé de Zeekr. L'organigramme montre comment MATLAB, System Composer et App Designer sont intégrés dans le workflow.

Figure 2. SOMOC, l'outil de maintenance SOA personnalisé de Zeekr.

Dans les sections suivantes, les experts du centre de logiciels et d'électronique de Zeekr partagent leur expérience à propos de la construction d'une usine de logiciels, y compris l'intégration de nouvelles fonctionnalités logicielles, l'accélération de la livraison de logiciels, la réduction du temps et des coûts de développement et la garantie de la sécurité et de la fiabilité.

Application de l'architecture orientée services (SOA) et réalisation du découplage

Pour répondre aux exigences d’itération rapide des fonctionnalités, il est nécessaire de passer progressivement d’un logiciel traditionnel basé sur les signaux à un design orienté services. Dans le même temps, il est nécessaire de découpler le software du hardware ainsi que les couches au sein de l’architecture logicielle, telles que le noyau du système d’exploitation, le middleware et la couche applicative. Le découplage complet est essentiel pour garantir une itération rapide du hardware et du software, à leur propre rythme, raccourcissant ainsi le cycle de développement et répondant aux exigences des utilisateurs.

Une stratégie clé pour permettre une itération rapide est l’adoption de la SOA. La SOA facilite le couplage lâche entre les logiciels d'application et le hardware, ainsi qu'entre différentes applications logicielles. Cela aide non seulement au développement et à la maintenance des logiciels, mais conduit également à une coordination transparente entre les logiciels embarqués, la communication, la sécurité des informations et l'environnement cloud, créant ainsi efficacement un écosystème cloud automobile complet.

Il n’existe pas de solution miracle pour répondre aux défis du développement d’un système logiciel complexe, interdisciplinaire et à grande échelle. Pour certaines applications, l’utilisation de langages de haut niveau comme C/C++, en particulier pour les modules impliquant des mécanismes de multithreading ou de type publish-subscribe, peut s’avérer simple.

Parallèlement, l’équipe Zeekr possède une vaste expérience dans le développement de groupes motopropulseurs, de châssis et de carrosseries, grâce à l’utilisation de l’approche Model-Based Design. Par conséquent, pour les fonctions matures, qui ont été validées par des tests de production ou qui ont des machines d’état complexes, l’équipe continue d’utiliser une approche Model-Based Design. L’objectif est d’intégrer ces modèles dans la plateforme SOA. Pour répondre à ce besoin, Zeekr et MathWorks ont développé en collaboration une chaîne d’outils de développement intégrée basée sur des modèles (Figure 3).

Un organigramme affichant une chaîne d'outils de développement basée sur un modèle, qui intègre des modèles dans l'architecture SOA.

Figure 3. Chaîne d'outils de développement intégrée basée sur des modèles de Zeekr, développée en collaboration avec MathWorks.

Raccourcir les cycles de développement et réduire les coûts grâce à la simulation de véhicules virtuels

Environ 90 % des tests d’algorithmes de conduite automatisée sont réalisés sur des plateformes de simulation, 9 % sur des pistes d’essai et 1 % par le biais d’essais sur route en conditions réelles. Les tests sur des plateformes de simulation sont particulièrement importants étant donné la difficulté de reproduire la variété apparemment infinie de scénarios de conduite rencontrés dans des conditions routières réelles.

A mesure que l’industrie automobile adopte de nouvelles avancées technologiques, les équipementiers adoptent de plus en plus de processus de développement agiles, de tests automatisés, du CI, du cloud computing et de la virtualisation. Ces approches accélèrent les cycles de développement logiciel, les technologies de virtualisation et de simulation des véhicules ayant le plus grand impact sur l’intégration et la validation.

Les entreprises automobiles utilisent la simulation pour développer et tester des systèmes de contrôle de l’énergie et du mouvement des véhicules. Simulink est utilisé pour créer des modèles dynamiques et des algorithmes de contrôle, ainsi que pour simuler des scénarios pour évaluer et optimiser les systèmes de contrôle, effectuer un étalonnage ou affiner les algorithmes. À l’avenir, les technologies de simulation permettront la création de jumeaux numériques, afin que les ingénieurs puissent utiliser ces véhicules entièrement virtuels pour prédire le comportement réel des véhicules et effectuer une simulation exhaustive.

S'appuyant sur une plateforme de simulation intégrée, la simulation de véhicules virtuels permet aux équipes d'ingénierie de prototyper, d'étalonner et de valider de nouvelles fonctionnalités logicielles. Grâce à cette anticipation, ils peuvent considérablement raccourcir le cycle de développement et réduire les coûts. Zeekr exploite les fonctionnalités prêtes à l'emploi de MATLAB et Simulink pour créer rapidement des véhicules virtuels (Figure 4).

Workflow pour le système de simulation de véhicules virtuels de Zeekr, comprenant notamment le développement de modèles et l'itération basée sur les résultats de la simulation.

Figure 4. Zeekr utilise MATLAB et Simulink pour développer des véhicules virtuels.

Réduire les délais de livraison grâce à DevOps

Ces dernières années, de nombreuses entreprises automobiles se sont repositionnées en se concentrant sur les logiciels. Cela a entraîné une évolution vers les pratiques CI et DevOps, où les données sont collectées pendant le fonctionnement, réinjectées dans le processus de développement et utilisées pour itérer en permanence le logiciel du véhicule.

Les logiciels automobiles se caractérisent par des coûts de développement élevés, nécessitant une grande quantité de développement de code, d'intégration et de livraison. L’utilisation des pratiques CI et DevOps peut raccourcir le délai entre la soumission du code et les mises à jour du produit, réduisant ainsi le temps de développement et les erreurs, tout en garantissant une livraison de logiciels sécurisée et de haute qualité, grâce à l’intégration continue, aux tests automatisés et à l’analyse statique du code.

DevOps privilégie les méthodologies agiles pour livrer des produits plus rapidement. La complexité croissante des logiciels, la réduction des délais de mise sur le marché, les budgets limités et la divergence des cycles de vie du software et du hardware ont tous nécessité l'intégration de l’approche Model-Based Design et des principes de développement agile. L’utilisation de la modélisation et de la simulation, des tests et de la validation automatisés ainsi que de la génération de code automatisée améliore considérablement l’efficacité du développement et la vitesse de mise en œuvre.

Afin d’atteindre ces objectifs, Zeekr utilise des outils Polyspace®, tels que Polyspace Bug Finder™ et Polyspace Code Prover™, pour vérifier les défauts des logiciels, et par exemple les spécifications de codage et les vulnérabilités de sécurité.

Zeekr a développé un ensemble d'outils automatisés, de tests unitaires et de vérification de services ; le code généré est vérifié par ces outils pour garantir que le programme exécutable peut s'exécuter de manière fiable. Parallèlement, Zeekr intègre également le développement et la vérification de modèles dans son système DevOps. Tout comme ils le font avec le code, les ingénieurs de développement fonctionnel peuvent télécharger des modèles dans un référentiel de code (Figure 5).

Un graphique montrant un aperçu du cycle DevOps de Zeekr, qui comprend le développement du modèle commercial, l'intégration automatique et la vérification du système de simulation.

Figure 5. Le système DevOps de Zeekr permet aux ingénieurs de télécharger des modèles dans un référentiel.

Utiliser le développement agile et le modèle en V pour garantir la sécurité fonctionnelle

L’avènement des SDV a introduit de nombreuses innovations, telles que la conduite automatisée et le contrôle amélioré des véhicules. Cependant, cette évolution a également entraîné des défis considérables en matière de sécurité fonctionnelle. En particulier, à mesure que l'architecture logicielle évolue du classique AUTOSAR vers des systèmes d'exploitation de véhicules et une architecture de services hétérogènes et distribués, de nouvelles incertitudes apparaissent dans la construction de méthodes d'analyse de sécurité traditionnelle et fonctionnelle, de concepts de design de sécurité software et hardware, de systèmes de vérification de sécurité et de sécurité de la chaîne d'outils. Ainsi, le défi fondamental auquel sont confrontées les équipes d’ingénierie travaillant sur les SDV est le test et la validation.

Actuellement, le processus de développement logiciel le plus courant dans l’industrie automobile suit le modèle en V, qui implique des tests correspondants à chaque étape de développement, des exigences au code source, chaque phase s’appuyant sur les résultats de la précédente. Les avantages du modèle V résident dans un processus clair, une traçabilité et un contrôle qualité. Cependant, cette approche présente également des inconvénients, tels que des cycles de développement longs, des difficultés d’adaptation aux exigences qui évoluent, des défis en matière de tests et un manque de flexibilité.

Les processus de développement de logiciels traditionnels ne parvenant pas à suivre le rythme imposé par la complexité croissante des systèmes automobiles, le développement agile est apparu comme une solution. Il prend en charge le développement de logiciels par itérations répétées, en fournissant des logiciels par petits incréments pour permettre des mises à jour continues, plutôt que d'attendre de fournir l’intégralité des logiciels à la fin du processus de développement.

L'approche actuelle de développement logiciel de Zeekr combine le modèle en V avec des méthodologies agiles. Cette stratégie hybride maintient le processus de développement structuré du modèle en V pour le développement global du véhicule tout en introduisant une flexibilité pour des exigences spécifiques, en garantissant la sécurité et la fiabilité des produits logiciels et en facilitant une livraison rapide (Figure 6).

Une représentation graphique de la stratégie hybride de Zeekr, qui combine l'approche de développement traditionnelle du modèle en V avec les pratiques agiles.

Figure 6. Zeekr combine l’approche traditionnelle de développement logiciel en V avec des pratiques agiles.

Le coût du développement et de la validation des fonctionnalités a été considérablement augmenté en raison de la centralisation des fonctions sur plusieurs contrôleurs dans le modèle en V traditionnel. Dans ce contexte, Simulink offre des avantages substantiels pour le développement de modèles. Grâce à sa suite complète d'outils de vérification de modèles, Simulink prend en charge un processus de développement logiciel, une méthodologie et une boîte à outils, complets et matures, conformes à la norme ISO® 26262. Cela garantit efficacement la précision et la fiabilité du modèle.

De plus, l’approche Model-Based Design étend les principes agiles aux efforts de développement de systèmes qui incluent des composants physiques et des logiciels. Allant de la définition des exigences, de l'architecture du système et du design des composants, jusqu’à l’implémentation, la validation, les tests et le déploiement, l’approche Model-Based Design couvre l'ensemble du cycle de développement et permet une adaptation rapide aux exigences qui évoluent. Ainsi, l’approche Model-based Design peut répondre aux besoins d’une approche hybride qui combine les principes du modèle en V et du développement agile.

Publié en 2024

Consulter des articles relatifs à des fonctionnalités associées

Consulter des articles relatifs à des secteurs associés