Vérification par model-checking, extension aux systèmes infinis



Documents pareils
Conception des systèmes répartis

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

OCL - Object Constraint Language

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

Model checking temporisé

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Une Architecture de Bureaux Graphiques Distants Sécurisée et Distribuée

STAGE IREM 0- Premiers pas en Python

DG-ADAJ: Une plateforme Desktop Grid

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Chapitre 2 Devine mon nombre!

Cours Bases de données 2ème année IUT

Sécurité des applications web. Daniel Boteanu

Qualité du logiciel: Méthodes de test

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Programmation Web. Madalina Croitoru IUT Montpellier

Environnements informatiques

Problèmes liés à la concurrence

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

BIG Data et R: opportunités et perspectives

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Problème physique. CH5 Administration centralisée

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Cours de Master Recherche

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Installer un domaine DNS

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

TP 1. Prise en main du langage Python

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Cours de Programmation 2

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

Rapport de Mini-Projet en ArcGIS Engine

Arbres binaires de recherche

Paris Airports - Web API Airports Path finding

as Architecture des Systèmes d Information

Plan. Le système de transfert de fichiers d'internet. Introduction aux systèmes de transfert de fichiers Le protocole FTP.

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Formula Negator, Outil de négation de formule.

MS SQL Express 2005 Sauvegarde des données

Programmer en JAVA. par Tama

Paginer les données côté serveur, mettre en cache côté client

Corrigé des exercices sur les références

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Cours de Génie Logiciel

GAME CONTENTS CONTENU DU JEU OBJECT OF THE GAME BUT DU JEU

Recherche dans un tableau

Représentation d un entier en base b

1. Structure d'un programme FORTRAN 95

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Un ordonnanceur stupide

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Chapitre 4 : Exclusion mutuelle

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Master IAC Philippe Caillou DÉVELOPPEMENT DE SMA. Cours 1b

Thème 3 Conception et vérification d architectures de systèmes sur puce

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4

VoD ( Video on Demand ) avec VLC

Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy

Plan du cours. Historique du langage Nouveautés de Java 7

Algorithmique des Systèmes Répartis Protocoles de Communications

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Préparation à l examen EFA en Macro

Vérification formelle de la plate-forme Java Card

RTDS G3. Emmanuel Gaudin

Alfstore workflow framework Spécification technique

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Configurer la supervision pour une base MS SQL Server Viadéis Services

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Stockage du fichier dans une table mysql:

WEB page builder and server for SCADA applications usable from a WEB navigator

Institut français des sciences et technologies des transports, de l aménagement

Objets et Programmation. origine des langages orientés-objet

ACTIVITÉ DE PROGRAMMATION

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Corrigé des TD 1 à 5

Présentation du langage et premières fonctions

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Tutoriel de formation SurveyMonkey

Transcription:

Vérification par model-checking, extension aux systèmes infinis Sébastien Bardin LSV - CNRS & ENS de Cachan

Des programmes fiables? L informatique se répand très vite dans tous les domaines : téléphones, voitures, administration électronique, banques en ligne, etc. Victime de son succès : traite de plus en plus de données sensibles mais les systèmes informatiques ne sont pas toujours assez fiables (license type : le développeur n est pas responsable des dommages causés par un logiciel défaillant). Nécessité de mieux concevoir le logiciel, passer du stade artisanale au stade industriel (génie logiciel).

Les vieilles méthodes ne marchent pas Méthodes usuelles pour assurer la qualité : tests, simulation très coûteux, nécessite beacoup de main d oeuvre qualifiée effort exponentiel dans la taille des programmes, trouve (éventuellement) les erreurs au dernier moment. La taille (et la complexité) des programmes est exponentielle en fonction du temps un éditeur de texte dans les années 70 : 5 000 lignes Word 2000 : 1 500 000 lignes. Besoin d automatiser au maximum la vérification des systèmes informatiques!!

Méthodes formelles Méthodes formelles = méthodes rigoureuses, basées sur la théorie 3 grandes familles de méthodes formelles génération automatique de tests preuve model-checking

Model-Checking - Automatique - Traite un modèle du programme construit à partir des spécifications (protocole, etc.) construit automatiquement à partir du programme - Vérifie que le modèle satisfait certaines propriétés sûreté (le programme ne se bloque pas, la fusée n explose pas, etc.) vivacité (à chaque tentative d intrusion, une alarme est émise)

Exemple, ascenseur System States Actions 4 3 2 Current floor Goal floor Doors status Move up Move down Open doors Close doors 1 RDC

Modélisation On utilise habituellement des automates étendus goal < 4 / goal ++ goal closed := true closed goal>0 / goal open floor=goal/ closed := false move floor<goal / floor ++ floor>goal / floor permet de calculer le système de transition correspondant. automate qui représente les comportements du modèle. les noeuds sont des états du système les arcs sont étiquettés par des actions du système.

Vérification, cas fini Quand le système de transition est fini (ex : que des variables bornées) on peut le construire entièrement puis décider des propriétés. Idée le système de transition est un automate M la propriété est un automate de mots infinis P vérifier la propriété revient à tester M (P c ) =? Ces techniques sont bien maîtrisées techniques pour passer l explosion du nombre d états (BDDs, ordres partiels) outils efficaces nombreuses études de cas, début d utilisation industrielle

Exemple, propriété de sûreté S bad S 0

Exemple, propriété de sûreté S bad S 0

Exemple, propriété de sûreté S bad S 0

Exemple, propriété de sûreté S bad S 0

Systèmes infinis Se restreindre aux systèmes finis n est pas raisonnable les causes de l infini sont courantes en pratiques horloges, canaux de communication non bornés a priori, probabilités des variables bornées mais très grandes (variables entières, adresses mémoires, etc.) raisonnements paramétriques

Extensions du model-checking Pour s attaquer aux systèmes infinis - Sous classes décidables automates temporisés [groupe TEMPORISÉ], systèmes bien structurés [groupe INFINI] - Mais on ne peut traiter automatiquement la majorité des modèles intéressants abstractions finies (modélisation difficile, faux négatifs, etc.) semi-algorithmes, qui fonctionnent bien en PRATIQUE [groupe INFINI]

Accélérer le model checking Comment gérer l infini? - Les noeuds du système de transition sont des états symboliques un noeud représente un ensemble (infini) d états nécessité de représentations symboliques facilement manipulables équations pour des entiers automates pour des contenus de canaux de communication, etc. - Les méthodes d accélération ou widening calculent en un coup un ensemble infini d évolutions du système If x 0 then x := x + 2

Accélérer le model checking Comment gérer l infini? - Les noeuds du système de transition sont des états symboliques un noeud représente un ensemble (infini) d états nécessité de représentations symboliques facilement manipulables équations pour des entiers automates pour des contenus de canaux de communication, etc. - Les méthodes d accélération ou widening calculent en un coup un ensemble infini d évolutions du système If x 0 then x := x + 2 itération classique

Accélérer le model checking Comment gérer l infini? - Les noeuds du système de transition sont des états symboliques un noeud représente un ensemble (infini) d états nécessité de représentations symboliques facilement manipulables équations pour des entiers automates pour des contenus de canaux de communication, etc. - Les méthodes d accélération ou widening calculent en un coup un ensemble infini d évolutions du système If x 0 then x := x + 2 Si S 0 = {0} alors Reach {0}. itération classique

Accélérer le model checking Comment gérer l infini? - Les noeuds du système de transition sont des états symboliques un noeud représente un ensemble (infini) d états nécessité de représentations symboliques facilement manipulables équations pour des entiers automates pour des contenus de canaux de communication, etc. - Les méthodes d accélération ou widening calculent en un coup un ensemble infini d évolutions du système If x 0 then x := x + 2 Si S 0 = {0} alors Reach {0, 2}. itération classique

Accélérer le model checking Comment gérer l infini? - Les noeuds du système de transition sont des états symboliques un noeud représente un ensemble (infini) d états nécessité de représentations symboliques facilement manipulables équations pour des entiers automates pour des contenus de canaux de communication, etc. - Les méthodes d accélération ou widening calculent en un coup un ensemble infini d évolutions du système If x 0 then x := x + 2 Si S 0 = {0} alors Reach {0, 2, 4}. itération classique

Accélérer le model checking Comment gérer l infini? - Les noeuds du système de transition sont des états symboliques un noeud représente un ensemble (infini) d états nécessité de représentations symboliques facilement manipulables équations pour des entiers automates pour des contenus de canaux de communication, etc. - Les méthodes d accélération ou widening calculent en un coup un ensemble infini d évolutions du système If x 0 then x := x + 2 itération classique Si S 0 = {0} alors Reach {0, 2,..., 2.k} et ainsi de suite, ne s arrête jamais!!

Accélérer le model checking Comment gérer l infini? - Les noeuds du système de transition sont des états symboliques un noeud représente un ensemble (infini) d états nécessité de représentations symboliques facilement manipulables équations pour des entiers automates pour des contenus de canaux de communication, etc. - Les méthodes d accélération ou widening calculent en un coup un ensemble infini d évolutions du système If x 0 then x := x + 2 Avec accélération

Accélérer le model checking Comment gérer l infini? - Les noeuds du système de transition sont des états symboliques un noeud représente un ensemble (infini) d états nécessité de représentations symboliques facilement manipulables équations pour des entiers automates pour des contenus de canaux de communication, etc. - Les méthodes d accélération ou widening calculent en un coup un ensemble infini d évolutions du système If x 0 then x := x + 2 Avec accélération Si S 0 = {0} alors Reach = 2.N en un pas de calcul.

Accélérer le model checking- 2 On a besoin de 1- Représentation symbolique bonnes propriétés de clôture (union, intersection, complément, image) efficacité 2- Une fonction d accélération 3- Une heuristique pour trouver les cycles à accélérer.

Accélérer le model checking- 3 Principaux problèmes 1- L ensemble d accessiblité n est pas toujours représentable dans la représentation choisie (ex : x = 2 x = 4 avec une représentation convexe). 2- L ensemble d accessiblité n est pas toujours calculable par accélération, même si il est représentable (problème de convergence). 3- Même si (1) et (2) ne s appliquent pas, il y a des problèmes pratiques explosion de la taille de la représentation symbolique, trouver les séquence d action à accélérer.

Trouver les accélérations? b < s + 9; b = b + 1 d < 9; d = d + 1, b = b + 1 b > s 9; s = s + 1 b > s + 1; s = s + 1 b = s + 9; b = b + 1, d = 0 time b = s + 1; s = s + 1, d = 0 brake b = s 1; b = b + 1 b = s + 1; s = s + 1, d = 0 d = 9; b = b + 1 b = s 9; s = s + 1 Initial configuration: state=time b = s s = d d = 0 Property to check : b s 20 always holds. late stop b < s 1; b = b + 1 b > s + 1; s = s + 1, d = 0

Vérification de systèmes à compteurs - Le LSV développe l outil FAST [groupe INFINI]. - Automates étendus variables entières non bornées les actions du système sont des fonctions affines avec des gardes - Très puissant, pratique pour la modélisation abstractions de programmes java, protocoles embarqués,... - On utilise la méthode décrite plus haut Représentation symbolique : des ensembles d entiers représentés par des automates Une fonction d accélération Une heuristique pour trouver les cycles à accélérer.

Représentation par automates - Les automates permettent de représenter des ensembles d entiers l écriture d un entier dans une base r est un mot sur {0,..., r 1} un automate reconnaît des ensembles de mots - Les ensembles représentés sont (presque) définis par formules de base P λ i c i + β i 0, union, intersection, complémentaire quantification sur les variables

Représentation par automate - 2 Un automate qui représente {(x, y, z), x + y = z} (en base 2). (0, 0, 0), (1, 0, 1), (0, 1, 1) (0, 1, 0), (1, 0, 0), (1, 1, 1) (1, 1, 0) carry (0, 0, 1) (1, 1, 1), (0, 0, 1), (1, 0, 0), (0, 1, 0) (0, 0, 0), (1, 1, 0), (1, 0, 1), (0, 1, 1) bad {0, 1} {0, 1} {0, 1}

Résultats, perspectives - FAST fonctionne très bien en pratique termine sur de nombreux exemples non triviaux (40) assez efficace - axes de recherche représentations (plus efficaces, plus expressives, intégrer d autres types de données, etc.) accélérations meilleures implantations études de cas...

Counter automata to FAST models p inc; x 0; x := x + 1 test; x = 10 9 ; x := x model foo { var x; states p,q; transition inc := { from := p; to := p; guard := x>=0; action := x =x+1; }; q transition test := { from := p; to := q; guard:=x=1000000000; action := x =x; }; }

Properties to FAST strategies strategy foo { Property to check: is state q reachable? How to do it? Compute the reachability set, and test if state q is reached. Region init := {state=p && x=0}; Transitions t := {inc,test}; Region reach := post*(init, t); boolean result := isempty(reach&&{state=q}); if result then print ("State q is not reached"); else print ("State q is reached"); endif }

FAST architecture 1 - Binary automata construction from a linear constraint P λ i c i + β i 0, boolean operations. 2 - Presburger relations construction of post and post from an affine function, application of a relation to a binary automaton. 3 - Heuristic input: set of affine functions and initial states (BA) output: the reachability set (BA) method: static computation of interesting cycles search algorithm with optimisation stop criterion