tous les documents
  • tous les documents
  • Images
  • Films
  • Rushes
  • Publications
  • Audio
Recherche avancée
Ensemble de recherche :
tous les documents
  • tous les documents
  • Images
  • Films
  • Rushes
  • Publications
  • Audio
Recherche par couleur
Ensemble de recherche :
tous les documents
  • tous les documents
  • Images
  • Films
  • Rushes
  • Publications
  • Audio
Code HTML Copiez-collez le code ci-dessous pour l'intégrer dans une page Web.
Titre :
RII - Aucun outil informatique ne nous garantira d'avoir pensé à tout.
Légende - Résumé :
À travers différents témoignages d'industriels, les problématiques de la recherche dans les domaines de la programmation, du génie logiciel et du calcul symbolique.
Ingénieurs et chercheurs de l'industrie évoquent des langages et outils informatiques issus de l'INRIA. Tous partagent le même objectif : maîtriser les systèmes informatiques complexes pour la mise en oeuvre d'applications critiques.
Le service Recherche et Développement de Dassault Aviation étudie les potentialités du langage synchrone "Esterel" et du formalisme de spécification "Coq". Schneider Electric S.A. utilise pour son système de contrôle commande de centrale nucléaire l'environnement de programmation SAGA-Lustre. La société Cogenit invente, dans le domaine des télécommunications, un algorithme de codage pour sécuriser les échanges d'information. L'Aérospatiale Espace et Défense adopte le calcul formel pour la réalisation du panneau solaire SPOT4-Helios.
Ces quelques témoignages convergent vers la même idée : la maîtrise des applications critiques repose autant sur l'usage d'outils rigoureux que sur le savoir-faire industriel.

Ce film a été réalisé à l'occasion des rencontres INRIA-Industrie du 26 septembre 1995.
Nom de fichier :
Inria-317-Aucun_outil-fr.mp4
Titre :
RII - Aucun outil informatique ne nous garantira d'avoir pensé à tout.
Année :
1995
Durée (min) :
00:28:03
Publications :
https://videotheque.inria.fr/videotheque/doc/317
Autres versions :
Master VF : 317
Master VEN :
Autre : Lien externe :
Mots clés :
N° master :
317
Durée :
28 min 03 sec
IsyTag :
- - algorithme - application - aujourd' - C' - calcul - certain - code - contrôle - COQ - d' - dire - équation - est-à-dire - est-ce - esterel - façon - formel - INRIA - j' - jeton - l' - langage - logiciel - lui-même - méthode - monde - n' - outil - PAI - preuve - programme - prouver - qu' - réaliser - recherche - résultat - s' - séquence - simulateur - société - spécification - système - utiliser - validation - vis-à-vis
Transcription automatiqu :
application critique c'est une application qui elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion sans pilote particulier ou éventuellement sécurité de passagers si cela était annoncé dufaux ça voudrait dire que on était capable d'exprimer toutes les propriétés d'une certaine façon la spécification formelle va devenir le contrat m'appelle jan sas et suis responsable d'un département chez dassault aviation qui s'occupe de définir des systèmes à base de calculateurs dans réel et de réseaux légalement qui font partie des systèmes sont montés sur les avions d'armes de maison dassault je m'appelle ivo freij je ingénieur chez dassault dans un département d'intelligence artificielle et d'informatique avancé dans lequel je fais de la veille technologique sur les outils de programmation de systèmes je m'appelle emmanuel le dino j'à la division des études avancées et je dirige un cerveau sur les méthodes formelles appliquer le fonctionnement de technologie dans ce domaine là et en particulier collabore avec des centres de recherche le domaine des formats et de et notamment le mariage problématique c'est euh ben essayer de faire des systèmes euh dont enfin sur lequel repose la vie du pilote euh la de la mission etc de de de le faire avec des outils qui euh assurent un maximum de euh confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion sans pilote particulier ou éventuellement sécurité de passagers si cela était annoncé dufaux ça voudrait dire que on était capable d'exprimer toutes les propriétés d'une certaine façon la spécification formelle va devenir le contrat m'appelle jan sas et suis responsable d'un département chez dassault aviation qui s'occupe de définir des systèmes à base de calculateurs dans réel et de réseaux légalement qui font partie des systèmes sont montés sur les avions d'armes de maison dassault je m'appelle ivo freij je ingénieur chez dassault dans un département d'intelligence artificielle et d'informatique avancé dans lequel je fais de la veille technologique sur les outils de programmation de systèmes je m'appelle emmanuel le dino j'à la division des études avancées et je dirige un cerveau sur les méthodes formelles appliquer le fonctionnement de technologie dans ce domaine là et en particulier collabore avec des centres de recherche le domaine des formats et de et notamment le mariage problématique c'est euh ben essayer de faire des systèmes euh dont enfin sur lequel repose la vie du pilote euh la de la mission etc de de de le faire avec des outils qui euh assurent un maximum de euh confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat m'appelle jan sas et suis responsable d'un département chez dassault aviation qui s'occupe de définir des systèmes à base de calculateurs dans réel et de réseaux légalement qui font partie des systèmes sont montés sur les avions d'armes de maison dassault je m'appelle ivo freij je ingénieur chez dassault dans un département d'intelligence artificielle et d'informatique avancé dans lequel je fais de la veille technologique sur les outils de programmation de systèmes je m'appelle emmanuel le dino j'à la division des études avancées et je dirige un cerveau sur les méthodes formelles appliquer le fonctionnement de technologie dans ce domaine là et en particulier collabore avec des centres de recherche le domaine des formats et de et notamment le mariage problématique c'est euh ben essayer de faire des systèmes euh dont enfin sur lequel repose la vie du pilote euh la de la mission etc de de de le faire avec des outils qui euh assurent un maximum de euh confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino à la division des études avancées et je dirige un cerveau sur les méthodes formelles appliquer le fonctionnement de technologie dans ce domaine là et en particulier collabore avec des centres de recherche le domaine des formats et de et notamment le mariage problématique c'est euh ben essayer de faire des systèmes euh dont enfin sur lequel repose la vie du pilote euh la de la mission etc de de de le faire avec des outils qui euh assurent un maximum de euh confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement technologie dans ce domaine là et en particulier collabore avec des centres de recherche le domaine des formats et de et notamment le mariage problématique c'est euh ben essayer de faire des systèmes euh dont enfin sur lequel repose la vie du pilote euh la de la mission etc de de de le faire avec des outils qui euh assurent un maximum de euh confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche le domaine des formats et de et notamment le mariage problématique c'est euh ben essayer de faire des systèmes euh dont enfin sur lequel repose la vie du pilote euh la de la mission etc de de de le faire avec des outils qui euh assurent un maximum de euh confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote euh la de la mission etc de de de le faire avec des outils qui euh assurent un maximum de euh confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de euh confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance on a commencé par s'intéresser à esterel au langage cinq rhône esterel développer tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé tout ce qui est automate un système ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes ensuite euh on s'est intéressé euh au système copte c'est un système de spécifications de procédure de type algorithme sur structure de données c'est euh un ensemble de choses je pense qu'on peut dire c'que est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements systèmes sont des systèmes réactif il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système parce qu'il est en vol et qu'il effectue sa mission et il faut imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote même manière le système lui-même réagit à des évènements extérieurs une menace euh ou d'autres euh besoins en communication ou des choses comme ça il nous faut des mécanismes spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent décrire ce système tend donc à un aspect description et ensuite voir comment se comporte donc un aspect simulation c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie de d'outils de vérification programme là où elle se faire elle peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut euh peut avoir un avantage compétitif par rapport à d'autres environnements euh disponibles sur le marché euh y et on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve qui est le l'aspect le plus innovant qui nous intéresse a développé euh le un logiciel euh qui est destiné inquiète euh embarqué dans l'avion en rafale donc ça a été euh programmer vérifier euh on les en là on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusque un point euh vous l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où l'embarquer l'opération n'est pas totalement terminée euh de notre point de vue euh un point de vue en tout elle est très large positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive euh si l'on considère les propriétés qu'on approuvé grâce à l'outil de preuve esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété réalisée quelle que soit l'exécution de programmes euh auparavant se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait gros à base de simulation euh on pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité système kok euh introduit une nouvelle méthodologie outils de programmation qu'on peut résumer par euh expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par expression programmation par preuves alors c'est quelque chose d'assez assez étonnant pour parler de la spécification euh vous faites une preuve sur cette spécification en visant un algorithme au bout du compte vous construisez un algorithme qui par construction est correct vous avez de la spécification fait il a deux approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser qu'est-ce est-ce que ça veut dire prouver une spécification euh en général à spécification elle dit euh quelles que soient les données d'entrée vérifiant tels potter alors on peut produire un résultat qui aura telle propriété ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat on fait une preuve constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct pour moi coquette est hein est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement euh exploratoire euh assez futuriste c'est à dire que la distance euh et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance et la conquête ou l'application de coques est une distance qui est vraisemblablement pour important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus important pour rester elle complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel complètement euh complémentaire par rapport à ce terrain ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel ça ça capture tout ce qu'on peut faire de façon automatique sur le boulet donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc alors en termes de d'application tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications tout ce qui est événement et séquence d'événements aspects temporel du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret là c'est la preuve automatique alors quand je dis boulin ça peut étant peut être étendu à entiers bornés ou aux énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés dès qu'on tombe des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc réelles sur des listes des arbres euh des mots donc qui qui appartiennent à des domaines de données qui sont infinies là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis là euh esterel euh n'plus et on utilise koch aujourd'hui les ingénieurs qui conçoivent les algorithmes ne finissent pas quand même on le fait pour eux on leur demande de nous donner euh des études de cas on leur transmet les résultats on attend justement que le système évolue euh son interface soit soit vraiment disponible euh pour le mettre dans leurs mains je crois qu'aujourd'hui ça sera un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet qu'apporterait ce type d'outil koch terrel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori problème les méthodes pour les logiciels critiques reposent sur euh donc des méthodes classiques de qualité mais également beaucoup sur la validation nous avons actuellement euh une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problème - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation Nous avons actuellement une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que validation est de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante va se révéler peut-être de plus en plus coûteuse d'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation c'est un sujet délicat dans la mesure où e faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre on va supprimer certaines parties de validation éprouvées on est capable de les supprimer c'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le salem fait nous à c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval c'est pas gagné pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné notre approche est de plus en plus que vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un maîtrise de l'actualité utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité daniel pilou directeur technique de verizon c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de veri c'est une société de génie logiciel c'est-à-dire une société commercialisée abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de veri Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et abri des pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à le développement de logiciels actuellement je suis euh responsable d'un pôle de compétences logiciel au de la direction direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches mille neuf cents quatre-vingt neuf schneider electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés mettre sur marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel saga merveille dangereuse était basée sur le langage lustres elle a été développée dans un laboratoire appartenir à un langage qui s'appelle est connu sous le nom de l's'akron se participe la définition ce langage c'était le cadre de ma thèse euh le transfert de technologies été rendu possible d'une part par les contacts qu'on a eu à l'époque avec schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le lange Lustre - Il a été développé dans un laboratoire auquel j'ai appartenu un langage qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre l'offre de la technologie finalement correspondait aux besoins de nos entreprises notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques est outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques outil qui est dédié pour la conception et la génération code de logistique le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques le temps réel critique donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique au cas en comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaine il y a avionique transports terrestres aussi bien ferroviaire que automobile et puis énergie l'application critique en question consiste à surveiller un certain nombre de valeurs de mesures de température de flux neutres de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques de éventuellement les corréler entre eux et décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence est à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête besoin d'avoir un outil peut être un langage plus pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour le cap des application d'un peu plus grand volume travail qui a été fait autour du langage juste être un travail en termes de recherche relativement classique qui donne une grammaire donnée sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantiques opérationnels très précis etc ensuite sur les méthodes de preuve on a plus particulièrement privilégier une méthode de preuve particulière qui est le modèle tchèque sur lequel qui donne d'assez bon et vu comme dans domaine des langages cinq rhumes sur la génération de code a été développée des recherches spécifiques en vue de d'augmenter la qualité du code de qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien du code d'exécution place mémoire localité du com en terme de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de l'introduction de bologne dans le congélateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il maîtriser complètement le comportement et donner à utilisateur une forme d'expression qui soit plus proche de ses habitudes possibles on peut peut limiter façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible façon la distorsion entre l'idée que j'ai réalisé le que je réalise vraiment d'une part parce que la forme extérieure du langage et de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage de la façon dont l'habitude de réfléchir penser problème est d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématique lui confère une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une c'est une sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification sémantique des feux maîtrisées nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langage habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens ce que nous nous cachons est ensuite les techniques de compilation que nous a amenés la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible sky donne en termes de d'appropriation de l'outil des résultats exceptionnels c'est à dire plus assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que assimilée en moins de trois jours nous tirent atteint son objectif oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense pense qu'on aurait toutes les difficultés du monde à sortir le réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil serait ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente logiciel développé avec un outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection de caunes le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code le volume de côté techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins techniquement ce ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale le reste en fait on rend compte comme partout qu'on fait confiance à la compétence des et des entreprises qui construisent les avions ou les centrales nucléaires et également entendu aux autorités de certification qui vérifient que compétences là où on ne voit dans un bon processus de façon crédible zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque il existe pas plus qu'on fait en humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça j'appelle donc le service film du cic système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC système personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier personnel m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 m'appelle pierre belfond je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'inga après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA après un passage donc de en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans en dans l'industrie la grande industrie électronique française j'ai créé j'ai dit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit une petite entreprise de services en communication le dirigeant de la cgil je appelle jean-pierre bénabar c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS jm'appelle Jean-Pierre Bénatard c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard c'la société d'exploitation de jetons sécurisé nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société janvier quatre-vingt onze il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi il m'a contacté euh parce que on avait une certaine confiance euh mutuellement sécuriser c'est dans son apparence une boîte de caisse ou qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante elle semble d'une manière très particulière en ce sens que le champ de cette boîte de où original ça veut dire que chaque champ séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant séquences sonores émises par le jetons ont une séquence unique qui n'est peut être reproduite ni prédite elle est unique à cet instant elle change d'une fois à l'autre sur le même jetons elles sont toutes différentes d'de temps à l'autre seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central a créé les jetons au moment où on introduit les paramètres dans le jetons qui vont lui permettre de chanter et capable de reconnaître que cette séquence a été mise dans le bon ordre et à la bonne heure c'était poser la question à l'époque de si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque si prendrait un alloué du commerce qui était universellement répandu edf et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un alouette mi novembre je lui ai demandé de réfléchir à la création d'un an à un algorithme qui serait euh optimisé pour le jetons est intéressant dans mon application le dess qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là faut se placer dans des normalement la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau qu'on a fait c'est un générateur pseudo à l'étroit qu'espère de très grands cycles et euh se sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur sur une une une clé énorme quel fond est revenu avec eux avec un algorithme qui était euh tout à fait euh tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse jetons cet algorithme le pays est une des possibilités pour nous euh à un moment ou un autre de basculer ou de réaliser un système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme l'E P A I est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique la visant le pays avoir inventé cette albright moi j'étais un peu perdu parce qu'on ne peut pas être jugé partie on ne peut pas à la fois inventer un truc et à la fois le qualifier c'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'ua je suis venu les les trouver avec mon aldgate leur expliquer je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme l'E P A I est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a gros ethnie même c'est une nécessite une innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a une y a un travail considérable qui est fait non pas pour le créer pour le valider et on a besoin d'utiliser les derniers les derniers résultats de vraiment de la la algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats algroup rythmique et de la complexité pour s'assurer que son comportement euh disons au début son comportement à saint optique etc s euh sans sans convenable le savoir-faire de l'inga en domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de complexité a été a été fondamental pour pour la la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation on est dans le monde de l'innovation et que je cherche à avoir euh des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctive dont dont dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement je pense que c'est un pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement partir du moment où on a on a commencé vraiment à explorer les possibilités du pays on s'est aperçu qu'avait y il un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine démarre en ce moment qui est en pleine euh en pleine expansion là d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la l'explosion des réseaux à l'explosion des micros ordinateurs etc les gens les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin des fichiers qui n'ont pas été modifiés voire toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été on a on en calcule un autre crypto graphique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe cette chose c'est cette chose là laquelle le pays semble euh bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer c'est un réalisateur je sais pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas concept un gain temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que de lier des formules mathématiques sur le papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur papier bien il va le faire chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur chargé de une rea sofia-antipolis dont le s'affaire un projet qui fait du calcul formel m'appelle christophe garnier et je travaille à sinologue société technology filiale de line riia donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche suis ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau ingénieur à christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes christophe garnier le logiciel gem c'est un logiciel de modélisation de systèmes mécaniques c'est à dire une suspension de voiture robot poli articulé pour aérospatiale c'était les problèmes de déploiement de générateurs solaire il y a au départ toute une partie de mise en équation tous les élèves d'écoles d'ingénieurs ou universitaires de mécanique un savent que c'est un peu c'est compliqué on aligne énormément d'équation donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations donc on a décidé de passer à étape l'calcul formelle enfin c'était l'ordinateur qui appartient à une description du système encore l'articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force automatiquement les équations et après gênerait automatiquement le simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur était en contact avec la guérilla dès début à cette époque la faisait régulièrement des cours donc on avait été ces cours pour euh un peu voir ce qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir qu'on pouvait attendre des calculs formels qu'est-ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi peut intervenir le calcul formel c'est une part dans la mobilisation tout à fait au début qui est quand même une grande activité industrielle c'est à dire c'à partir de la description d'un système qu'on est en train de concevoir ou entre un on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances quelques formelle peut intervenir pour générer les équations qui gouvernent qui gouverne système qui gouverne l'évolution ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système je suis arrivé à aérospatiale cannes il y avait des gens qui a contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui contrôle le système mécanique par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par contrôler un satellite avec des appendices flexibles des panneaux solaires ou des antennes pour faire ça il faisait des modèles mécaniques à la elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main elles élaborer les lois contrôle elle était intéressée à des simulateurs il permettait de vérifier que les lois de contrôle qu'avaient conçu était à valable tout ceci était très fastidieux en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué aussi bien moment où on écrivait des équations qu'au moment où j'aimerais le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes fois ça demandait plusieurs mois de travail content ça nous a permis d'élaborer une systématique faire cette un cette mise en cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation c'est à partir de là qu'on s'est dit mais si on sait le faire à la main est capable de le écrire dans un logiciel qui manipule des formules comme donc comme tous les systèmes de calcul formel donc l'idée est partie de partir de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là deuxième étape où peut intervenir le cac c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations mais souvent il faut les résoudre le but final c'est d'avoir des d'avoir une raison du numérique d'avoir avec cours d'avoir des graphiques décrivent le comportement du système il faut créer des simulateurs numériques là des logiciels plus formels peuvent être utiles pour partir en partant des équations gênerait automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique on s'est rendu compte mais en fait un réalisant quelque formel un simulateur très performant et en fait un rapport avec d'autres applications du type panneaux solaires simplifier les panneaux solaires l'a développé une articulation était beaucoup plus simple au mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mécanique par on n'arrivait plus à tester le panneau au sol et un changement total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé les tests élémentaires il a pas de test de tout le système représentatif publié vraiment dans l'espace et en fait euh la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation compte en ce qu'on avait fait est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant est qu'il y une expérience qui avait été faite à bord de la station mir c'est un jean-loup chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé les maquettes utilisant la même articulation mais bien entendu notre attaque beaucoup plus réduite avaient été filmées en retour sur un record elle était bien passée le calcul formel c'est euh je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais processeur pour le calcul numérique c'est à dire qu'ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande certain travail d'une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas réticence c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat que on n'existe pas toujours de résultats certains problèmes mathématiques il faut voir que les résultats qu'au fond calcul formel ils sont moins que le calcul numérique c'est à qu'on ne peut pas traiter tout normalement alors qu'on arrive quasiment tous numériquement quand quand on obtient une solution analytique c'est une solution qui est exactement quand ça ans la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat parce que il n'existe pas toujours de résultats à certains problèmes mathématiques Ce qu'il faut voir que les résultats que fournit le calcul formel ils seront moins nombreux que les résultats que fournit le calcul numérique c'est à dire qu'on ne peut pas traiter tout normalement alors qu'on arrive à traiter quasiment tout numériquement mais quand on obtient une solution analytique c'est une solution qui est exacte intrinsèquement la deuxième deuxième c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écrans et on va être un perdu mais de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat parce que il n'existe pas toujours de résultats à certains problèmes mathématiques Ce qu'il faut voir que les résultats que fournit le calcul formel ils seront moins nombreux que les résultats que fournit le calcul numérique c'est à dire qu'on ne peut pas traiter tout normalement alors qu'on arrive à traiter quasiment tout numériquement mais quand on obtient une solution analytique c'est une solution qui est exacte intrinsèquement Enfin la deuxième chose c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écran et on va être un peu perdus vis-à-vis de cette masse de résultats rentre des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique d'exception exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat parce que il n'existe pas toujours de résultats à certains problèmes mathématiques Ce qu'il faut voir que les résultats que fournit le calcul formel ils seront moins nombreux que les résultats que fournit le calcul numérique c'est à dire qu'on ne peut pas traiter tout normalement alors qu'on arrive à traiter quasiment tout numériquement mais quand on obtient une solution analytique c'est une solution qui est exacte intrinsèquement Enfin la deuxième chose c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écran et on va être un peu perdus vis-à-vis de cette masse de résultats Ca rend des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement Et en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique dès que ce n'est plus exploitable pour lui l'oeil donc il a pas l'habitude de pousser plus loin le côté symbolique je pense que ça ça explique un peu ça explique réticence je suis convaincu que l'industrie module un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat parce que il n'existe pas toujours de résultats à certains problèmes mathématiques Ce qu'il faut voir que les résultats que fournit le calcul formel ils seront moins nombreux que les résultats que fournit le calcul numérique c'est à dire qu'on ne peut pas traiter tout normalement alors qu'on arrive à traiter quasiment tout numériquement mais quand on obtient une solution analytique c'est une solution qui est exacte intrinsèquement Enfin la deuxième chose c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écran et on va être un peu perdus vis-à-vis de cette masse de résultats Ca rend des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement Et en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique dès que ce n'est plus exploitable pour lui à l'oeil et donc il n'a pas l'habitude de pousser plus loin le côté symbolique - Donc je pense que ça ça explique un peu la réticence Moi je suis convaincu que il y a une utilisation possible du calcul formel dans l'industrie modulo un petit investissement initial que c'est un différent de l'de faire un état d'esprit un différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat parce que il n'existe pas toujours de résultats à certains problèmes mathématiques Ce qu'il faut voir que les résultats que fournit le calcul formel ils seront moins nombreux que les résultats que fournit le calcul numérique c'est à dire qu'on ne peut pas traiter tout normalement alors qu'on arrive à traiter quasiment tout numériquement mais quand on obtient une solution analytique c'est une solution qui est exacte intrinsèquement Enfin la deuxième chose c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écran et on va être un peu perdus vis-à-vis de cette masse de résultats Ca rend des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement Et en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique dès que ce n'est plus exploitable pour lui à l'oeil et donc il n'a pas l'habitude de pousser plus loin le côté symbolique - Donc je pense que ça ça explique un peu la réticence Moi je suis convaincu que il y a une utilisation possible du calcul formel dans l'industrie modulo un petit investissement initial C'est vrai que c'est un peu différent de ce qu'on a l'habitude de faire il faut avoir un état d'esprit un petit peu différent quelquefois on tout à fait il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat parce que il n'existe pas toujours de résultats à certains problèmes mathématiques Ce qu'il faut voir que les résultats que fournit le calcul formel ils seront moins nombreux que les résultats que fournit le calcul numérique c'est à dire qu'on ne peut pas traiter tout normalement alors qu'on arrive à traiter quasiment tout numériquement mais quand on obtient une solution analytique c'est une solution qui est exacte intrinsèquement Enfin la deuxième chose c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écran et on va être un peu perdus vis-à-vis de cette masse de résultats Ca rend des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement Et en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique dès que ce n'est plus exploitable pour lui à l'oeil et donc il n'a pas l'habitude de pousser plus loin le côté symbolique - Donc je pense que ça ça explique un peu la réticence Moi je suis convaincu que il y a une utilisation possible du calcul formel dans l'industrie modulo un petit investissement initial C'est vrai que c'est un peu différent de ce qu'on a l'habitude de faire il faut avoir un état d'esprit un petit peu différent Mais quelquefois on est tout-à-fait à notre place dans l'industrie il faut montrer il faut démontrer c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat parce que il n'existe pas toujours de résultats à certains problèmes mathématiques Ce qu'il faut voir que les résultats que fournit le calcul formel ils seront moins nombreux que les résultats que fournit le calcul numérique c'est à dire qu'on ne peut pas traiter tout normalement alors qu'on arrive à traiter quasiment tout numériquement mais quand on obtient une solution analytique c'est une solution qui est exacte intrinsèquement Enfin la deuxième chose c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écran et on va être un peu perdus vis-à-vis de cette masse de résultats Ca rend des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement Et en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique dès que ce n'est plus exploitable pour lui à l'oeil et donc il n'a pas l'habitude de pousser plus loin le côté symbolique - Donc je pense que ça ça explique un peu la réticence Moi je suis convaincu que il y a une utilisation possible du calcul formel dans l'industrie modulo un petit investissement initial C'est vrai que c'est un peu différent de ce qu'on a l'habitude de faire il faut avoir un état d'esprit un petit peu différent Mais quelquefois on est tout-à-fait à notre place dans l'industrie il faut montrer il faut démontrer que c'est utile que c'est faisable
Une application critique c'est une application qui VOIX 1 - si elle ne fonctionne pas correctement peut mettre en péril la sécurité de l'avion et de son pilote en particulier ou éventuellement la sécurité de passagers s'il s'agit d'avions civils VOIX 2 - zéro défaut ça voudrait dire que on était capables d'exprimer toutes les propriétés qu'on veut voir réalisées ce qui parait un peu illusoire VOIX 3 - Et d'une certaine façon la spécification formelle va devenir le contrat Je m'appelle Jean SAS et suis responsable d'un département chez Dassault Aviation qui s'occupe de définir des systèmes à base de calculateurs temps réel et de réseaux temps réel également qui font partie des systèmes qui sont montés sur les avions d'armes de la maison Dassault - Je m'appelle Yves Auffray je suis ingénieur chez Dassault dans un département d'intelligence artificielle et d'informatique avancée dans lequel je fais de la veille technologique sur des outils de programmation de systèmes embarqués - Je m'appelle Emmanuel Le Dino Je travaille à la division des études avancées et je dirige un service sur les méthodes formelles appliquées de fonctionnement et notamment la veille technologique dans ce domaine là et en particulier je collabore avec des centres de recherche dans le domaine des formalisations de spécifications et de preuves formelles et notamment à l'lnria La problématique c'est essayer de faire des systèmes enfin sur lesquels reposent la vie du pilote la réussite de la mission etc et de le faire avec des outils qui assurent un maximum de confiance On a commencé par s'intéresser à Esterel au langage synchrone Esterel développé pour tout ce qui est automate donc systèmes discrets - ensuite on s'est intéressé au système COQ c'est un système de spécifications de procédure de type algorithme sur structure de données Esterel c'est un ensemble de choses je pense qu'on peut dire que c'est d'abord un langage de programmation un formalisme dans lequel on spécifie des comportements Nos systèmes sont des systèmes réactifs il y a un pilote dans la boucle il effectue un certain nombre de manipulations sur son système quand il est en vol et qu'il effectue sa mission et il faut qu'o imagine qu'on spécifie la manière dont le système va réagir à ces sollicitations du pilote - De la même manière le système lui-même réagit à des évènements extérieurs des menaces ou d'autres des besoins en communication ou des choses comme ça il nous faut des mécanismes de spécifications qui nous permettent de décrire ce système dans un premier temps donc il y a un aspect description et ensuite de voir comment il se comporte donc il y a un aspect simulation - Et c'est aussi et c'est sans doute un des points forts c'est aussi toute une batterie d'outils de vérification de programme C'est là où Esterel peut peut avoir un avantage compétitif par rapport à d'autres environnements disponibles sur le marché qui est qu'on pourrait prouver a priori qu'une définition est bonne par rapport à des besoins donnés c'est cet aspect de preuve d'Esterel qui est le l'aspect le plus innovant qui nous intéresse On a développé un logiciel qui est destiné à un calculateur embarqué dans l'avion dans le Rafale donc ça a été spécifié programmé vérifié on l'a mis dans le calculateur on a testé ses performances jusqu'à un point où on pourrait l'embarquer L'opération n'est pas totalement terminée de notre point de vue elle est très largement positive si l'on considère les propriétés qu'on a prouvées grâce à l'outil de preuve associé Esterel que cette propriété est réalisée quelle que soit l'exécution que l'on considère du programme Auparavant tout se sait En gros à base de simulation on ne pouvait évidemment pas atteindre sur aucune propriété l'exhaustivité / Le système COQ introduit une nouvelle méthodologie outillée de programmation qu'on peut résumer par l'expression programmation par preuve - Alors c'est quelque chose d'assez assez étonnant vous partez de la spécification et vous faites une preuve sur cette spécification en visant un algorithme et au bout du compte vous construisez un algorithme qui par construction est correct vis-à-vis de la spécification - En fait il y a 2 approches soit j'ai un programme et une spécification et partant du programme je vais essayer de montrer qu'il est correct vis-à-vis de sa spécification soit je parle de la spécification j'ai une idée du programme qui va réaliser cette spécification mais je vais le construire en faisant une preuve que la spécification a un sens et prouver que la spécification a un sens c'est prouver que justement il existe un moyen de la réaliser - Alors qu'est-ce est-ce que ça veut dire prouver une spécification en général la spécification elle dit quelles que soient les données d'entrée vérifiant telles hypothèses alors on peut produire un résultat qui aura telles propriétés Ce qu'on prouve c'est qu'on peut effectivement toujours produire ce résultat et on fait une preuve dite constructive et donc on on construit la façon de produire le résultat et cette façon de construire c'est l'algorithme c'est le programme que l'on veut prouver correct - Pour moi COQ est un est un développement exploratoire assez futuriste C'est à dire que la distance entre COQ et l'applicatif - et l'application de COQ est une distance qui est vraisemblablement plus importante que pour Esterel COQ est complètement complémentaire par rapport à Esterel Esterel ça capture tout ce qu'on peut faire de façon automatique sur le booléen donc en termes d'applications C'est tout ce qui est événement et séquence d'événements - aspects temporels - sur du discret Et là c'est de la preuve automatique Alors quand je dis booléen ça peut être étendu à entiers bornés ou types énumérés Mais dès qu'on tombe sur des flottants donc des réels - sur des listes des arbres des mots donc qui appartiennent à des domaines de données qui sont infinis Alors là Esterel n'opère plus et on utilise COQ - Aujourd'hui les ingénieurs qui conçoivent les algorithmes n'utilisent pas COQ eux-mêmes on le fait pour eux on leur demande de nous donner des études de cas on leur transmet les résultats et on attend justement que le système évolue que son interface soit vraiment disponible pour le mettre dans leurs mains Je crois qu'aujourd'hui ça serait un rejet Ce qu'apporterait ce type d'outils COQ Esterel C'est la possibilité de voir a priori les problèmes - Actuellement les méthodes pour les logiciels critiques reposent sur des méthodes classiques de qualité mais également beaucoup sur la validation - Nous avons actuellement atteint une limite de complexité qui fait que cette validation va être de plus en plus importante et va se révéler peut-être de plus en plus coûteuse D'où l'intérêt de regarder la possibilité effectivement d'utiliser des outils qui nous permettent de supprimer certaines catégories de validation C'est un sujet délicat dans la mesure où il faudra faire admettre qu'on va supprimer certaines parties de validation et prouver qu'on est capable de les supprimer C'est là un petit peu l'enjeu de l'introduction de ces outils et finalement le challenge qu'ils ont à relever c'est de montrer qu'ils sont capables de remplacer ces activités de validation en aval et c'est pas gagné Toute notre approche c'est de dire on peut automatiser si vous avez décidé d'automatiser je pense qu'il faut mettre en place une organisation de développement qui conduit à développer un logiciel dont on maîtrise la qualité et utiliser des techniques qui permettent d'atteindre cette qualité Je suis Daniel Pilou je suis directeur technique de Verilog Verilog est une société de génie logiciel c'est-à-dire une société qui commercialisé et fabrique des logiciels pour aider à au développement de logiciels Actuellement je suis responsable d'un pôle de compétences logicielles au sein de la direction technique direction des recherches En 1989 Schneider Electric nous a approchés pour mettre sur le marché le logiciel Saga de - - - qui était basé sur le langage LUSTRE - Il a été développé dans un laboratoire auquel j'appartenais un langage qui s'appelle LUSTRE qui est connu sous le nom de langage synchrone J'ai participé à la définition de ce langage et ça a été le cadre de ma thèse et le transfert de technologies a été rendu possible d'une part par les contacts qu'on a eus à l'époque avec Schneider et le constat l'offre de la technologie finalement correspondait aux besoins de l'entreprise notamment pour ses développement d'applications critiques Saga LUSTRE est un outil qui est dédié pour la conception et la génération de code de logiciels temps réel critiques critique Donc on va retrouver comme utilisateurs de ce logiciel là les acteurs du domaine système temps réel critique Donc il y a comme domaines il y a avionique - transports terrestres aussi bien ferroviaire que automobile - et puis énergie L'application critique en question consiste à surveiller un certain nombre de valeurs - de mesures - de température - de flux neutroniques et d'éventuellement les corréler entre eux et de décider de déclencher un arrêt d'urgence c'est-à-dire à de faire tomber des barres de graphite au fond de la piscine pour que la réaction nucléaire s'arrête Le besoin était d'avoir un outil et peut-être un langage plus formalisé pour passer le cap des application d'un peu plus grands volumes - Le travail qui a été fait autour du langage est un travail en termes de recherche relativement classique de type donner une grammaire donner un sémantique opérationnelle très précise et caetera Ensuite sur les méthodes de preuve on a plus particulièrement privilégié une méthode de preuve particulière qui est le "model checking" qui donne d'assez bons résultats dans domaine des langages synchrones Et sur la génération de code ont été développées des recherches spécifiques en vue d'augmenter la qualité du code - qualité au sens aussi bien performance du code - temps d'exécution - place mémoire - que qualité du code en termes de non-introduction de bugs dans le compilateur Si on veut avoir un logiciel de contrôle qui soit suffisamment fiable il faut en maîtriser complètement le comportement et donner à l'utilisateur une forme d'expression qui soit le plus proche de ses habitudes possible On peut limiter de cette façon la distorsion qu'il y a entre l'idée que j'ai du programme que je veux réaliser et le programme que je réalise vraiment D'une part parce que la forme extérieure du langage est proche de la façon dont j'ai l'habitude de réfléchir et de penser à mon problème et d'autre part parce que les fondements du langage sont mathématiques et lui confèrent une signification une sémantique totalement définies maîtrisées Nous avons basé notre outil sur un éditeur graphique qui reprend absolument les langages habituellement utilisés non pas par des informaticiens mais par les gens qui font les automatismes d'avion les automatismes de son train qui est l'électronique habituel donc qui est très très proche de la culture des gens Simplement ce que nous nous "cachons" c'est ensuite toutes les techniques de compilation tout que nous a amené la recherche de façon à ce que ça soit le plus transparent possible Ce qui donne en termes d'appropriation de l'outil des résultats exceptionnels c'est à dire que l'outil est assimilé en moins de 3 jours - Est-ce que l'outil a atteint son objectif - Oui je pense Je pense qu'on aurait toutes les difficultés du monde à sortir le à réaliser le contrôle commande sans l'aide de l'outil Ne serait-ce que pour le volume de logiciels que ça représente L'ensemble du logiciel développé avec l'outil pour la protection est de l'ordre de 500 mille lignes de code Avant les volumes de code étaient beaucoup plus faibles de l'ordre de dix fois moins Les techniques ne sont qu'un élément de la crédibilité globale Pour le reste en fait on se rend compte comme partout qu'on fait confiance à la compétence des entreprises qui construisent les avions ou les centrales nucléaires et également bien entendu aux autorités de certification qui vérifient que ces compétences-là ont été mises en oeuvre dans un bon processus de façon crédible et caetera Le zéro risque n'existe pas c'est clair - Ceci il n'existe pas plus quand c'est un humain qui dirige un train ou quelque chose comme ça J'appelle donc le service FILBANK du CIC Le système est en train d'authentifier le code personnel et la séquence de ton Il se met en communication avec le système bancaire le serveur bancaire VOIX TELEPHONE Pour connaître les informations concernant votre compte faites le 1 Je m'appelle Pierre Calfont je suis un ancien chercheur de l'INRIA et après un passage donc de 11 ans dans l'industrie la grande industrie électronique française j'ai créé Cogenit qui est une petite entreprise de services en télécommunications - Je suis le dirigeant de l'ESEJS je m'appelle Jean-Pierre Bénatard SEJS c'est la société d'exploitation de jetons sécurisés nous avons créé la société le 1er janvier 1991 il a créé lui-même sa boîte un peu à la même époque que moi Il m'a contacté parce que on avait une certaine confiance mutuellement - Le jeton sécurisé c'est dans son apparence une boîte de cachous qui chante et elle chante d'une manière très particulière en ce sens que le chant de cette boîte de cachous est original ça veut dire que chaque chant émis chaque séquence sonore émise par le jeton est une séquence unique qui ne peut être reproduite ni prédite Elle est unique à cet instant elle change d'une fois à l'autre sur le même jeton et elles sont toutes différentes d'un jeton à l'autre - Seul le système central qui a créé les jetons au moment où on introduit les paramètres dans le jeton qui vont lui permettre de chanter est capable de reconnaître que cette séquence a été émise dans le bon ordre et à la bonne heure - Il s'était posé la question à l'époque Ils s'étaient posé la question à l'époque de savoir s'ils prendraient un algorithme du commerce qui est universellement répandu qui est le DES et si on pourrait pas faire un truc encore plus petit meilleur marché éventuellement avec un algorithme innovant - Je lui ai demandé de réfléchir à la création d'un algorithme qui serait optimisé pour le jeton et intéressant dans mon application - Le DES eset élément qui est commercial qui est largement pratiqué mais dont on sait aujourd'hui qu'une attaque massive peut arriver à le casser enfin je crois que pour le jeton on n'en est pas encore là Il faut se placer dans le monde de la sécurité on ne fait pas de cadeau Ce qu'on a fait c'est un générateur pseudo aléatoire qu'on espère de très grand cycle et basé sur une clé énorme - Pierre Calfond est revenu avec eux avec un algorithme qui était tout à fait puissant tout à fait compatible pour une implantation au moins dans une première analyse dans le jeton cet algorithme le PAI est une des possibilités pour nous à un moment ou un autre de basculer ou de réaliser un sous-système spécifique utilisant le P A I Après avoir inventé cet algorithme moi j'étais un peu perdu parce qu'on ne peut pas être juge et partie on ne peut pas à la fois inventer un truc et à la fois le qualifier C'est ce qui m'a conduit à prendre contact avec mes anciens collègues de l'INRIA je suis venu les trouver avec mon algorithme je leur ai expliqué et je leur ai demandé d'apporter une valeur ajoutée en le validant c'est-à-dire que il y a l'algorithme lui-même qui nécessite une certaine innovation etc puis il y a un travail considérable qui est fait non pas pour le créer mais pour le valider et on a besoin d'utiliser les derniers résultats de la recherche algorithmique et de la complexité pour s'assurer que son comportement disons au début son comportement asymptotique etc sont convenables Le savoir-faire de l'INRIA dans le domaine de d'algorithmique et de complexité a été fondamental pour la validation Comme on est dans le monde de l'innovation et que je cherche à avoir des caractéristiques distinctives c'est-à-dire un algorithme dont l'originalité dans l'application est telle que personne n'arrivera raisonnablement à le casser - je pense que c'est un sujet intéressant - mais pas applicable immédiatement A partir du moment où on a commencé vraiment à explorer les possibilités du PAI on s'est aperçus qu'il y avait un un domaine qui démarre en ce moment qui est en pleine expansion suite d'ailleurs à la à l'explosion des réseaux à l'explosion des micro-ordinateurs etc les gens ont besoin d'utiliser des fichiers qui n'ont pas été modifiés voir toutes les histoires de virus Donc pour s'assurer qu'un fichier n'a pas été modifié on en calcule un "h-code" cryptographique que l'on signe et c'est cette chose-là à laquelle l'algorithme PAI semble bien adapté c'est cette chose là que nous sommes en train d'explorer Moi je suis un utilisateur du calcul formel je ne suis pas un concepteur - Il y a un gain de temps plutôt que d'aligner des formules mathématiques sur son bloc de papier eh bien il va le faire par ordinateur Je m'appelle Yves Papelier je suis chargé de recherche chez Inria Sophia-Antipolis dans le projet SAFIR un projet qui fait du calcul formel Je m'appelle Christophe Garnier et je travaille à SIMULOG société technologique filiale de l'INRIA donc on est là je dirais pour assurer la valorisation de techniques ou logiciels issus du monde de la recherche Je suis Pascal Rideau Je suis ingénieur Aérospatiale Cannes J'ai développé avec Christophe Garnier le logiciel GEMS - Alors c'est un logiciel de modélisation de systèmes mécaniques c'est-à-dire une suspension de voiture un robot polyarticulé - pour l'aérospatiale c'étaient les problèmes de déploiement de générateurs solaires Donc il y a au départ toute une partie de mise en équations Tous les élèves d'écoles d'ingénieurs ou universitaires qui ont fait de la mécanique savent que c'est compliqué on aligne énormément d'équations Et donc on a décidé de passer à l'étape calcul formel où en fait c'était l'ordinateur qui à partir d'une description du système en articulation en force calculait automatiquement les équations et après générait automatiquement un simulateur En fait on était en contact avec l'INRIA dès le début à cette époque-là l'INRIA faisait régulièrement des cours donc on avait été à un de ces cours pour un peu voir ce qu'on pouvait attendre des calculs formels ce qu'on pouvait faire avec ce qu'on ne pas faire aussi Là où peut intervenir le calcul formel c'est d'une part dans la modélisation tout à fait au début ce qui est quand même une grande activité industrielle c'est à dire c'est partir de la description d'un système qu'on est en train de concevoir ou en train de ou dont on est en train d'analyser les performances Et le calcul formel peut intervenir pour générer les équations qui gouvernent ce système qui gouvernent l'évolution de ce système Quand je suis arrivé à Aérospatiale à cannes il y avait des gens qui faisaient du contrôle de systèmes mécaniques par exemple contrôler un satellite avec des appendices flexibles comme des panneaux solaires ou des antennes - Donc pour faire ça ils faisaient des modèles mécaniques à la main Après ils élaboraient les lois de contrôle et après ils étaient intéressés à avoir des simulateurs qui permettaient de vérifier que les lois de contrôle qu'ils avaient conçues étaient valables Tout ceci était très fastidieux et en plus risqué parce que aussi bien au moment où on écrivait les équations qu'au moment où on générait le simulateur il y avait des risques de faire des fautes A chaque fois ça demandait plusieurs mois de travail - Par contre ça nous a permis d'élaborer une systématique pour faire cette mise en équations cette modélisation - Donc c'est à partir de là qu'on s'est dit mais si on sait le faire à la main on est capable de l'écrire dans un logiciel qui manipule des formules comme tous les systèmes de calcul formel donc l'idée est partie de là La deuxième étape où peut intervenir le calcul formel c'est après ça c'est une fois qu'on a obtenu des équations bien souvent il faut les résoudre Et le but in fine c'est d'avoir des - d'avoir une résolution numérique c'est d'avoir des courbes c'est d'avoir des graphiques qui décrivent le comportement du système Donc il faut créer des simulateurs numériques et là des logiciels de calcul formel peuvent être utiles pour partir en partant des équations générer automatiquement le code de simulation numérique Après on s'est rendu compte en fait un utilisant le calcul formel qu'on obtenait un simulateur très performant et en fait après on est passés à d'autres applications du type déploiement de panneaux solaires Pour simplifier les panneaux solaires l'aérospatiale a développé une articulation était beaucoup plus simple au niveau mécanique mais par contre on n'arrivait plus à tester le panneau au sol - Il y a eu un changement donc total de philosophie au lieu de tester le panneau donc on a testé on a fait les tests élémentaires mais il n'y avait pas de test de tout le système représentatif du déploiement dans l'espace et en fait la qualification du déploiement dans l'espace était faite par simulation Par contre ce qu'on avait fait avant c'est qu'il y avait eu une expérience qui avait été faite à bord de la station MIR c'était un vol où il y avait Jean-Loup Chrétien il avait déployé dans la station MIR des maquettes utilisant la même articulation mais bien entendu de taille beaucoup plus réduite Ca avait été filmé donc après en retour au sol on a corrélé ça avec les simulations et ça s'était très bien passé James et le calcul formel c'est je dirais un préprocesseur pour le calcul numérique c'est à dire qu'on ne va pas manipuler des nombre mais directement des symboles donc des expressions mathématiques donc c'est tout le travail que fait un ingénieur de mise en équation de représentation avant de passer à la partie purement résolution utiliser des outils de calcul formels ça demande de modifier sensiblement les approches qu'on des problèmes ça ça demande un certain travail et surtout une certaine volonté que tout monde n'a pas Les réticences c'est que on n'obtient pas toujours un résultat parce que il n'existe pas toujours de résultats à certains problèmes mathématiques Ce qu'il faut voir que les résultats que fournit le calcul formel ils seront moins nombreux que les résultats que fournit le calcul numérique c'est à dire qu'on ne peut pas traiter tout normalement alors qu'on arrive à traiter quasiment tout numériquement mais quand on obtient une solution analytique c'est une solution qui est exacte intrinsèquement Enfin la deuxième chose c'est que le système de calcul formel peut être capable de générer des résultats extrêmement gros et importants qui vont remplir plusieurs pages d'écran et on va être un peu perdus vis-à-vis de cette masse de résultats Ca rend des expressions qui ne sont pas exploitables directement à l'oeil qui sont après exploitables par la simulation directement Et en fait c'est un c'est une étape où l'ingénieur n'a pas l'habitude d'avoir des expressions en fait il passe au numérique dès que ce n'est plus exploitable pour lui à l'oeil et donc il n'a pas l'habitude de pousser plus loin le côté symbolique - Donc je pense que ça ça explique un peu la réticence Moi je suis convaincu que il y a une utilisation possible du calcul formel dans l'industrie modulo un petit investissement initial C'est vrai que c'est un peu différent de ce qu'on a l'habitude de faire il faut avoir un état d'esprit un petit peu différent Mais quelquefois on est tout-à-fait à notre place dans l'industrie il faut montrer il faut démontrer que c'est utile que c'est faisable et que c'est rentable
Inria-317-Aucun_outil-fr.mp4

Format : .mp4
949,9 Mo
768 x 576 pixels
Fichier H264. Meilleure résolution disponible
Sélection
Voir Selection
Déposer ici pour retirer de la sélection