La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Telecom ParisTech INF722 – Thomas Robert page 1 Modélisation Formelle de comportements séquentiels ----------------------------------------------------

Présentations similaires


Présentation au sujet: "Telecom ParisTech INF722 – Thomas Robert page 1 Modélisation Formelle de comportements séquentiels ----------------------------------------------------"— Transcription de la présentation:

1 Telecom ParisTech INF722 – Thomas Robert page 1 Modélisation Formelle de comportements séquentiels ---------------------------------------------------- Vérification de propriétés logiques Sureté de fonctionnement et Vérification formelle Implémentation vs exigences Comportement séquentiels et machine à états Formalisation logique des exigences

2 Telecom ParisTech INF722 – Thomas Robert page 2 Les moyens de la sûreté de fonctionnement Tolérance aux fautes → maitrise à l'exécution des conséquences d'une défaillance Evaluation → capacité à prédire / estimer les attributs du système Prévention → limiter le nombre de fautes pouvant être activées Elimination → Identification des fautes induites par le processus de conception et développement (la faute existe) Puis élimination si possible Petit Rappel

3 Telecom ParisTech INF722 – Thomas Robert page 3 Un exemple sur du code Implémentation de la factorielle en C int fact (int x) { if (x==0) {return 1} else {return x*fact(x-1))} } Fact(x), x>0 fonctionne et fact(-1) ? Quels sont a priori les modes de défaillance ? Quelle est la faute ? Peut on l' éliminer ? Idée : changer la condition et la structure du « if »

4 Telecom ParisTech INF722 – Thomas Robert page 4 Systématisation de l'élimination de fautes Moyens : vérification, validation et test d'applications La validation est le processus répondant à la question : le système réalisé répond bien aux exigences « utilisateur » ? La vérification est le processus répondant à la question : le système correspond il à sa conception ? Intégration dans un processus de développement (V). Chaque étape de conception fournit les entrées à un processus de vérification / validation Le succès de la validation finale dépend des validations intermédiaires

5 Telecom ParisTech INF722 – Thomas Robert page 5 Cycle en V

6 Telecom ParisTech INF722 – Thomas Robert page 6 Confrontation de l'implémentation et des exigences Modèle de l'implémentation == modèle de ce qui sera exécuté – Description de comment cela marche (état interne) – Description de ce que l'on peut/pourrait observer (relation entrée / sortie, ou identification du comportement à l'interface) Représentation des exigences == modèles de ce que l'on veut obtenir – Description de ce que l'on veut éviter, atteindre – Description de contraintes sur a précision des résultats... Représentation commune nécessaire de l'exécution du système

7 Telecom ParisTech INF722 – Thomas Robert page 7 Formalisation d'un programme

8 Telecom ParisTech INF722 – Thomas Robert page 8 Modélisation de comportements séquentiels Que peut on vouloir représenter pour caractériser l'exécution d'un programme : Le lien « entrée » - « sortie » L'évolution de l'état du système et la sémantique de l'état (impulsion ou valeur sur un intervalle) L'interface d'un programme, système avec son environnement Etat == variables

9 Telecom ParisTech INF722 – Thomas Robert page 9 Des variables pour représenter ce qui a une dynamique... Idée : utiliser des variables typées Un modèle : un ensemble des variables Un ensembles de règles pour savoir comment les variables évoluent Que modélise-t-on ? Une dynamique Une réaction Un enchaînement

10 Telecom ParisTech INF722 – Thomas Robert page 10 Les traces d'exécution et séquence d'états Une exécution séquentielle=une dynamique pas à pas Abstraction : transition d'état instantanée discontinue Lors d'un changement d'état de p à q, une transition permet de représenter le changement d'état instantané de l'état p à q Objectif : représenter un changement d'état de manière atomique (non décomposable) Les trois étapes clés de l'exécution d'une fonction : Lecture des paramètres Calcul Écriture du résultat Définition des préconditions D'invariant et post conditions

11 Telecom ParisTech INF722 – Thomas Robert page 11 Sémantique opérationnelle Sémantique de Hoare : définir pour les opérations d'un langage de programmation les « propriétés » que l'état ou les paramètres vérifient avant et après pour représenter l'impact de ces opérations sur l'état du système. Cas de l'évaluation de y=1/x Avant x différent de 0 notons xa cette valeur Après y différent de 0 et y*x est égal à 1. Représentation de la mémoire par un ensemble de variables => l'enchaînement de vecteurs contenant leurs valeurs définit une exécution.

12 Telecom ParisTech INF722 – Thomas Robert page 12 Exemple d'une somme de N nombres L'état du système : N variables contenant les nombre + 1 pour « accumuler les valeurs ». Somme de n1=1, n2=6, n3=-2 dans acc L'exécution d'un système peut être représentée comme une séquence de vecteurs de valeurs associées à un ensemble de variables (eg des entiers associés à n1, n2, n3, acc)...

13 Telecom ParisTech INF722 – Thomas Robert page 13 Problème de représentation compacte IMPOSSIBLE DE TOUTES LES ENUMERER But : se concentrer sur la dynamique de l'état du système et non sur comment on le fait évoluer Utiliser une représentation de graphe pour « factoriser » les chemins d'exécution abbbbbbbb, aabbbbbbbb, aaabbbbbbbb... a b Définition Structure de Kripke (S,I,R,L) : (état, départ, transition, et sémantique) c.a.d un automate tel que L associe à chaque état un vecteur de valeur R recense l'ensemble des transitions I identifie les points de départs de l'exécution Contrainte supplémentaire : tout état doit avoir un successeur

14 Telecom ParisTech INF722 – Thomas Robert page 14 Un exemple Donner la structure de Kripke associée au programme qui demande un mot de passe, autorise jusqu'à 2 erreurs avant de se 'bloquer'. Variables : (pour se simplifier la tâche le mot de passe est un nombre entre 1 et 4) Saisie contient la saisie courante du mot de passe, Nvl_essai est un booléen qui indique d'un nouveau mot de passe vient d'être saisie pour s'authentifier nb_essais mémorise le nombre de mot de passe déjà saisis, mem_mdp contient la valeur du mot de passe (ici 3). Quelles propositions atomiques définir ?

15 Telecom ParisTech INF722 – Thomas Robert page 15 Solution Définir des propositions AP = {Auth, deux_essai, un_essai, nvl_essai (NE)} Auth :: mem_mdp==saisie Deux_essais (DE) :: (Nb_essai==0) Un_essai (UE) :: (Nb_essai ==1) Structure :

16 Telecom ParisTech INF722 – Thomas Robert page 16 Représentation compacte d'ensembles de traces d'exécutions (2) Les problèmes : Définir complètement les valeurs de l'état est très fastidieux. On ne tire pas partie des « arcs » Nommage des transitions et contraintes partielles sur les états. Les transitions nommées == événements e Expression efficace de la relation t : s –e→ s' – Seule la fraction changeant de l'état est décrite – Utilisation de fonctions telles que t : x – e → f(s) pour tout s tel que.....

17 Telecom ParisTech INF722 – Thomas Robert page 17 Automates finis vision événement vs transitions Définition d'un automate fini : A= (Q0,Q,∑,∆,F) Q est un ensemble d’états, contenant e0, l’état dit initial, et un sous-ensemble F d’états dit finaux ∑ est l'ensemble des événements qui seront associés aux transitions de l'automates ∆ est l'ensemble des transitions franchissables dans l'automate, une transition est de la forme (q,e,p) avec q et p dans Q et e dans ∑. franchissement d'une transition Si l'automate est dans l'état q, alors toute transition de la forme (q,e,p) dans ∆ peut être franchie, l'état de l'automate devient alors q'. ettes) – T ⊆  Q  A  Q est l’ensemble

18 Telecom ParisTech INF722 – Thomas Robert page 18 Langage d'un automate fini étiqueté ∑={a,b,d} et Q = (s1,s2,s3) et L(s1)=p, L(s2)=. L(s3)=r. Le langage « reconnu » par un automate fini correspond à l'ensemble des traces permettant d'établir un chemin de transition de ses état initiaux vers ses états finaux Projection état ou événement (permet de masque l'un des deux. a

19 Telecom ParisTech INF722 – Thomas Robert page 19 La nécessité d'un langage d'expressions de « contraintes » sur l'exécution Comment exprimer des contraintes sur ces séquences d'exécutions Les solutions utilisables : Les langages dédiés – sorte de langage d'expressions très compacte et conçu exclusivement pour l'expression de ces contraintes Les logiques formelles Des observateurs....

20 Telecom ParisTech INF722 – Thomas Robert page 20 Introduction aux logiques Rappel sur les logiques propositionnelles Soit AP un ensemble de variable propositionnelle F : (F  ∈  Exemple AP : b1, b2, b3 (booléens) (b1  b2) => (b3  Quand est ce vrai ? Logique du premier Ordre : Variables numériques, booléennes, …, fonctions et prédicats (fonction à valeur booléenne) => quantification ∀  ∃ => dès que l'on fait de l'arithmétique... on tombe sur un problème de décidabilité

21 Telecom ParisTech INF722 – Thomas Robert page 21 La logique du premier ordre Quantification == contraindre l'ensemble des valeurs d'une variable pour lesquelles il faut évaluer une formule ∀  ∃            

22 Telecom ParisTech INF722 – Thomas Robert page 22 Représentation de la dynamique... Représentation explicite des pas d'exécution par une variable cas du distributeur de billet + logique du premier ordre « Si deux codes secrets faux saisis d'affilés, la carte est avalée immédiatement» Formalisation en logique du premier ordre: Saisie_code(c,t) : vrai lorsque le nouveau code c est saisi à l'instant t Valid_code(c) : vrai si c est un code Avale(t) : vrai si la carte est avalée à l'instant t ∀ t,c.[Saisie_code(c,t)    (Valid_code(c))]  ∃ t’>t,c'. ( ∀ t’’.t< t’’  t’   (Saisie_code(c',t’’) ))  Saisie_code(c',t')    (Valid_code(c)) ]  Utilisation d’un paramètre modélisant le temps Trop lourd!

23 Telecom ParisTech INF722 – Thomas Robert page 23 Comment modéliser la dynamique.... Logique temporelle: Forme de logique spécialisée intégrant la notion de séquencement dans le temps opérateurs permettant d’exprimer des notions telles que « toujours », « tant que »,... permet d’énoncer des propriétés sur les exécutions d’un système Il y a plusieurs logiques temporelles : Logique du temps linéaire où à chaque instant on ne peut exprimer une contrainte que sur une poursuite de l'exécution. Logique temporelle du temps arborescent où l'on peut exprimer des contraintes sur plusieurs futurs à la fois.

24 Telecom ParisTech INF722 – Thomas Robert page 24 Définition : les formules de PLTL sont définies par la grammaire suivante : ,  ::= p | q |... | true | false | (formules atomiques)  |  |  |  | (connecteurs booléens) F  | G  |  U  | X   Les formules de LTL sont obtenues en considérant des prédicats atomiques à la place des propositions atomiques, et en ajoutant les quantificateurs ∀  et ∃.

25 Telecom ParisTech INF722 – Thomas Robert page 25 Interprétation des opérateurs temporels Supposons que s= s0.s1.s2......sk est la trace d'exécution du système Gp: «p est toujours vérifiée dans le futur de l'exécution» pour tout j sj prouve p Permet de prouver Gp Fp : «p finit par être vrai dans le futur » il existe j, tel que sj prouve p Permet de prouver Fp Xp : «p est vrai au prochain pas d'exécution » s1 prouve p Permet de prouver Xp p U q : « p est vrai tant que q ne l'est pas au moins une fois » Il existe j, tel que pour tout k<j, sk ne prouve pas q mais sj prouve q, et sk prouve p et sj prouve q Permet de prouver que p U q

26 Telecom ParisTech INF722 – Thomas Robert page 26 Vérification d'un modèle Si l'on considère un modèle M reconnaissant un langage de séquence d'état (vecteur de variables) Alors une formule P est vérifiée sur M si et seulement si pour toute trace tr reconnue par M (L m ), alors tr Permet de prouver P. Exemple : P= F 

27 Telecom ParisTech INF722 – Thomas Robert page 27 Références « Vérification de logiciels », P. Schnoebelen & allii,Vuibert, 1999.

28 Telecom ParisTech INF722 – Thomas Robert page 28 Exercices Cf fiche TD

29 Telecom ParisTech INF722 – Thomas Robert page 29 La logique avec branchement CTL Les formules de CTL sont définies par la grammaire suivante : Φ,Ψ ::= p | q |... | true | false (propositions atomiques) Φ∧Ψ | Φ∨Ψ | Φ⇒Ψ | ¬Φ | (connecteurs booléens) EFΦ | EGΦ | EΦUΨ | EXΦ | AFΦ | AGΦ | AΦUΨ | AXΦ (connecteurs temporels) E, A: quantifications sur toutes les exécutions possibles à partir de l’état courant Les formules sont interprétées sur des états de notre modèle, et non sur une exécution (« formule d’état » vs. « formule de chemin »)

30 Telecom ParisTech INF722 – Thomas Robert page 30 Sématique de E et A Tout d'abord, ces formules se prouvent sur des systèmes à transitions (ie structures de Kripke) Soit succ*(q) l'ensemble des successeurs d'un état q dans une structure de Kripke K E R: il existe un futur où R est prouvée dans K A R : tous les chemins de K prouvent R


Télécharger ppt "Telecom ParisTech INF722 – Thomas Robert page 1 Modélisation Formelle de comportements séquentiels ----------------------------------------------------"

Présentations similaires


Annonces Google