Le véhicule conçu à l’aide de logiciels est une réalité. Avec la conduite assistée, voire entièrement automatisée, les logiciels prennent encore plus d’importance. Mais un logiciel n’est jamais terminé. Il repose sur le changement continu. La boucle numérique, associée à du matériel et à des logiciels en boucle, permet d’offrir une nouvelle base à la validation, à l’homologation et au développement des véhicules.
Des véhicules équipés de logiciels ? C’était encore inimaginable il y a quelques décennies. L’industrie automobile et le secteur informatique étaient même parfois critiques l’une de l’autre. Personne n’a oublié l’échange (inventé) entre Bill Gates et Jack Welch, dans lequel le développement du PC était comparé à celui des voitures.
Mais à chaque nouvelle génération de voitures, la part de l’informatique à bord augmente, les deux mondes ayant grandi ensemble. Le véhicule du futur est né et se développe. Cette évolution signifie surtout que les logiciels assurent de plus en plus de fonctions. Ils se chargent de tâches telles que la gestion du système de divertissement et de fonctions liées à la sécurité. La voiture définie à l’aide de logiciels a besoin de logiciels très complets. En effet, rares sont les conducteurs qui accepteront que leur véhicule s’éteigne tout simplement sans raison apparente ou que les systèmes de freinage ne fonctionnent pas. C’est pourquoi il existe des cadres complets qui régissent le développement et l’utilisation des logiciels automobiles.
Avec la tendance à une représentation de plus en plus de fonctionnalités dans le code, y compris en vue de la conduite autonome ou assistée (ADAS/AD), les exigences qui pèsent sur les développeurs de matériel et de logiciels dans les véhicules se durcissent. Les approches établies, qui collectent des données lors de tests de conduite, les analysent et les mettent à disposition pour le développement, ne peuvent tenir le rythme, notamment celui du développement de logiciels automobiles (et du déploiement régulier de mises à jour). Elles sont trop lentes et ne fournissent pas assez de données pour le développement. Les constructeurs doivent trouver des solutions pour soutenir la nouvelle dynamique de leurs produits cyberphysiques.
C’est là qu’interviennent les concepts de voiture connectée. Les véhicules des clients connectés à un backend OEM fournissent des flux de données continus à partir de situations de trafic réelles et créent une large base pour le développement et l’optimisation du matériel et des logiciels, ce qui permet de créer un véritable processus de développement piloté par les données de manière transparente tout au long de la chaîne des processus. L’intégration continue, le déploiement continu et DevOps peuvent être utilisés pour développer des logiciels.
La boucle numérique adapte le concept de CI/CD (Continuous Integration / Continuous Deployment) du développement logiciel agile et l’ouvre à l’environnement automobile. Elle prend en charge un processus de validation et d’homologation de bout en bout pour les mises à jour logicielles dans les véhicules tout au long de leur cycle de vie. Le développement de logiciels assorti d’analyses de données, de simulations et du déploiement est associé à la collecte de données issues de l’utilisation en direct des véhicules.
Cette courte vidéo explique clairement les principales caractéristiques de la solution de la boucle numérique dans l’homologation de mises à jour logicielles par les ondes à l’aide du cas illustratif d’un véhicule de démonstration SAE L3.
Pour la validation et la vérification de logiciels et du matériel, la boucle numérique fait appel à un sous-processus SIL/HIL (Hardware ou Software in the Loop). Elle collecte les données en direct, les traite et les enrichit de données synthétiques. Les données sont utilisées pour simuler le comportement du véhicule dans des situations de trafic typiques et pour les comparer aux attentes (KPI). Les résultats sont renvoyés à l’équipe de développement. Les ingénieurs peuvent alors utiliser les résultats pour développer le matériel et les logiciels, mais aussi comme moyen de validation et de simulation automatisées (continues) visant à justifier le processus d’homologation. Le constructeur peut ainsi automatiser en grande partie le processus de validation conformément aux exigences réglementaires, ce qui accélère et simplifie considérablement le développement.
La boucle numérique répond à un défi urgent des départements de développement des constructeurs automobiles. Elle établit une nouvelle base qui leur permet de passer dans l’ère plus agile des véhicules conçus à l’aide de logiciels. Les effets des mises à jour logicielles peuvent être évalués plus rapidement et le potentiel d’optimisation peut être identifié et introduit sur la base de données de conduite réelles. La validation et l’homologation peuvent être automatisées. Cette approche devient particulièrement importante dans le contexte de la conduite autonome ou assistée. L’importance des mises à jour logicielles atteint un niveau inédit, les mises à jour continues sur des cycles plus courts devenant la norme.
DevOps est une méthodologie de développement de logiciels qui vise à améliorer la collaboration entre les équipes de développement de logiciels (Development) et d’exploitation informatique (Operations). Elle revêt également une importance considérable pour le développement dynamique des logiciels automobiles. On utilise aussi souvent le synonyme de développement logiciel agile pour DevOps. Il s’agit d’accélérer la mise à disposition d’applications logicielles (et donc de réduire la durée de sortie de nouveaux produits sur le marché), de renforcer la fiabilité et de garantir une diffusion continue de logiciels de qualité. L’accélération rend possibles une introduction plus rapide des innovations et des réactions plus rapides aux feedbacks des clients et aux évolutions du marché.
DevOps automatise les processus de développement et fait appel à l’intégration continue et au déploiement continu (CI/CD) ainsi qu’à une collaboration et à une communication étroites entre les développeurs et les équipes d’exploitation. L’intégration continue (Continuous Integration, CI) est un élément central de DevOps. Elle fait référence au processus par lequel les développeurs intègrent régulièrement et fréquemment leurs modifications de code dans un référentiel commun. Des tests et des builds automatisés permettent de garantir la qualité du code. L’intégration continue cherche à détecter précocement les problèmes et à faciliter l’intégration des modifications de code.
Continuous Delivery (CD) et Continuous Deployment (CD) sont des extensions de CI et font également partie de l’approche DevOps. La diffusion continue fait référence au processus par lequel les logiciels sont déployés par itérations courtes et dans un flux de travail automatisé, de telle sorte qu’ils puissent passer en production à tout moment. Le déploiement continu va plus loin. Il signifie que chaque modification de code réussie est automatiquement répercutée dans l’environnement de production, sans intervention manuelle.