Vérification avec TINA



Documents pareils
Model checking temporisé

Conception des systèmes répartis

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

UNIVERSITÉ DEMONTRÉAL

Model checking temporisé Algorithmes efficaces et complexité

Outils logiciels pour la combinaison de vérification fonctionnelle et d évaluation de performances au sein de CADP

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE

Contribution aux tests de vacuité pour le model checking explicite

Application au protocole POTS

Qualité du logiciel: Méthodes de test

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)

Introduction aux systèmes temps réel. Iulian Ober IRIT

Machines virtuelles Cours 1 : Introduction

Chapitre VI- La validation de la composition.

Introduction aux algorithmes répartis

Les processus légers : threads. Système L3, /31

L exclusion mutuelle distribuée

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

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Tu Tuitete. Domaine de Lavalette 361, Jean François Breton ; B.P MONTPELLIER Cedex 5 Tél : Fax :

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

OCL - Object Constraint Language

Problèmes liés à la concurrence

RTDS G3. Emmanuel Gaudin

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

Cours en ligne Développement Java pour le web

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Contribution à l algorithmique de la vérification

Test et Validation du Logiciel

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Vérifica(on et Valida(on de Business Process. Ang Chen et Levi Lúcio

1 Description générale de VISFIELD

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

IFT2255 : Génie logiciel

Synergies entre Artisan Studio et outils PLM

Introduction à MATLAB R

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

Quatrième partie IV. Test. Test 15 février / 71

Cours de Master Recherche

CONFIGURATION DE L AUTOMATE SIEMENS

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

JOURNEES SYSTEMES & LOGICIELS CRITIQUES le 14/11/2000. Mise en Œuvre des techniques synchrones pour des applications industrielles

Analyse de sécurité de logiciels système par typage statique

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Cours d algorithmique pour la classe de 2nde

Cours de Base de Données Cours n.12

Bases de programmation. Cours 5. Structurer les données

Vérification formelle de la plate-forme Java Card

Cours de Génie Logiciel

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Algorithmique des Systèmes Répartis Protocoles de Communications

Les systèmes de base de données temps réels. Pokrovskaya Natalia, Kabbali Nadia

Programmation linéaire

THÈSE. En vue de l obtention du DOCTORAT DE L UNIVERSITÉ DE TOULOUSE. Touria CHAFQANE BEN RAHHOU

TP 1. Prise en main du langage Python

Modélisation des interfaces matériel/logiciel

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Introduction à la programmation concurrente

Les processus métiers : concepts, modèles et systèmes

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Enseignement secondaire technique

as Architecture des Systèmes d Information

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Analyse,, Conception des Systèmes Informatiques

On appelle variable condition une var qui peut être testée et

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Annexe 6. Notions d ordonnancement.

Présentation du langage et premières fonctions

CEG4566/CSI4541 Conception de systèmes temps réel

Ordonnancement temps réel

Vérification et Validation

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

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

Université du Littoral Côte d Opale THÈSE

Module BDR Master d Informatique (SAR)

Environnements de développement (intégrés)

Contrôle d accès UTIL TP N 1 découverte

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Cours 1 : La compilation

Hervé Couturier EVP, SAP Technology Development

Model Based Testing : principes et applications dans le cadre temporisé

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

THÈSE. Anticipation games

Raisonnement par récurrence Suites numériques

Modélisation et Simulation

Cohérence des données dans les environnements d édition collaborative

Élasticité des applications à base de services dans le Cloud

Analyse des Besoins (Spécifications)

Systèmes décisionnels et programmation avancée

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

LE PROBLEME DU PLUS COURT CHEMIN

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Differential Synchronization

LES REPRESENTATIONS DES NOMBRES

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Transcription:

Vérification avec TINA B. Berthomieu, F. Vernadat LAAS-CNRS Journée AFSEC Outils - Juin 2007 Insa Lyon 22 Juin 2007

Le contexte Vérification de Systèmes Réactifs, Protocoles, Logiciels Temps Réel Points durs Problèmes indécidables Facilité d utilisation (formel/ semi-formel ) Passage à l échelle (explosion combinatoire)

Exemples de propriétés considérées Classification : Safety/Liveness Sûreté : Rien de mauvais ne peut arriver (pendant plus de K u.t) Vivacité : Quelque chose de bon doit arriver (en moins de K u.t) Configurations qu un système doit atteindre ou doit éviter - Violation d exclusion Mutuelle / Bruleur ouvert FlammeEteinte - Une requète en attente doit être satisfaite (en moins de K u.t) Ordonnancement Temporel d Evénements Explicite : Causalité A Expliciter! Blocage, divergence, Branchement 0?carte 3?billets!Carte 1!code 2

Vérification avec Tina Analyse Structurelle Expressivité réduite / Semi-effectif / Manuelle Finitude de l espace d états (atemporel) Graphe de Couverture (Karp Miller) Vérification exhaustive Explosion Combinatoire ou Systèmes infinis abstraction (ordres partiels, graphes de classes,...) Types de Spécifications Assertionnelles ou Comportementales Assertionnelles Logiques temporelles, Contrôle de modèles Comportementales LTS (Système de transitions étiquetté)

Annneau à Jetons Description opératoire 1_ask wait_1 idle_1 cs_1 1_work 1_rel after_1 1_entry 1_exit token_1 Propriétes attendues Exclusion mutuelle Absence de famine : Un client en attente inévitablement travaillera

Analyse structurelle (sortie TINA) P-Semi-Flows invariant cs 1 idle 1 wait 1 cs 2 idle 2 wait 2 after 1 after 2 after 3 cs 1 cs 2 cs 3 token 1 token 2 token 3 cs 3 idle 3 wait 3 Réseau borné et Exclusion mutuelle T-Semi-Flows consistent 1 ask 1 rel 1 work 2 ask 2 rel 2 work 3 ask 3 rel 3 work 1 entry 1 exit 2 entry 2 exit 3 entry 3 exit monopolisation du jeton par un site? Famine???

Vérification exhaustive p1 A p3 p2 C B p4 p5 E D Modèle LTS explicite Réseau de Petri - Produit d Automates Structure de Kripke Etiquetée 4 E C 1 A 0 D B B 3 C 2 E ν 0 > {p1} 1 > {p2, p3} 2 > {p3, p4} 3 > {p4, p5} 4 > {p2, p5} Structure de Kripke Etiquetée M =< W, Σ, R, P, ν > où W : ensemble de mondes, R : relation entre ces mondes (R W Σ W), P : ensemble de variables propositionnelles, ν une valuation ν : W 2 P.

KTS - Espaces d états TINA En clair (verbose) MARKINGS : 0 : p1 p2*2 1 : p3 p4 p5 2 : p2 p3 p5.../... REACHABILITY GRAPH : t4 0 -> t1/1 1 -> t2/2, t3/5, t4/1, t5/7 2 -> t3/3, t4/2, t5/4.../... + Analyse de vivacité + graphe des CFC 5 t5 6 t3 t3 7 t5 t2 t2 4 t3 0 t1 t5 t4 1 t5 t2 t2 2 t3 3 t4 t4 Format binaire (compressé) KTZ (Kripke Transition Systems compressés) Ouvert MecIV LABRI / CADP Vasy Inria (.aut /.bcg)

2 visions complémentaires : Linéaire / Arborescente Arborescent (CTL / Bisimulation) Linéaire (LTL / Traces) E 0 5 10 C 1 A B 2 E 1 A 6 A 11 A 4 0 2 B 7 C 12 C D C B E C 3 8 13 B 3 4 D 9 E 14 C Programme Graphe (vision non-déterministe) Programme Ensemble (infini) d exécutions (suite (infinie) d états) CTL et LTL incomparables Potentiel ( CTL) Equité / Infiniment souvent ( LTL)

Logique temporelle Arborescente Quelques Exemples Invariant : AG (cs 1 cs 2 ) Exclusion Mutuelle Réponse potentielle : AG (wait 1 EF cs 1 ) Accès inévitablement garanti à la section critique Réponse inévitable : AG (wait 1 AF cs 1 ) Accès inévitablement garanti à la section critique Réponse potentielle : AG (EF init) Toujours possible de se réinitialiser TINA : MC 2 Prototype + connexion à MECIV et Evaluator

Logique temporelle Linéaire Quelques Exemples Invariant : G (cs 1 cs 2 ) Exclusion Mutuelle Réponse : G (wait 1 F cs 1 ) Accès Garanti à la section critique Infiniment souvent : G F idle i Un client sera une infinité de fois idle Equité : G F wait i G F cs i Si un client reserve infiniment souvent, il entrera infiniment souvent en cs Principe de vérification Associer à une formule φ un automate de Büchi A φ correspondant K = φ ssi L(K) L(φ) ssi L(K) L( φ) = ssi L(K A φ ) = Complexité : O( K. A φ ) = O( K.2 φ ) TINA : SELT model-checker pour State/Event LTL (Shaki/Clarke/etc, CMU 2004) Construction de l automate de Büchi via LTL2BA (LIAFA)

Model-checker SELT de Tina 1/3 Expressions SELT Modalités : (next), (always), (eventually), U (until) propositions atomiques ou entières P, P 4,... propositions de transitions (Req1 Ack1 Lib1) On peut atteindre un état à partir duquel il n y aura plus que les événements Req1 ou Ack1 ou Lib1 (cf Invariants de transitions) Opérateurs arithmétiques et logico-arithmétiques : Mixité totale possible (cs 1 + cs 2 + cs3 + cs4 1) Section critique en exculsion mutuelle (t1 ( (t3 t4) (p2 p3 + p4)) U t2)... Définition possible de nouveaux opérateurs prefix F p = <> p; infix Q responds P = G (P => F Q);

Model-checker SELT de Tina 2/3 Contre-Exemple abstrait [] (wait 1 => <> cs 1); FALSE state0 : idle 1 idle 2 idle 3 idle 4 token 1 1 ask...(preservingt) > state25 : after 2 idle 3 wait 1 wait 2 wait 4 3 ask...(preserving cs 1/ wait 1) > [accepting]state26 : after 2 wait 1 wait 2 wait 3 wait 4 3 entry...(preserving cs 1) > state26 : after 2 wait 1 wait 2 wait 3 wait 4 state0 : p1p2 2 0 1 2 3 4 5 6 7 8 9 10 Possibilité d obtenir le contre-exemple complet Possibilité de le rejouer sur le stepper (y compris en temporisé)

Model-checker SELT de Tina 3/3 Mode ligne de commande selt [-h -help] selt ktzfile [-f formula formulafile] [-prelude file] q -v[-b -c -p -s -g] [outfile] FLAGS WHAT -h -help this mode ktzfile transition system input file -f formula pass formula to be checked as a string formulafile pass formula as a file (stdin if absent or -) -prelude file loads command file on entry outfile result file or output mode : -b just prints truth value -c prints summary of counter example -p prints counter example in full -s prints counter example loadable in stepper -g builds and prints full synchronized graph -q no banner nor times printed -v prints banner and exec times for commands

Approche Comportementale 0 4 9 piece piece piece piece piece 1 5 6 10 11 the cafe the cafe cafe the 2 3 8 7 12 13 Points de vue correspondants Relations d équivalences (*) Langage Σ Σ Σ (*) Langage + Blocage Σ Σ (*) Acceptation/Refus Σ Σ Σ Après piece Σ ne refuse ni the ni cafe Après piece Σ refuse the ou cafe Après piece Σ refuse the et cafe (+) Non-déterminisme, (+) Branchement Divergence

Approche Comportementale Relations d équivalence Séquencement Equivalence Langage + Blocage Equivalence de Traces Maximales,... + Acceptation/Refus Equivalence de Test,... + Non-déterminisme Bisimulation,... + Divergence Branching Bisimulation... +... Outils associés CADP (Vasy/Inria) Comparaison : Minimisation : Bisimulator BCG MIN (strong, branching), Reductor (pré-minimisation à la volée)

Approche Comportementale Approche par Minimisation (Introspection) Initialement : Système Σ et une équivalence (logique L ) Construire à partir de Σ, le plut petit STE Σ Abs tel que Σ Σ Abs Analyser Σ Abs Exemple delta 1 req1 ack1 2 Obs = {req 1, ack 1, lib 1 } + Bisimulation et Divergence lib1 delta 0

Approche Comportementale Approche par Comparaison Initialement : Système Σ et une spécification comportementale (Σ, ) Σ Σ Σ et Σ respectent les mêmes propriétés (L ) Comparaison Spécification comportementale de l exclusion mutuelle + Equiv Langage ack1 lib2 1 0 2 lib ack2

Masquer le formel : PDL2TINA LAAS-IRIT (Topcased) Process Development Language (DSL standard OMG) Activité (imbriquées) contraintes : relations de causalité disponibilités de ressources contraintes temporelles Problème à résoudre Spécification PDL Ensemble de contraintes Question : Existe-t-il au moins un run exécutant toutes les activités en respectant les contraintes de causalité, en prenant en compte les disponibilités de ressources et en respectant les contraintes temporelles? Utilisation des techniques de model-checking pour savoir si le problème admet une solution Techniques de transformations de modèle (Atlas/Inria) PDL Réseau de Petri = spec PDL PDL Formules LTL pour vérifier la consistance de la spec PDL

Exemple de spécification PDL

PDL SE-LTL Etude de la terminaison <> finished Tout run termine correctement [] finished Aucun run ne termine! (contre-exemple exhibe une solution) [] (act notstared => <> act Started) [] (act Started => <> act Finished) Propriétes plus quantitatives (observateurs temporels) [] development intime Impossible de terminer development dans les délais ( (dev toearly dev tolate) U finished) Impossible de terminer le process en ayant respecté les contraintes temporelles de development [](dev intime => development count <= 8) 8 itérations au plus pour respecter les contraintes temporelles

Perspectives : Logiques Temporelles temporisées TCTL EF c φ Uψ Il est possible d atteindre, en maintenant φ vraie, un état satisfaisant ψ en une durée d c AG c φ φ est toujours vraie après une durée d satisfaisant d c... Vérification CTL sur le Graphe de Régions Points fixes Symboliques (Kronos) Accessibilité bornée TCTL Observateurs (IF, TINA, UPPAAL...)

Perspectives Passage à l echelle Ordres Partiels et Temporel Abstraction,... Model-checking parallèle Vérification Quantitative Automatisation des Observateurs (Topcased) Model-checking (TCTL,MITL,...) Faciliter la vérification/expression Kit de propriétés (textuel/graphique) Aide au diagnostic Exigences SySML / Formel