Analyse et Preuve de robustesse d'une fonction

Objectifs

  • Démonstration de l'efficacité des protections niveau fonction
    • Assertion pre/post
  • Preuve de robustesse
    • Démonstration sur un modèle dont l'environnement n'est pas contraint (résistance à des entrées quelconques)
  • Preuve dans un environnement réaliste
    • Lorsque la démonstration de robustesse n'est pas possible, ajout de contraintes sur l'environnement
    • pour prouver les pre/post
  • Preuve de bon fonctionnement (pas de défaillance)
  • Preuve en présence de défaillance d'une fonction quelconque
  • Utilisation possible : preuve des ranges d'entrées / sorties

Entrées

  • Modèle (spécification exécutable)
  • Pour chaque fonction du modèle à étudier
    • interfaces de la fonction
      • Environnement
      • Autres fonctions
    • Hypothèses de comportement à étudier
      • Assertions
      • Propriétés locales
      • Modes dégradés

Résultats

  • Analyse de robustesse
  • Recommandations de barrières de protection
  • Scénarios de tests applicables à la fonction

Démarche

  • Instrumentation du modèle avec des assertions de contrôle pre/post niveau fonction
  • Co-simulation modèle et modèle instrumenté
  • Détection de contre-exemple sur modèle instrumenté (recherche de violation d'assertion)
  • Modélisation de l'environnement (ajout de contraintes en fonction des contre-exemples détectés)
  • Preuve du modèle instrumenté dans l'environnement (ce dernier peut être vide en cas de robustesse)
    • Preuves de bon fonctionnement locales
    • preuves en présence de défaillance d'une fonction (analyse d'impact, vérification de confinement des défaillances locales d'une fonction)
  • Génération de test