Vous êtes ici
Objectif sûreté pour les logiciels embarqués
Commandes de vol, pilote automatique, communications entre la machine et l’équipage… À bord d’un avion, de nombreux éléments logiciels sont critiques et n’ont aucun droit à l’erreur. Depuis 30 ans, leur sûreté doit beaucoup à la communauté informatique française, championne des langages dédiés au contrôle-commande et des logiciels anti-erreur.
Un langage adapté aux flots de données
Tout commence dans les années 1980 par une intuition géniale de plusieurs informaticiens. Les spécialistes le savent bien : un logiciel dit de « contrôle-commande » doit prendre périodiquement des décisions en un temps limité, à partir d’un flot continu d’informations extérieures. L’idée a été de programmer ce logiciel de telle sorte qu'il traite ce flot de manière simultanée plutôt que séquentielle. Les langages synchrones étaient nés.
Comme l’explique Marc Pouzet, du département d’informatique de l’École normale supérieure (DIENS), « l’idée est aussi puissante que de négliger les frottements en mécanique. On sait bien que ça ne décrit pas la réalité, mais cela permet de construire une théorie robuste sur laquelle s’appuyer ». En l’occurrence, ici, d’écrire des programmes indépendamment des processeurs sur lesquels ils seront exécutés.
Cette idée est notamment au cœur du langage Lustre, développé par Nicolas Halbwachs et Paul Caspi au laboratoire Verimag1. Sa force ? « Il a la même logique que celle adoptée par les automaticiens, habitués à raisonner en termes de flots de données traversant des composants électroniques », explique Nicolas Halbwachs. C'est la raison pour laquelle il est rapidement adopté par Airbus pour la programmation des commandes de vol de ses avions.
Un standard industriel
Sous sa forme industrialisée, Lustre devient le logiciel SCADE, utilisé par la suite pour « dessiner » les commandes de l’A340, de l’A380, puis de l’A350. En 2003, le logiciel devient la propriété d’Esterel Technologies, société fondée par Gérard Berry, médaillé d’or du CNRS en 2014. Le langage synchrone qu’il a inventé, Esterel, est complémentaire de Lustre et alors intégré à SCADE. « Lustre est tout à fait adapté au fonctionnement nominal d’un contrôle commande, alors qu’Esterel gère très bien les changements de mode, comme il peut s’en produire par exemple lors de la défaillance d’un élément du système », détaille Marc Pouzet.
Aujourd’hui, SCADE est utilisé partout dans le monde. « Ce logiciel et ceux qui s’en inspirent sont désormais une évidence dans l’univers du contrôle-commande », poursuit l’informaticien. D’où une évolution permanente. « En collaboration avec Airbus, un sujet brûlant vise par exemple à déterminer la façon d’implémenter SCADE sur des processeurs massivement parallèlesFermerUn traitement massivement parallèle consiste à utiliser un grand nombre de processeurs pour effectuer un ensemble de calculs simultanément. », cite Marc Pouzet. Autre sujet de recherche actif : le couplage de SCADE avec la simulation numérique du système qu’il doit contrôler.
Prévenir les bugs et les pannes
Par ailleurs, comment garantir qu’un logiciel de contrôle-commande se comporte correctement ? La problématique a notamment été posée dès le début des années 2000 par Patrick et Radhia Cousot, également au DIENS, et leurs collaborateurs. Leur réponse : le logiciel Astrée, spécialisé dans les risques d’écriture au mauvais endroit, de division par zéro, de problèmes liés aux opérations en virgule flottante et autres sources potentielles de plantage. « Dans l’absolu, on sait depuis Turing qu’une telle ambition est vouée à l’échec, relativise David Monniaux, lui aussi chercheur à Verimag et impliqué dans le développement d’Astrée. Mais dans le cadre plus restreint des programmes de contrôle-commande, Airbus nous a d’abord sollicités pour une preuve de concept. »
Le résultat est au-delà des espérances et Airbus applique la première version d’Astrée aux commandes de vol de l’A340-600, puis de l’A330. Par la suite, la start-up Absint, spécialiste de la détermination des temps d’exécution des logiciels de contrôle-commande, prend en charge la diffusion du logiciel anti-fautes. Il est alors mis à profit notamment lors de la conception de l’A380. « Par rapport à ses concurrents, Astrée ne produit quasiment aucune fausse alerte, particulièrement chronophage pour l’industrie », précise David Monniaux.
Ce qui n’empêche pas les chercheurs de l’améliorer sans cesse. Xavier Rival, du DIENS, détaille : « La communauté informatique travaille sur plusieurs fronts. Par exemple, l’adaptation d’Astrée aux langages asynchrones, utilisés dans l’aviation pour l’analyse des pannes ou les annonces audio et visuelles aux pilotes. L’amélioration des diagnostics lors de la détection d’un bug potentiel fait également l’objet d’importants transferts technologiques. Enfin, l’extension d’Astrée à des preuves de sécurité – vulnérabilité d’un programme face à des attaques extérieures, robustesse d’une plateforme informatique quel que soit le logiciel qu’on y installe… – est un domaine très actif. » Et le chercheur de conclure : « Les possibilités d’évolution sont sans limite ! » Tout comme, pour le plus grand bien de l’aviation, l’imagination des informaticiens !
- 1. Unité CNRS/Univ. Grenoble-Alpes/Grenoble INP.
Voir aussi
Auteur
Né en 1974, Mathieu Grousson est journaliste scientifique. Diplômé de l’École supérieure de journalisme de Lille, il est également docteur en physique.