Intégration de méthodes formelles dans la conception des fonctions logicielles automobiles
Auteur / Autrice : | Vassil Todorov |
Direction : | Frédéric Boulanger |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 09/12/2020 |
Etablissement(s) : | université Paris-Saclay |
Ecole(s) doctorale(s) : | École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire de recherche en informatique (Orsay, Essonne ; 1998-2020) |
référent : CentraleSupélec (2015-....) | |
Jury : | Président / Présidente : Pascale Le Gall |
Examinateurs / Examinatrices : Gérard Berry, Cesare Tinelli, Safouan Taha, Sylvie Putot, Fabrice Kordon, Sylvain Conchon | |
Rapporteurs / Rapporteuses : Gérard Berry, Cesare Tinelli |
Résumé
La part croissante des fonctions d'assistance à la conduite, leur criticité, ainsi que la perspective d'une certification de ces fonctions, rendent nécessaire leur vérification et leur validation avec un niveau d'exigence que le test seul ne peut assurer.Depuis quelques années déjà d’autres domaines comme l’aéronautique ou le ferroviaire sont soumis à des contextes équivalents. Pour répondre à certaines contraintes ils ont localement mis en place des méthodes formelles. Nous nous intéressons aux motivations et aux critères qui ont conduit à l’utilisation des méthodes formelles dans ces domaines afin de les transposer sur des scénarios automobiles et identifier le périmètre potentiel d'application.Dans cette thèse, nous présentons nos études de cas et proposons des méthodologies pour l'usage de méthodes formelles par des ingénieurs non-experts. Le model checking inductif pour un processus de développement utilisant des modèles, l'interprétation abstraite pour démontrer l'absence d'erreurs d'exécution du code et la preuve déductive pour des cas de fonctions critiques de librairie.Enfin, nous proposons de nouveaux algorithmes pour résoudre les problèmes identifiés lors de nos expérimentations. Il s'agit d'une part d'un générateur d'invariants et d'une méthode utilisant la sémantique des données pour traiter efficacement des propriétés comportant du temps long, et d'autre part d'un algorithme efficace pour mesurer la couverture du modèle par les propriétés en utilisant des techniques de mutation.