Analyse et vérification automatique de systèmes asynchrones. Hubert Garavel INRIA / VASY http://www.inrialpes.fr/vasy



Documents pareils
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

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

Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise

Conception des systèmes répartis

La Certification de la Sécurité des Automatismes de METEOR

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Analyse,, Conception des Systèmes Informatiques

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Travail collaboratif. Glossaire

NFP111 Systèmes et Applications Réparties

M Études et développement informatique

Le génie logiciel. maintenance de logiciels.

Business Process Modeling (BPM)

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

Master (filière Réseau) Parcours Recherche: Systèmes Informatiques et Réseaux (RTS)

Architecture distribuée

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

RTDS G3. Emmanuel Gaudin

Visual Paradigm Contraintes inter-associations

«Les documents référencés ci-dessus étant protégés par les droits d auteur et soumis à la déclaration au Centre Français d exploitation du droit de

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Modelio by Modeliosoft

Les nouvelles architectures des SI : Etat de l Art

Urbanisme du Système d Information et EAI

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

M Études et développement informatique

EAI urbanisation comment réussir?

Génie logiciel (Un aperçu)

Programme de la 1ère année

RÉSUMÉ DESCRIPTIF DE LA CERTIFICATION (FICHE RÉPERTOIRE)

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

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

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

S LICENCE INFORMATIQUE Non Alt S Alt S S1 S2 S3 S4 SS5 S6 Parcours : S IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

Logiciel Libre Cours 3 Fondements: Génie Logiciel

11 Février 2014 Paris nidays.fr. ni.com

Architecture SOA Un Système d'information agile au service des entreprises et administrations

Introduction aux Bases de Données Relationnelles Conclusion - 1

UNIVERSITÉ DEMONTRÉAL

MANAGEMENT DES SYSTEMES D INFORMATION ET DE PRODUCTION MSIP

Identification du module

GPC Computer Science

Fiche de l'awt Intégration des applications

Mise en œuvre des serveurs d application

Développement de projets logiciels à l'aide de Python

IFT2255 : Génie logiciel

Méthodologies de développement de logiciels de gestion

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Pour obtenir les coordonnées des personnes citées ci-dessous veuillez contacter Julie au ou par mail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Conception et Intégration de Systèmes Critiques

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

Présentation du M2 SIC : Systèmes Informatiques et Applications Marines

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Laboratoire de Haute Sécurité. Télescope réseau et sécurité des réseaux

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

Tableau comparatif des offres Visual Studio

GUIDE DU PARRAIN. Promotion Concepteur Développeur Informatique

LICENCE : INFORMATIQUE GENERALE

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Master Informatique Aix-Marseille Université

4.2 Unités d enseignement du M1

ISFA INSTITUT DE SCIENCE FINANCIÈRE ET D ASSURANCES GRANDE ÉCOLE D ACTUARIAT ET DE GESTION DES RISQUES

GRIDKIT: Pluggable Overlay Networks for Grid Computing

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

CQP Développeur Nouvelles Technologies (DNT)

Description de la formation

INGENIERIE DES SYSTEMES INFORMATIQUES - PARCOURS : MOBILITE ET CLOUD COMPUTING

Annexe : La Programmation Informatique

Eléments pour l animation l réunion du 16 Septembre v0.4 du 13 Septembre 2010

Machines virtuelles Cours 1 : Introduction

Interface Humain-Machine

Formateur.NET expérimenté Forte expertise dans la conception et le développement d applications.net, associée à une grande pédagogie

DUT Informatique, orientation Imagerie Numérique

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Introduction au génie logiciel

Le programme d examens du Bureau canadien des conditions d admission en génie d Ingénieurs Canada englobe 19 domaines du génie.

Vertec Engineering L ERP professionnel pour ingénieurs

Equilibrage de charge (Load

M Études et développement null informatique. R i. Appellations. Analyste cogniticien / cogniticienne informatique

Initiation au HPC - Généralités

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Test et Validation du Logiciel

Présentation de la Grille EGEE

Notes de mise à jour. 4D v11 SQL Release 3 (11.3) Notes de mise à jour

SCIENCES & TECHNOLOGIES - SANTÉ ET STAPS MASTER INFORMATIQUE. Parcours Ingénierie du Logiciel Libre (I2L)

DESIGN WEB & INTERACTIF INTERACTIVE DESIGN HIGHER NATIONAL DIPLOMA EN MÉDIAS INTERACTIFS

transformer en avantage compétitif en temps réel vos données Your business technologists. Powering progress

Concepts et définitions

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

Présentation d'un MOM open-source

Burckel Thomas. Formation. Compétences

Transcription:

1 Analyse et vérification automatique de systèmes asynchrones Hubert Garavel INRIA / VASY http://www.inrialpes.fr/vasy

2 Systèmes asynchrones P2 P1 P4 P5 P3 Caractéristiques : différents processus / tâches / activités / agents qui s'exécutent en parallèle à des vitesses différentes (pas d'horloge centrale) n'ayant pas forcément de mémoire commune avec des délais de communication pouvant varier

3 Synchrone / Asynchrone Quelle différence? Synchrone : a b = (a,b) Asynchrone : a b = a.b + b.a a a' b b' = (a,b) ou (a',b') a' b a b a' b' b a b' a' b' a synchrone asynchrone (entrelacements)

4 Multiples domaines d'application Télécommunications protocoles et services Logiciel applications réparties agents mobiles systèmes embarqués transactions en ligne, réseaux P2P sécurité, distribution de clés cryptographiques Matériel architectures multiprocesseurs arbitres de bus cohérence de caches circuits asynchrones

5 Plusieurs défis à relever 1. Complexité croissante des applications 2. Besoins de sécurité élevés 3. Difficultés de conception propres aux systèmes asynchrones: problèmes d'algorithmique distribuée présence d'indéterminisme test difficile, risque important d'erreurs résiduelles complexité exponentielle des espaces d'états contrairement aux systèmes synchrones absence de compositionnalité des "bonnes" propriétés contrairement aux programmes séquentiels (modules, objets) "Correct by design" reste hors d'atteinte

Erreurs et pièges à éviter Ne pas reconnaître le caractère asynchrone d'un problème et tenter de le traiter avec les méthodes ordinaires Se reposer uniquement sur le test pour trouver les erreurs d'un système asynchrone (le coût peut être exponentiel) Se lancer tête baissée dans la programmation : Les langages séquentiels (sauf Ada) sont inadaptés pour penser le parallélisme C/C++ : rien de prévu Java/C# : modèle de mémoire centralisée L'approche objet n'est pas forcément optimale 6

7 Méthodologie "standard" Avant de programmer : modéliser formellement Utiliser des outils de vérification/preuve Produire automatiquement certains tests Bénéficier du prototypage rapide Avantages escomptés : délais de développement raccourcis détection au plus tôt des erreurs qualité accrue meilleure documentation maintenance plus aisée

8 expression des besoins cahier des charges du système à réaliser implantation modélisation propriétés critiques spécification formelle prototypage rapide système vérification (model checking, equivalence checking, visual checking) modèle test traces

Difficultés de mise en oeuvre A. Réticences fréquentes des industriels face aux méthodes formelles B. Manque d'outils commerciaux couvrant tout le cycle "modélisation-vérification-test" C. Multiplicité des langages de modélisation : réseaux de Petri étendus automates communicants (Estelle, SDL, Promela ) algèbres de processus (LOTOS, CSP, mucrl, CHP, Tangram ) UML (informel) 9

4 critères pour un langage optimal 1. Expressivité Pouvoir modéliser simplement les caractéristiques essentielles des systèmes asynchrones : données (types, variables, expressions, fonctions ) contrôle (processus, communications, synchronisations ) temps réel (délais d'attente, urgence ) structure (modules, classes, bibliothèques ) 10

11 4 critères pour un langage optimal 2. Universalité Convenir à tous les domaines d'activité où le parallélisme asynchrone intervient, sans être trop spécifique d'un secteur particulier 3. Exécutabilité Permettre la génération automatique de code efficace (pour simulation, prototypage rapide, test ) 4. Vérifiabilité Etre compatible avec les techniques de preuve et de vérification : posséder une sémantique formelle et de "bonnes propriétés" (abstraction, compositionnalité)

Les démarches qui réussissent Ne pas chercher à inventer une méthodologie générale pour les systèmes asynchrones Se concentrer sur un système concret et ses aspects critiques pour la fiabilité Planifier des tâches de modélisation et vérification Prévoir un temps de formation Prendre l'avis d'experts INRIA: algorithmique distribuée, modélisation formelle, vérification, preuve Choisir des outils robustes adaptés au problème 12

13 Travaux du projet VASY Conception de systèmes asynchrones fiables Axes de recherche : Langages et compilation Modèles et vérification Développement d'outils CADP, TRAIAN Etudes de cas industrielles Bull, Engineering, MGE-UPS, Scalagent

14 Boîte à outils CADP Construction and Analysis of Distributed Processes Modélisation formelle algèbres de processus Mise au point génération de code C simulation interactive simulation aléatoire prototypage rapide Vérification visual checking equivalence checking (bisimulations) model checking (mu-calcul) vérification à la volée vérification compositionnelle Génération de tests outil TGV (projet VERTECS)

15 La boîte à outils CADP Architecture modulaire et extensible (APIs) Plusieurs plateformes supportées Sun/Solaris, PC/Linux, PC/Windows Diffusion internationale contrats de licence avec 310 organisations en 2003: installation sur 840 machines Nombreuses applications 72 études de cas effectuées avec CADP 16 outils de recherche connectés à CADP 17 cours universitaires utilisant CADP http://www.inrialpes.fr/vasy/cadp

16 Pour plus d'information démos CADP Radu Mateescu Frédéric Lang http://www.inrialpes.fr/vasy