G - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

G

Description:

N cessit de valider le Programme de Contr le et pas seulement le Protocole. ... Additionnel. Impl mentation Distribu e. Deux sp cifications Promela, l'une pour le ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 22
Provided by: jeanphili65
Category:

less

Transcript and Presenter's Notes

Title: G


1
Génération de code à partir de spécifications de
systèmes communicants
  • S. Löffler

J-P. Cottin A. Serhrouchni
O. Cherkaoui
UniversitätStuttgart
GL97 - 4 Décembre 1997
2
Plan
  • The Steam Boiler Control Specification Problem
  • Tâches du programme de contrôle
  • Courte présentation de Promela/SPIN
  • Spécification en Promela
  • Processus de développement
  • Simulation,Validation et Implémentation
  • Le compilateur
  • Non-Déterminisme durant lexécution /
    Ordonnancement
  • Résultats - Implémentations distribuées
  • Conclusions et prospectives

3
Spécification du problème de la chaudière à
vapeur
  • Présenté à Dagstuhl lors de Methods for
    Semantics and Specification en juin 95
  • Problème réaliste, très informel
  • Aucun Détail (Format des messages, Comportement
    physique exact)
  • Nécessité de valider le Programme de Contrôle et
    pas seulement le Protocole.

Niveaude vapeur
M2
N2
Chaudière
N1
M1
Pompe
Contrôleur de pompe
Valve
Programme de Contrôle
4
Tâches du programme de Contrôle
  • Maintenir le niveau deau entre N1 et N2
  • Le système serait endommagé si le niveau deau
    est en dessous / au dessus de M1 / M2 pendant
    plus de 5 sec.
  • Mode Initialisation attends les unités physiques
    pour être prêt.
  • Mode Normal leau est entre les niveaux N1 et N2
  • Mode Dégradé lors dune anomalie dun capteur
  • Mode de sauvetage tentative de maintenir le
    système malgré les anomalies des capteurs.
    Estimations des niveaux.
  • Mode darrêt durgence arrêt de toutes les
    opérations du système suite à un des multiples
    problèmes prévus.

5
Cycle de fonctionnement
  • 5 Modes de fonctionnement Initialisation,
    Normal, Secours, Dégradé et Arrêt.

D
N
A
I
S
6
Détection de pannes prévisibles
  • Pompe
  • Non respect d un ordre douverture ou de
    fermeture
  • Changement spontanée détat
  • Contrôleur de pompe
  • Non indication d un ordre de changement détat
  • Indication incohérente de changement détat
  • Unité de mesure du niveau ou de la vapeur
  • Valeur indiquée hors limite
  • Valeur incompatible avec la dynamique du système
  • Transmission
  • Réception dun message inattendu
  • Non réception d un message indispensable

7
Dynamique du système
v quantité de vapeur q quantité deau
W
U1
Quantitéde vapeur
-U2
0
temps
8
Promela/SPIN
  • Développé par Gerard Holzmann chez ATT ( The
    Design and Validation of Computer Protocols ).
    Domaine Public.
  • Promela Protocol Meta Language. Langage de
    spécification basé sur les machines à états
    communicantes.
  • SPIN Simple Promela Interpreter. Outil de
    simulation et de validation de spécifications
    écrites en Promela.
  • Lanalyseur permet plusieurs types de
    vérifications Deadlocks, Assertions, Livelocks,
    code mort, règles de logique temporelle,...
  • Un outil graphique (Xspin) permet de visualiser
    les machines à états, les MSC
  • SPIN produit une machine à états finis en C
    équivalente à celle décrite en Promela.

9
Eléments de syntaxe de Promela
  • Processus
  • Modélisent une machine à états finis
  • Un processus (proctype) est défini par une partie
    entête (nom, paramètres) et un bloc
    dinstructions
  • Canaux
  • Emission/Réception des messages entre processus
  • Canal File dattente bornée FIFO
  • Variables
  • Globales Communication via  Shared Memory 
  • Locales Internes à une machine à états finis.

10
Définition dun canal
  • Messages Ensemble de paramètres
  • Paramètres int,short,byte,bit,bool,chan,mtype
  • Exemple de déclaration

11
Promela/SPIN les expressions
  • Expressions Constituées de termes et
    dopérateurs
  • ,-,,/, opérateurs arithmétiques
  • gt,lt,lt,gt,,! opérateurs de comparaison
  • ,,! opérateurs logiques
  • ,,,ltlt,gtgt opérateurs de niveau bit
  • !,? émission et réception de messages
  • ( ), groupe et index
  • len,run opérateurs particuliers

12
Exécutabilité - Non déterminisme
  • Une opération (condition, affectation, envoi de
    message) est franchie sous réserve de son
    exécutabilité. Les propositions peuvent être
    exécutables ou bloquées.
  • 2 opérateurs non déterministes
  • Sélection (cf. CSP) SPIN choisira une suite
    dinstructions dont la 1ère est exécutable.
    if suite_d_instructions_1
    suite_d_instructions_2 ...
    suite_d_instructions_n fi
  • Répétition do suite_d_instructions_1
    .od

13
Le langage
  • Processus
  • Déclaration des proctype
  • Instantiation  run 
  • Processus initial   init 
  • Variables locales
  • Exécutabilité
  • Non Déterminisme
  •  if..fi ,  do..od 
  • chan cnl1 of byteproctype ProcA(int a,
    chan k) byte b if (alt2)
    b1 (alt3) b2 (alt4)
    b0 fi k ! b proctype ProcB (chan g)
    byte v g?v printf( "Valued\n",v)init
    run (ProcA(1,cnl)) run (ProcB(cnl))

alt2
alt4
alt3
b2
b1
b0
14
Spécification en Promela
  • Structure un proctype for
  • Programme de contrôle
  • Chacune des 4 pompes et leurs contrôleurs
  • Chaudière Valve Dispositif de mesure
  • Unités Physiques - proctype particulier qui
    sera une interface avec le Programme de contrôle.
  • Définition des message en define
  • Programme de contrôle Spécification séquentiel
    des modes dopération.
  • Synchronisation / Contrainte temps réel 5 sec.
    Cycle dopération pour le programme de contrôle.

Unités physiques
Programme de contrôle
15
Processus de Développement
  • Approche Ecrire une spécification dans un
    langage formel la valider à laide dun outil.
  • Simuler/Valider jusquà ce que ça fonctionne.
  • Ensuite, implémentation le modèle validé dans un
    langage de programmation.

Spécificationinformelledes besoins
SpécificationFormelle
?
Simulation Validation
Implémentation
16
Simulation, Validation et Implémentation
  • Jusquà présent SPIN pouvant simuler et valider
    une spécification Promela
  • Nous désirons obtenir une Implémentation valide
  • Utilisation de la même abstraction (matrice de
    changement détat) pour la validation et
    limplémentation.

Spécification Promela
Abstraction
Simulation
New!
Validation
Implémentation
17
Réutilisation de la machine à états
  • Cette réutilisation est facilitée par le fait que
    SPIN produit des fichiers C séparés.
  • On aura plusieurs proctype dans le même process
    Unix
  • Nécessité dun ordonnanceur pour
    l implémentation.

Machine à états
pan.h
pan.t
Matrice de transitions
pan.b
pan.c
pan.m
Mouvements arr.
Mouvements avant
18
Non-Déterminisme durant lexécution
  • Lorsquune machine à états offre plusieurs
    possibilités, laquelle choisir?
  • Différentes stratégies valides sont possibles.
  • Choix aléatoire Implémentation se comporterait
    comme la simulation.
  • Quel proctype choisir ?
  • Lorsque tous les proctype sont bloqués,
    l exécution sarrête.

Proctype A
Proctype B
19
Implémentation obtenue
  • Un Process Unix gère tous les proctype.
  • La communication avec l utilisateur se fait
    uniquement via lécran (printf ...)

chaudière
pompes
unités_physiques
init
Programme_de_contrôle
ProcessUnix
20
Implémentation Distribuée
  • Deux spécifications Promela, lune pour le
    programme de contrôle, lautre pour les unités
    physiques.
  • Définition de canaux externes (asynchrones)
  • Communication par Sockets

21
Conclusions et prospectives
  • Promela convient tout à fait à la description
    dun problème technique tel que celui de la
    chaudière à vapeur
  • Possibilités de bien structurer le problème
  • Nous navons pas couvert tout le problème mais on
    arrive déjà à un modèle trop compliqué pour la
    validation exhaustive.
  • Le compilateur et les transmissions de messages
    ne sont pas validées
  • Limplémentation se comporte plus ou moins comme
    la simulation
  • Champ dapplication principale prototypage
    rapide
  • Etude dune autre démarche SDL comme langage
    source et C ou Java comme langage cible
Write a Comment
User Comments (0)
About PowerShow.com