Vous êtes sur la page 1sur 33

GL3

Modélisation des systèmes

Chapitre 7 :

Méthode B

Olfa Mosbahi
olfamosbahi@gmail.com
Grandes étapes du développement de logiciels
 Étude « système »
 Cahier des charges avec description des besoins et contraintes clients
 Analyse fonctionnelle
 Identification des grands scénarios et des composants (modules) utiles
 Spécification
 Définition du rôle de chaque module
 Conception
 Choix de structures de données, d’algorithmes…
 Codage
 Implémentation
 Intégration
 Assemblage des différents composants
 Test
 Vérification du respect des spécifications
 Maintenance
 Permettre l’évolution du logiciel

2
Introduction

 Langage B se base sur :

 Théorie des ensembles,


 Logique du premier ordre
 Langage des substitutions généralisées

 Composants :

 Machine abstraite
 Raffinement
 Implémentation

3
Processus de développement en B

4
Machine abstraite

5
Machine abstraite

6
Ensembles et Relations
Relations

Fonctions

7
Ensembles et Relations

8
Ensembles et Relations
Fonction Partielle Fonction totale

9
Ensembles et Relations
Fonction injective Partielle Fonction injective totale

10
Ensembles et Relations
Fonction surjective Partielle Fonction surjective totale

11
Ensembles et Relations

12
Ensembles et Relations

Exemple :

13
Ensembles et Relations

14
Langage pour la dynamique

15
Langage des Substitutions généralisées

16
Substitutions généralisées
Non déterminisme ANY

17
Substitutions généralisées

18
19
Exemple : Réservation

20
Exemple : Réservation

21
Preuve de cohérence

 La dernière étape de la spécification consiste à prouver la


cohérence de chaque machine abstraite
 On prouve pour chaque opération que
 lorsque la machine est dans un état correct
 Les propriétés invariantes I sont supposées vérifiées
 lorsque l’opération est appelée dans des conditions nominales
 la pré-condition P d’appel est supposée vérifiée
 alors sa transformation S (Opération) amène la machine dans un
état correct
 un état qui satisfait l’invariant I

22
Preuve de cohérence

Deux étapes de preuve


1. Calcul de [S]I la plus faible pré-condition
 Condition minimale garantissant que l’état de la machine après
l’opération respecte l’invariant
 On applique simplement la substitution S à la formule I
2. On prouve que les conditions initiales (invariant et pré-
condition) impliquent cette plus faible pré-condition
 Pour chaque opération, la formule dont il faut établir la validité
est donc de la forme
I  P  [S]I

23
Illustration sur reserver

MACHINE I  P  [S]I
reservation
VARIABLES
nbPlacesLibres, capacite
INVARIANT
nbPlacesLibres  NAT 
capacite NAT 
nbPlacesLibres ≤ capacite
I
OPERATIONS
reserver(nbPlaces)=
PRE
nbPlaces  NAT1 
nbPlaces ≤ nbPlacesLibres P
THEN
nbPlacesLibres := nbPlacesLibres-nbPlaces
END
S
END
24
Sémantique WP

25
B événementiel

Modélisation globale d’un système


Observation du comportement Sémantique
par événements

Déclenchement d’événements
Condition de déclenchement par une garde
Décomposition en sous-systèmes
26
B événementiel

event = garde =⇒
action

event : nom d’événement garde :


prédicat sur l’état action : substitution
généralisée

Modèle d’exécution :

garde vraie : événement habilité


exécution non déterministe d’un
événement habilité exécution d’un 27
B event et Raffinement de modèles

Dans le raffinement (Clockhm), nous ajoutons l’événement update_m qui


modélise l’incrémentation des minutes. Le modèle obtenu produit un raffinement
de notre modèle des heures en ajoutant les pas de calcul pour les minutes.
28
Résumé

29
Conclusion

30
31
32
33

Vous aimerez peut-être aussi