Skip to main content
Back to jobs

Contribution à un langage de modélisation automobile formellement vérifié pour les logiciels embarqués critiques

External
alliancewd logoAlliancewd · Toulouse, France
ContractOn-siteToday
Lean
Cover LetterConnect

Prepare for this interview

Elite

AI-generated questions, company research, and talking points tailored to this role


About the role

Company AMPERE SOFTWARE TECHNOLOGY Job Description Contribution à un langage de modélisation automobile formellement vérifié pour les logiciels embarqués critiques Référence interne : C26-RGE-AMS/ST4 I - Contexte A. Thème et problématique de recherche L'introduction du Software Defined Vehicle (SDV) et l'augmentation des données et des calculs a nécessité l'introduction d'un nouveau paradigme dans la communication des données entre les capteurs, les unités de calcul et les actuateurs. Contrairement à l'architecture AUTOSAR utilisée dans le monde automobile où toutes les données sont communiquées de manière périodique et très rapide sur un bus Ethernet automobile, dans ce nouveau paradigme seuls les modifications des données et les évènements sont communiqués et ce de manière asynchrone. La communication concurrente et l'utilisation d'un bus Ethernet peut induire une congestion et un déni de service, mais aussi des comportements non déterministes et des effets de bords non maîtrisés en cas de suréchantillonnage. La sûreté peut être compromise. Lors de sa thèse CIFRE réalisée à Ampere (Groupe Renault) et encadrée au Département d'Ingénierie des Systèmes Complexes de l'ISAE-SUPAERO et au laboratoire LIP6 de Sorbonne Université, Émilie Thomé a introduit GRust, un langage dédié pour modéliser des services en SDV. Le compilateur de GRust est écrit en Rust et produit du code Rust, automatisant ainsi la génération de code à partir d'un modèle du service. Émilie Thomé a également montré que le code produit vérifie des propriétés de sureté : déterminisme, sans allocation dynamique, mémoire bornée. Elle a également démontré et testé le théorème de suréchantillonnage qui montre que le code produit est insensible au changement de paradigme de périodique à on-change. Cependant, si GRust apporte une preuve de concept prometteuse, il reste de nombreuses limitations. Tout d'abord pour que l'outil puisse être qualifié par une agence, il faut l'outiller pour automatiser la traçabilité. Ensuite, la preuve du théorème de suréchantillonnage est complexe, longue et manuelle. L'automatiser à l'aide d'un assistant de preuve permettrait d'augmenter la confiance dans le code généré et est un atout pour la qualification ISO26262. GRust permet actuellement de concevoir et de générer du code pour chaque service indépendamment. L'interface des services doit être écrite à la main. La prochaine étape est de générer cette interface automatiquement en analysant globalement le système et en guidant l'ordonnanceur pour qu'il respecte les propriétés de sûreté (déterminisme et préservation par suréchantillonnage), mais aussi qu'il s'adapte aux contraintes temporelles et de répartition de charge de calcul. Les services sont interfacés à l'aide d'un ordonnanceur asynchrone qui repose sur un algorithme de work stealing. Actuellement, il repose sur l'utilisation de la bibliothèque Rust Tokio dont les propriétés de sureté ne sont pas vérifiées. La qualification de l'outil reposera sur l'implémentation d'un ordonnanceur et d'un runtime dont les propriétés seront prouvées formellement en s'appuyant sur l'effort de la communauté distribuée pour proposer des alternatives pour lesquelles les contraintes temporelles et l'absence d'interblocage sont assurées. B. État de l'art scientifique & Vérification formelle 1. Compilation CompCert (Leroy, 2016) est le premier compilateur dont la préservation de la sémantique a été vérifiée formellement à l'aide de l'assistant de preuve Rocq. Ce travail réalisé par Xavier Leroy (Professeur au Collège de France) et son équipe a ensuite été utilisé dans plusieurs projets logiciels, par exemple chez Airbus. Le compilateur certifié Velus (Bourke, 2019) est lui aussi vérifié formellement en Rocq. Il prend en entrée du code Lustre (similaire à du code SCADE) et produit du code C compatible avec CompCert. Baptiste Pollien a écrit dans sa thèse de doctorat (Pollien, 2023) effectué à l'ISAE-SUPAERO et à l'ENAC un compilateur de plans de vol pour un drone décrits dans un langage de haut niveau vers du code C compatible avec CompCert et embarquable directement dans l'autopilote Paparazzi. Il existe plusieurs alternatives pour prouver l'invariance sémantique lors de la compilation. Par exemple, le compilateur LustreC (Brun, 2023) permet d'équiper les programmes écrits en Lustre avec des contrats spécifiant leur comportement. Ces contrats sont transportés vers le code C généré via le langage de spécification ACSL et sont ensuite prouvé de façon automatique. Dans sa thèse, Son Ho a posé les bases théoriques et conçu les outils pour la vérification formelle de programmes Rust via des transformations fonctionnelles, en définissant une sémantique purement fonctionnelle pour la partie sûre du langage, intégrant son modèle d'emprunts. Une traduction fonctionnelle vers un λ-calcul pur permet ensuite l'utilisation d'outils de preuve matures tels que Lean ou Rocq pour raisonner sur des programmes Rust. 2. Systèmes multipériodiques La


Your Match

How well this role fits your profile.

Company Intel

What employees say

Worked at alliancewd? Share your experience

Interested in this role?

Apply on the company's website.

Cover LetterConnect