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

Slides:



Advertisements
Présentations similaires
GRAFCET Chaîne d’information Principes généraux Le GRAFCET
Advertisements

Cours de Langage C Récursivité. Objectifs de la séance 11 Connaître la récursivité. Mesurer un temps d’exécution. 2.
AUTOMATISME Chapitre 2: Le GRAFCET.
 Un automatisme est généralement conçu pour commander une machine ou un groupe de machines. On appelle cette machine la "partie opérative" du processus,
CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction ● Déterminer l'image d'un nombre par une.
Telecom ParisTech INF722 – Thomas Robert page 1 Modélisation des activités concurrentes Produits d'automates.
LE SUPPORT D'ORDINATEUR PORTABLE. Problématique Oh, j'ai chaud aux jambes ! Et moi, j'ai chaud à mon processeur !
Des outils pour travailler la compréhension au cycle 2 Je lis, je comprends CE1.
Volée 1316 S3 Cours No 2_3 : Le nombre en 1-2H. Les fonctions du nombre  Dénombrer, énumérer, décrire une collection. Aspect cardinal  Dater, classer,
Chapitre 1 : Cinématique Objectif cinématique : étudier le mouvement des solides sans s’occuper des causes du mouvement  parle de position, trajectoire,
Cours COMPOSANTES DES VECTEURS Dimitri Zuchowski et Marc-Élie Lapointe.
NF04 - Automne - UTC1 Version 09/2006 (E.L.) Cours 5-a Problèmes scalaires instationnaires d’ordre 1 en temps Domaines d’application Notions de schémas.
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Université d’Adrar Diagramme d’états-transitions Présenté par Sbai Omar Benothman.
annuités, mensualités remboursements constants VPM pendant une période ininterrompue
Fonctions et composants électroniques élémentaires
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Groupe Départemental Langue française
épreuve E6 questionnement possible
Détection des erreurs.
Algorithme et programmation
Algorithmique AU El harchaoui noureddine
Algorithmique demander jeu du pendu.
MOT Éditeur de modèles de connaissances par objets typés
Reprise du cours ( ) Aujourd’hui :
Ajouter le code dans une page html
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Trois démarches pédagogiques complémentaires et imbriquées
L’Instruction de Test Alternatif
JAVA et POO : Notion d'héritage
Javadoc et débogueur Semaine 03 Version A16.
Principes de programmation (suite)
Activités algorithmiques
Fonctions logiques et algèbre booléenne
Plans d’expériences: Plans factoriels
Algorithmique & Langage C
Cyber-Sphinx Séance 2.
STAGE BASSIN Antibes/Valbonne Vendredi 10 février 2017
CHAPITRE 1 Introduction à la gestion des affaires
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
1.2 dénombrement cours 2.
PROGRAMMATION ET ENSEIGNEMENT
Langage de modélisation graphique de système
Deuxième partie LE DOSSIER TECHNIQUE DU MARINGOUIN.
Des mathématiques derrière l’intelligence artificielle
Chapitre 3 : Caractéristiques de tendance centrale
G E M A GEMMA uide tude d’ des odes de arche et d’ rrêt
Modélisation objet avec UML
NUMERATION et REPRESENTATION DES NOMBRES
SYSTèMES à évènements discrets
Semaine #2 INF130 par Frédérick Henri.
Langages de programmation TP11
Présentation 9 : Calcul de précision des estimateurs complexes
EPITECH 2009 UML EPITECH 2009
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Jean-Sébastien Provençal
IFT313 Introduction aux langages formels
H. Wertz -- Exécution Symbolique
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Points de vue et sémantiques ad hoc
PROGRAMMATION ET ENSEIGNEMENT
Design, innovation et créativité
Présentation des nouveaux programmes de mathématiques de première des séries technologiques Jessica Parsis.
Pour en moduler l’ouverture et la complexité
Python Nicolas THIBAULT
I. Aouichak, I. Elfeki, Y. Raingeaud, J.-C. Le Bunetel
MOT Éditeur de modèles de connaissances par objets typés
Sera vu dans un prochain cours.
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

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

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

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 »

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

Telecom ParisTech INF722 – Thomas Robert page 5 Cycle en V

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

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

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

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

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

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.

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)...

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

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 ?

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 :

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.....

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

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

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....

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é

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 ∀  ∃            

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!

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.

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 ∃.

Telecom ParisTech INF722 – Thomas Robert page 25 Interprétation des opérateurs temporels Supposons que s= s0.s1.s 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

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 

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

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

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 »)

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