• Aucun résultat trouvé

La Méthode B

N/A
N/A
Protected

Academic year: 2022

Partager "La Méthode B"

Copied!
8
0
0

Texte intégral

(1)

La Méthode B

Objectifs

Une méthode rigoureuse de développement logiciel : Spécication formelle

Conception explicite par ranement Implémentation simpliée en couches Vérication et validation

Prérequis :

Cahier des charges Description des besoins

1

Contexte et motivations Modélisation :

On démarre de spécications générales informelles Petit-à-petit le modèle est rané

On arrive à un modèle mathématique Spécication formelle :

Écriture de ce qui est attendu dans un langage formel Permet de raisonner rigoureusement sur les propriétés

attendues

Modèle d'un programme :

Modèle usuel : une fonction qui transforme la mémoire de la machine.

Permet de prouver qu'un programme exécute bien les tâches demandées.

Ranement : décomposition d'un problème en sous-problèmes plus simples.

Réutilisation : résolution d'un problème en utilisant des bibliothèques génériques bien établies

(2)

Correction d'un programme Certication

Test

4

Méthode B

Jean-Raymond Abrial (années 80)

Méthode qui intervient tôt dans le développement du logiciel Notation de machine abstraite, ranement, implémentation Théorie des ensembles

Logique du premier ordre Langage de substitutions

5

Applications

Cette technologie est utilisée au milieu industriel pour la modélisation de logiciels critiques avec besoins du zéro-défaut.

Coût du développement (Ariane)

Attaques malveillantes (commerce, santé) Vies humaines (transport, médecine)

Système freinage RER A

(1998) Ligne de métro 14. Le logiciel critique embarqué a été modélisé, prouvé et généré à partir de spécications B.

(2005) Ligne de métro 1.

Depuis : métros et navettes aéroports dans le monde entier.

Outils

B-tool (Anglaterre), voir

http://www.b-core.com/btool.html Atelier B, voir http://www.atelierb.eu/

J.R. Abrial : The B-Book. Cambridge University Press, 1996.

Atelier B : http ://www.atelierb.societe.com Actualités de B, voir http://vasco.imag.fr/B/

Projet LL supportant la méthode B https://gna.org/projects/brillant/

(3)

Le formalisme

Expressions arithmétiques Ensembles de base Formules

Relations Fonctions Substitutions Séquences

8

Les expressions arithmétiques Opérateurs+,−,×, /,mod. Exemple :

8×(n+ 11)

9

Les ensembles de base

{}ou∅ L'ens. vide

N AT L'ens. des entiers naturels IN T L'ens. des entiers relatifs ST RIN G L'ens. des chaînes de caractères BOOL L'ens. des booléens

{e} L'ens. réduit à un élément e

{e1, ..., en} L'ens. composé des éléments e1,...,en Exemple :{1,2,3} et{{},{1,2}}.

Opérations sur les ensembles

E1∪E2 union E1∩E2 intersection E1−E2 diérence

(4)

Les ensembles par compréhension

Appartenance à un ensemble :z∈S.

L'ens. de tous les objets qui vérient la formuleP est {z|P} ou {z∈S |P}.

L'ens. des entiers entre n1 et n2 (inclus) avec n1 et n2 des expressions représentants des entiers positifs :(n1..n2).

card(E) est le cardinal (nombre d'éléments) d'un ensemble E ni.

P(E) est l'ens. de sous-ens. de E.

12

Formules de base

e1 = e2

n1 > n2

n1 < n2

e1 ̸= e2

n1 ≥ n2

n1 ≤ n2

13

Formules ensemblistes

e∈E L'expression e est un objet de l'ensemble E.

e̸∈E L'expression e n'est pas un objet de l'ensemble E.

E1 ⊆E2 E1 est un sous-ensemble de E2.

E1 ̸⊆E2 E1 n'est pas un sous-ensemble de E2.

Formules composées not(F) négation F1∧F2 conjonction F1∨F2 disjonction F1 ⇒F2 implication F1 ⇔F2 équivalence

∃var.F quantication existentielle

∀var.F quantication universelle

Quantication multiple :∀ (x, y).(x=y⇒y=x)

(5)

Les formules bien typées

∀(a, b).(a, b)∈P(E)×P(E)⇒ {x|x ∈E∧ x∈a∧ x∈b} ⊆E ade type P(E)

b de typeP(E) x de type E x∈abien typé x∈bbien typé

{x |x∈E∧ x∈a∧ x∈b}de type P(E) {x |x∈E∧ x∈a∧ x∈b} ⊆E bien typé

16

Substitution élémentaire

[var:=E]P Exemple :[n:= 3]n > m est égal à3> m.

17

Variables liées

∃x.F

∀x.F

{x |P}

Une variable peut etre libre et liée en même temps :

x >0 ∧ ∀ x.x= 0

Substitution multiple

C'est une substitutionsimultanée

[x1, . . . , xn:=e1, . . . , en]P ou

x1:=e1 || . . .|| xn:=en ;P

Exercice :Donner un exemple pour montrer que la substitution séquentielle et la substitution simultanée ne sont pas les mêmes.

Exercice :Exprimer la substitution simultanée en utilisant la substitution séquentielle.

(6)

Relations

E1 ↔E2 Relations entre éléments de E1 et de E2

R1;R2 Composition des relationsR1 et R2

id(E) la relation identité sur l'ensemble E R1 relation inverse de R

R clôture réexive-transitive de R

ER la restriction de la relation R au domaine E RE la restriction de la relation R à l'image E dom(R) : domaine deR

ran(R) : image de R

20

Fonctions

Les fonctions sont des relations fonctionnelles : si(x, y)∈R et (x, z)∈R, alorsy =z.

Les fonctions partielles deA enB :A↛B Les fonctions totales deA enB :A→B Les fonctions injectives de Aen B:A↣B

21

Séquences

Les séquences sont des suites ordonnées d'objets d'un ensemble E.

Une manière de les modéliser mathématiquement est de les voir comme des fonctions de N dans E dont le domaine est soit l'ensemble vide (dans le cas de la séquence vide) soit l'ensemble 1..n pour n un entier strictement positif.

Exemple

Modélisation de l'ensemble des entiers naturels de Peano.

1. 0∈N.

N n'est pas vide.

2. ∀ n.(n∈N ⇒succ(n)∈N).

3. ∀ n.(0̸=succ(n)).

N possède un premier élément.

4. ∀ (n, m).(succ(n) =succ(m)⇒n=m).

5. [E ∈P(N)∧0∈E∧∀n.(n∈E ⇒succ(n)∈E)]⇒E =N.

(7)

Exercice

Étant donné un ensemble personnes, on cherche à modéliser : Lesensembles femmes, hommes

Lesrelations epoux, epouse, mere, pere, parent, enfant, grand-parent, ancetre, frere, soeur, frere-soeur, enfant 1. Chaque personne est un homme ou une femme.

hommes ⊆ personnes femmes ⊆ personnes personnes ⊆ hommes ∪femmes

2. Nulle personne n'est à la fois homme et femme.

hommes ∩femmes =∅

24

3. Seules les femmes ont des époux qui sont des hommes.

epoux ∈ femmes ↔hommes 4. Chaque femme a au plus un époux.

epoux ∈ femmes ↛hommes

(i.e.(f, h1)∈epoux∧ (f, h2)∈epoux⇒ h1 =h2).

25

5. Les hommes ne peuvent être mariés qu'à au plus une femme.

epoux ∈ femmes ↣ hommes

(i.e.(f1, h)∈epoux ∧ (f2, h)∈epoux ⇒f1 =f2).

ou

epouse = epoux1

epouse ∈ hommes ↛femmes 6. Une mère est une femme mariée.

mere ∈ personnes↛dom(epoux) 7. Le père est l'époux de la mère.

pere = mere ; epoux 8. Modéliser la notion de parent.

parent = mere ∪pere

9. Modéliser la notion d' enfant.

enfant = parent1

10. Modéliser la notion de grand-parent.

grand-parent = parent ; parent 11. Modéliser la notion d'ancetre.

ancetre = parent ; parent 12. Modéliser la notion de frere.

frere = (mere ; mere1) hommes− id(hommes) 13. Modéliser la notion de soeur.

soeur = (mere ; mere1) femmes− id(femmes) 14. Modéliser la notion de frere-soeur.

frere-soeur = frere∪ soeur

(8)

15. Démontrer mere = pere ; epoux−1. pere ; epoux1

(mere ; epoux ) ; epoux1= mere ; (epoux ; epoux1)=

mere ; id(dom(epoux)) = mere

28

Références

Documents relatifs

Lorsque chacun des parents a droit à une partie seulement de la déduction pour enfant ou que l’un d’eux peut prétendre à la déduction pour aide parce que l’autre a droit à

Dans un souci d’avoir des moniteurs quali iés, la Ville de Saguenay offre la formation DAFA à tout son personnel de camp de jour a in qu’il ait tous les outils pour faire vivre

Cette déclaration de consentement est valable jusqu’à la date d’échéance du Certificat d’acceptation du Québec (CAQ) pour études de notre enfant ou jusqu’à la majorité de

— Brouille du prince de Prusse avec Frédéric II... TABLE

Laissez l’enfant mettre le tuyau dans le pot de peinture et ensuite le mettre sur le poisson. L’enfant va appuyer puis relâcher

L’auteur ou l’adoptant étranger d’un enfant mineur belge, peut acquérir la nationalité belge par déclaration si il vit en Belgique depuis cinq ans, s’il a un titre

A mon Jacques très chéri en souvenir d'une chambre pleine d'amour et de mémoire Jean* (1961) Dans sa lettre de remerciements, Maritain remarque que la forme toute classique des

□ DEMANDE DE CARTE DE RESIDENT (fondement L.314-93° du CESEDA) Je sollicite une carte de résident sur le base de l’article L.314-93° du CESEDA puisque je suis