Vous êtes sur la page 1sur 11

07/03/2021

L a méthode Event-B

Resources

Méthodes formelles
Chapitre 5: La méthode Event-B Rodin pour les débutants:
http://www.event-b.org/install.html
Résumé des notions Event-B:
Sana Baccar http://wiki.event-b.org/images/EventB-Summary.pdf
Livre de Jean-Raymond Abrial:
Faculté des Sciences de Gabes
Modeling in Event-B: System and Software Engineering
MRIR1 AU: 2020-2021 Examples d'Event-B:
www.stups.uni-duesseldorf.de/bmotionstudio/index.php/
User_Guide/Tutorial

Méthodes formelles 1 / 22 Méthodes formelles 2 / 22

1
07/03/2021

L a méthode Event-B L a méthode Event-B

Introduction Introduction
Construire un logiciel: le modèle en cascade Quelques exemples d'échecs

Therac 25: machine de radiothérapie (1985)


Spécifications comportement incorrect du matériel, provoquant l'irradiation
sévère de plusieurs patients.
Design système de contrôle écrit en assembleur.
au moins trois morts.
Implémentation
Arianne 5 (1996)
Vérification conversion ottant 64 bits en entier 16 bits cause une exception
processeur.
Question réutilisation des programmes de contrôle d'Ariane 4.
Ce modèle est il adapté aux systèmes complexes ou critiques ? code inutile dans le cas d'Arianne 5.
environ 500 millions d'euros.

Méthodes formelles 3 / 22 Méthodes formelles 4 / 22

2
07/03/2021

L a méthode Event-B L a méthode Event-B

Introduction La méthode Event-B


La vérification formelle

Principe Une méthode de développement formelle intégrée


Un programme correspond à un objet mathématique. Cet objet
spécifications abstraites,
sera utilisé pour prouver la correction du programme.
Le raffin e m e n t guide la preuve et le
L'approche de theorem proving consiste à énoncer des
propositions et à les démontrer dans un système de déduction du développement, génération de code automatique.
calcul des prédicats.
La vérification des programmes consiste à démontrer les théorèmes Ayant fait ses preuves dans les milieux industriels
de correction et de complétude. Ces théorèmes permettent de Ferroviaire: Ligne Météor, Val de Roissy CDG, etc.
formaliser le comportement attendu d'un programme et leurs Applications cartes à puces : GemPlus, Schlumberger
démonstration permet d'en affir m e r leur vérité. (exemple: calcul
de la plus faible précondition)

Méthodes formelles 5 / 22 Méthodes formelles 6 / 22

3
07/03/2021

L a méthode Event-B L a méthode Event-B

Le développement de modèles avec Event-B Historique

Z(1980) B(1996) Event-B(2004)


Event-B n'est pas un langage de programmation,
Event-B est une notation utilisée pour développer des modèles
mathématiques des systèmes de transitions discrètes,
programme séquentiel, Figure : Évolution des langages Z, B et Event-B
programme distribué,
programme concurrent,
circuits électroniques
.... langage Z (Z-EVES)
Event-B doit être utilisé conjointement avec la plate-forme Rodin Un formalisme pour la spéci cation, la conception et l'écriture des
programmes, visant a permettre a l'utilisateur de conserver a tous les
niveaux de l'analyse la maîtrise complète des processus en jeu [Les
langages de spéci cation 1979]

Méthodes formelles 7 / 22 Méthodes formelles 8 / 22

4
07/03/2021

L a méthode Event-B L a méthode Event-B

D i érence entre B et Event-B L'approche correct par construction

Technique
se base Ra nement
Méthode B (atelier B)
A p p r o che Assistant de preuve
La méthode B est adaptée au développent des programmes impératives correct par construction Rodin
utilisant des structures de contrôle classiques: boucles, séquences, se réfère Composant n◦1
M é t h o de
conditionnelles, etc. Event-B Machine
Langage

Méthode Event-B (Rodin) Event-B


Composant n◦2
La méthode Event-B permet de décrire les systèmes réactifs:
Contexte
la structure de contrôle de base est l'événement,
La méthode Event-B
l'événement peut se produire si sa garde est vraie,
conçue par Jean-Raymond Abrial début années 2000,
un système peut ne pas terminer, mais son état doit être toujours évolution de la méthode B classique et du langage Z,
correct. fondée sur la logique du premier ordre, la théorie des
ensembles et le langage de substitutions généralisées.

Méthodes formelles 9 / 22 Méthodes formelles 10 / 22

5
07/03/2021

L a méthode Event-B L a méthode Event-B

La méthode Event-B La méthode Event-B


Langage de Modélisation Contextes

Un contexte représente la partie statique d'un programme,


voit par exemple ses constantes, ses paramètres, etc.
Contexte Machine Abstraite

CONTEXT

T
Le nom du contexte

X
étend EXTENDS
r a ffin e Les contextes vus par le contexte

E
SETS
Les ensembles du contexte

T
CONSTANTS
voit
Contexte Machine Concrète Les constantes du contexte

N
AXIOMS
Les propriétés du contexte

O
Données : ensembles THEOREMS
Opérations : substitutions généralisées Les théorèmes du contexte

C
Propriétés : prédicats du premier ordre
Figure : Structure du contexte

Méthodes formelles 11 / 22 Méthodes formelles 12 / 22

6
07/03/2021

L a méthode Event-B L a méthode Event-B

La méthode Event-B La méthode Event-B


Contextes: un premier exemple Machines et programmation événementielle

CONTEXT Salle
Programmation événementielle
SETS ETATS un programme réactif est un programme répondant à des
changements de son environnement.
CONSTANTES Ouvert
Ferme exemples: systèmes d'exploitation, contrôleurs industriel, etc.
temp_max
temp_min Exemple
AXIOMS axm1: ETATS ={Ouvert, Ferme} Répéter indéfiniment
axm2: temp_ max ∈ N si température > temp_max-((temp_max-temp_min)/2)
axm3: temp_ min ∈ N ouvrir les fenêtres
axm4: temp_min < temp_max

Méthodes formelles 13 / 22 Méthodes formelles 14 / 22

7
07/03/2021

L a méthode Event-B L a méthode Event-B

La méthode Event-B La méthode Event-B


Machines: un premier exemple (incomplet) Anatomie d'une machine

La machine représente la partie dynamique d'un programme,


MACHINE Exemple
MACHINE

E
SEES Salle Le nom de la machine

N
REFINES
VARIABLES temp Le nom de la machine à raffin e r
fenetre SEES

I
Les contextes vus par la machine

H
INVARIANTS inv1: fenetre ∈ ETATS VARIABLES
inv2: temp ∈ temp_min .. temp_max Les variables de la machine

C
INVARIANTS
EVENTS Event Ouvre =
b Les propriétés de la machine
where grd1: fenetre = Ferme

A
VARIANT
grd2: temp>temp_max-((temp_max - temp_min)/2) Une mesure de preuve

M
EVENTS
then act1: fenetre := Ouvert
Les événements de la machine

Figure : Structure d'une machine

Méthodes formelles 15 / 22 Méthodes formelles 16 / 22

8
07/03/2021

L a méthode Event-B L a méthode Event-B

La méthode Event-B La méthode Event-B


Anatomie d'un événement Les actions d'Event-B

EVENT EVENT EVENT


Nom_EVENT Nom_EVENT Nom_EVENT
ANY
N

WHEN

N
BEGIN
T

T
l G(v) S(v)
WHERE THEN END
E

E
G(v,l) S(v)
THEN END
V

S(v,l) V
END
E

Figure : Di érents types d'événements

des variables l : dont la porté est restreinte à l'événement,


des gardes G : les prédicats spéci ent l'état dans lequel l'événement
est déclenchable. v sont des variables de la machine.
des actions S.
Méthodes formelles 17 / 22 Méthodes formelles 18 / 22

9
07/03/2021

L a méthode Event-B L a méthode Event-B

Rodin Rodin
Event-B perspective Proving perspective

Rodin est une plate-forme de spécification et de preuve en Event-B, L'étape de la preuve in ue beaucoup sur la spécification.
Rodin est basée sur Eclipse et peut être étendue à l'aide de
plug-ins.
https://sourceforge.net/projects/rodin-b-sharp/

Outline
L'agencement des fenêtres n'est pas f i x e !

Explorateur L e s o b lig a tio n s


de projets de preuves
Éditeur
Arbre de Les
preuve hypothèses

Preuv e à
dé m ontrer
Explorate ur D é t a i l s d e la
preuve
de problème s
Ou tils d e c o n trô le
de preuve

Méthodes formelles 19 / 22 Méthodes formelles 20 / 22

10
07/03/2021

L a méthode Event-B

Rodin
Une p r e m i ére m a c h in e à c r é e r : « A t r a f fic l i g h t c o n t r o l l e r »

Étapes à suivre dans le lien suivant:

https://www3.hhu.de/stups/handbook/rodin/current/html/tut_first
_machine.html

Méthodes formelles 21 / 22

11

Vous aimerez peut-être aussi