B événementiel Source : Présentation de J.R. Abrial (Janvier 2000) Le contrôleur du pont de l'île Le principe : le saut en parachute. Plus on s'approche.

Slides:



Advertisements
Présentations similaires
GEOGRAPHIE DU CANADA 1232 Lenquête, lanalyse et la pensée critique.
Advertisements

Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Application aux constellations de satellites
Gestion de portefeuille 2
L A D A P T A B I L I T É E S T U N P R I N C I P E, L U T I L I T É U N E E X I G E N C E.
Premières approches dun projet coopératif – diaporama 2 10 principes pour mettre en œuvre la coopération.
Introduction à la tolérance aux défaillances
Test de Systèmes Intégrés Digitaux et Mixtes
Spécification et qualité du logiciel
1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
3- Déclaration et accès aux objets
Régine Laleau Centre d'Étude et de Recherche en Informatique du CNAM
Jean-Jacques Lévy INRIA Preuves de programmes et méthodes formelles Microsoft TechDays - 9 février 2010.
Cours DESS Nantes 04 Décembre 2002
Quoi ? Un tampon.
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
1 Létude système Source : J.R. Abrial, Etude Système : méthode et exemple, oct Réflexions et décisions situées en amont de la rédaction du CDC dun.
Paramètres et pointeurs
1 Introduction : Quelles méthodes & techniques de collectes de données ? => Construction méthodologique à partir dinstruments empruntés à divers domaines.
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Cours d’Automatique MASTER OIV
Cours de programmation
Points importants de la semaine Le paramétrage. La portée. Le passage par copie. Le passage par référence.
IFRS 1 « 1re application des IFRS »
Ingénierie des réseaux - Chapitre 3: La couche transport 2 Master 1 SIGLIS Contrôler le débit démission La couche application passe un bloc de données.
Chapitre 2 : La fonction de transfert
Points importants de la semaine Les enregistrements.
LL et modalités Conception inférentialiste des modalités (sans mondes possibles) Considérer les régimes dinférence propres aux connecteurs de base de LL.
RDF(S)
ENST 31/01/ Un environnement de test non intrusif de systèmes temps-réel distribués Claire.
INF:531( SEMAINE-1) COMMUTATION ET ARCHITECTURE
Des révisions et des constructions.
Introduire la dérivée en 1re S comme réponse à une question
Programmation linéaire en nombres entiers : la méthode du simplexe
1 CSI3525: Concepts des Languages de Programmation Notes # 4: Description Semantique des Languages.
CSI3525: Concepts des Languages de Programmation
Le développement durable Comment le définir?. Conclusions fin 1970: Le développement économique peut être soutenu indéfiniment, mais à condition quil.
Partie II Sémantique.
Mécanique Statistique
Structures de données IFT-10541
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
Structures de données IFT-2000
Animateur : Med HAIJOUBI
Raffinement de modèles JML Julien Groslambert LIFC Besançon Réunion GECCOO - 25 Octobre 2005 FRE 2661.
Paradigmes des Langages de Programmation
Packages et Types De la Spécification Formelle A l'implémentation Ada.
Chapitre I Modélisation optimisation I- Optimisation de fonctions d’une seule variable 1 Introduction En gestion, on est souvent confronté à des situations.
Programmation linéaire en nombres entiers
Concepts intermédiaires de VHDL
Couche limite atmosphérique
« Validation Formelle de Systèmes Interactifs »
Tutorat en bio-informatique
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Définition de file En informatique, on définit une file comme étant une structure de données où l’on peut insérer et extraire en fonctionnant selon le.
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
France Métropolitaine Juin 2006
Correction problème 1.
Epreuve pratique appliquée à la procrastination
Régression linéaire (STT-2400)
Situation problème.
Du Cahier des Charges à la Spécification Formelle ?
La situation : Clément et Zoé ont schématisé le circuit ci-dessous :
Michel BRETON IEN-ET Académie de LYON
Framework de reconstruction et d’analyse pour Micromegas Jean Jacquemier 27 janvier 2008.
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
L’objet de la science économique Science économique: étude des phénomènes sociaux observables spécifiquement économique : - production, - consommation,
STRUCTURE DU SOL.
Transcription de la présentation:

B événementiel Source : Présentation de J.R. Abrial (Janvier 2000) Le contrôleur du pont de l'île Le principe : le saut en parachute. Plus on s'approche du sol, plus on voit de choses, plus on voit d'événements. « Time stretching » : étirage du temps

Première vue du système (ou modèle initial) Quelles sont les données ? On a une seule variable, n, le nombre de véhicules qui sont dans le système. De plus, le nombre maximum de véhicules que peut contenir le système est constant (d) La contrainte à satisfaire est : 0 <= n <= d

forme générale d'un événement La forme générale d'un événement pour cette présentation == WHEN THEN END nomOpération == SELECT Predicat THEN Subst END

deux événements On a deux événements Sortie du continent vers le système ML_OUT == WHEN n < d THEN n := n+ 1 END

deux événements Entrée sur le continent ML_IN == WHEN n > 0 THEN n := n - 1 END

Les obligations de preuve 1) La préservation de l'invariant Etant donné un événement de forme générale : EVENT == WHEN G(x) THEN x := E(x) END et un invariant I(x) à préserver, il faut prouver que : I(x) & G(x) => I(E(x))

préservation de l'invariant Soit dans notre cas pour l'événement ML_OUT 0 0 <= n + 1 <= d pour l'événement ML-IN 0 0 <= n - 1 <= d

Preuve de vivacité (liveness) 2) Preuve de vivacité (liveness) Etant donné un système d'événements avec les gardes : G1 (x),..., Gn (x) et un invariant I(x), l'énoncé à prouver est : i.e. un événement au moins est toujours prêt à être déclenché (ABSENCE DE VERROU FATAL) I(x) => G1(x) or...or Gn(x)

Preuve de vivacité (liveness) Soit ici : 0 0 < n or n < d Ce que l'on ne peut prouver ! Quand n = 0, on ne peut prouver n < d On a oublié 0 < d Il y a un deadlock si d = 0 (plus aucune voiture ne peut entrer).

On corrige On corrige donc et alors on peut prouver que : 0 0 < n or n < d

Preuve d'absence de sous-boucles infinies 3) Preuve d'absence de sous-boucles infinies Pour chaque événement (dans le cas de deux événements seulement) : EVENT == WHEN G(x) THEN x := E(x) END Il faut prouver, étant donné un invariant I(x) : où V(x) est un variant à exhiber pour chaque événement. I(x) => 0 <= V(x) & I(x) & G(x) => V (E(x)) < V(x)

Absence de sous-boucles infinies Soit ici Pour ML_OUT, un variant est d - n 0 0 <= d - n 0 <= n <= d & 0 < d & n < d => d - (n + 1) < d - n

Absence de sous-boucles infinies Pour ML_IN, un variant est n 0 0 <= n 0 <= n <= d & 0 < d & n < d => n -1 < n

Raffinage par introduction du pont Deuxième vue du système, raffinage par introduction du pont On est descendu et on aperçoit maintenant le pont. On voit : - des véhicules sur le pont qui se dirigent vers l'île (un nombre a) - des véhicules qui sont dans l'île (un nombre b) - des véhicules qui se dirigent vers le contenant (un nombre c)

Introduction du pont b a c A + b + c = n

Invariant du raffinage L'invariant 0 <= a & 0 <= b & 0 <= c & a = 0 or c = 0 /* tous les véhicules vont dans la même direction */ Invariant de collage a + b + c = n

Les techniques de raffinage : 1) Chaque événement est raffiné par un événement concret 2) Le monde abstrait travaille avec x et le concret avec y 3) Un invariant de collage I(x, y) lie les deux mondes

Les mécanismes de raffinage - le renforcement des gardes (normal, plus on voit de choses en s'approchant du sol, plus on voit de contraintes. C'est bien connu, quand on est "haut placé" on est en dehors des contingences matérielles...voilà sans doute pourquoi certains recherchent ces places...dans les amphis (?!)) Rappel : en ce qui concerne les pré-conditions, on les affaiblit lors du raffinage. - des actions "simultanées" sur l'invariant de collage.

Raffinage de l'événement abstrait 1) Raffinage de l'événement abstrait ML_OUT == WHEN n < d THEN n := n + 1 END en : ML_OUT == WHEN a + b + c < d & c = 0 /* On a renforcé la garde */ THEN a := a + 1 END

Raffinage dévénement abstrait en : ML_IN == WHEN c > 0 THEN c := c - 1 END Raffinage de l'autre événement abstrait : ML_IN == WHEN n > 0 THEN n := n + 1 END

Spécification des nouveaux événements 2) Spécification des nouveaux événements IL_IN == WHEN a > 0 THEN a, b := a - 1, b + 1 END

Spécification des nouveaux événements IL_OUT == WHEN b > 0 & a = 0 THEN b, c := b - c, c + 1 END

Les obligations de preuve du raffinage d'événement Etant donné un événement abstrait et un événement concret correspondant EVENT == WHEN G(x) THEN x := E(x) END EVENT == WHEN H(y) THEN y := F(y) END et les invariants I(x) (supposés être déjà préservés par l'événement abstrait) et J(x, y), I(x) & J(x, y) & H(y) => G(x) I(x) & J(x, y) & H(y) => J(E(x), F(y))

Les niveaux suivants... à vous maintenant d'appliquer cela... Les niveaux suivants seront : 1) Introduction de deux feux de circulation à chaque entrée du pont 2) Introduction de capteurs (il faut bien compter les véhicules pour vérifier l'invariant fourni au premier niveau) à l'entrée et à la sortie du pont

introduction du contrôleur Puis introduction du contrôleur qui : - décide quand les feux doivent changer - n'a pas accès aux variables physiques - a accès à des variables de contrôle - qui sont des copies de variables physiques - qui représentent ce que le contrôleur croit de la situation physique - dont les valeurs peuvent être différentes de celles des variables physiques mais néanmoins le système doit fonctionner correctement comme cela est prescrit par les variables physiques - conservées en mémoire du contrôleur

canaux de communication 3) Introduction des canaux de communication - entre le monde physique et le contrôleur (annonce de l'arrivée ou du départ d'un véhicule) - entre le contrôleur et le monde physique (pour faire changer) Des hypothèses temporelles doivent être faites (par exemple que les capteurs physiques sont moins réactifs que les autres événements)

l'environnement 4) Réunion des variables physiques et des variables canaux pour former une seule entité, l'environnement fait de : - des variables physiques et des variables canaux - tous les événements physiques - deux services d'entrée/sortie