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
1
07/03/2021
Introduction Introduction
Construire un logiciel: le modèle en cascade Quelques exemples d'échecs
2
07/03/2021
3
07/03/2021
4
07/03/2021
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
5
07/03/2021
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
6
07/03/2021
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
7
07/03/2021
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
8
07/03/2021
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
9
07/03/2021
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 !
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
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 »
https://www3.hhu.de/stups/handbook/rodin/current/html/tut_first
_machine.html
Méthodes formelles 21 / 22
11