• Aucun résultat trouvé

Méthodologie de construction du logiciel (M3301-2)

N/A
N/A
Protected

Academic year: 2022

Partager "Méthodologie de construction du logiciel (M3301-2)"

Copied!
20
0
0

Texte intégral

(1)

M ´ethodologie de construction du logiciel (M3301-2)

M ´ethode B

J. Christian Attiogb ´e

Universit ´e de Nantes

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 1 / 39

Introduction

Plan du cours

1 Introduction

2 Langage de mod ´elisation des donn ´ees Logique

Th ´eorie des ensembles Relations et fonctions

3 Concepts de base pour la dynamique (op ´erations)

4 Les substitutions g ´en ´eralis ´ees

(2)

Langage de mod ´elisation des donn ´ees Logique

B - Langage des donn ´ees - ensembles et typage

Ensembles pr ´ed ´efinis (statut de type) BOOL, CHAR,

INTEGER ( Z ), NAT ( N ), NAT1 ( N *) , STRING

Produit cart ´esien E × F

Ensemble des sous-ensembles P E not ´e POW(E)

Ensembles abstraits : PERSONNE, NUMERO, MOT, PROCESSUS, SERVICE, PRODUIT, NOM

Ensembles ´enum ´er ´es : IDGROUPE = { g1, g3, g4, g2, g5 }

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 3 / 39

Langage de mod ´elisation des donn ´ees Logique

B - Langage des donn ´ees

A l’aide du langage des donn ´ees

On mod ´elise l’ ´etat d’un syst `eme avec les donn ´ees qui le caract ´erisent

on explicite les propri ´et ´es invariantes d’un syst `eme Mod ´elisation de l’ ´etat :

Abstraction, mod ´elisation (ensembles abstraits, relations, fonctions, ...)

Propri ´et ´es logiques, alg ´ebriques.

(3)

Langage de mod ´elisation des donn ´ees Logique

B - Langage des donn ´ees

Exemples de pr ´edicats :

2 ≤ jauge ≤ 45 2 ≤ jauge ∧ jauge ≤ 45

valReg < 255

∀ x . (x ∈ S 1 ⇒ temp(x) < 37)

∀ p.(p ∈ processus ⇒ status(p) ∈ { ready, wait, active } )

∃ y .(y ∈ IN ∧ y > 1024)

· · ·

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 5 / 39

Langage de mod ´elisation des donn ´ees Logique

B - Langage des donn ´ees

Logique du premier ordre D ´esignation Notation Ascii

et p ∧ q p & q

ou p ∨ q p or q

non ¬ p not(p)

implication p ⇒ q ((p) => (q)) quantif. univ. ∀ x.p(x) !x.(p(x)) quantif. exist. ∃ x.p(x) #x.(p(x))

Il faut typer les x quantifi ´es :

!x.((x : T) => p(x)) et #.((x : T) & p(x))

(4)

Langage de mod ´elisation des donn ´ees Th ´eorie des ensembles

B - Langage des donn ´ees

Les op ´erateurs ensemblistes classiques E, F et T des ensembles, x un ´el ´ement de F

D ´esignation Notation Ascii

union E ∪ F E \ / F

intersection E ∩ F E / \ F

appartenance x ∈ F x:F

diff ´erence E \ F E - F inclusion E ⊆ F E <: F s ´election choice(E)

cardinal card(E) card( E ) + Union et intersection g ´en ´eralis ´ees

+ Union et intersection quantifi ´ees

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 7 / 39

Langage de mod ´elisation des donn ´ees Th ´eorie des ensembles

Exemple d’utilisation des ensembles

MACHINE Resrc SETS

RESC // un ensemble abstrait CONSTANT

maxRes PROPERTIES

maxRes : NAT & maxRes > 1 VARIABLES

rsc INVARIANT

rsc <: RESC // sous ens-ensemble

& card(rsc) <= maxRes //

born´ ee

INITIALISATION rsc := {}

OPERATIONS

addRsc(rr) = // ajout PRE

rr : RESC & rr /: rsc &

card(rsc) < maxRes THEN

rsc := rsc \ / { rr } END

;

rmvRsc(rr) = // retrait PRE

rr : RESC & rr : rsc THEN

rsc := rsc - { rr } END

END

(5)

Langage de mod ´elisation des donn ´ees Th ´eorie des ensembles

B - Langage des donn ´ees

En notation ascii la n ´egation est r ´ealis ´ee avec /.

D ´esignation Notation Ascii non appartenance x < F x /: F

non inclusion E * F E /<: F non ´egalit ´e E , F E /= F

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 9 / 39

Langage de mod ´elisation des donn ´ees Th ´eorie des ensembles

Union g ´en ´eralis ´ee

On veut ´ecrire A ∪ C ∪ B ∪ E, pour regrouper les ensembles S ∈ P ( P (T))

union(S) = { x | x ∈ T ∧ ∃ u . (u ∈ S ∧ x ∈ u) } Exemple

union( {{ aa , ee , ff } , { bb , cc , gg } , { dd , ee , uu , cc }} )

= { aa, ee, ff , bb, cc, gg, dd, uu }

(6)

Langage de mod ´elisation des donn ´ees Th ´eorie des ensembles

Union quantifi ´ee

C’est un op ´erateur qui permet de faire l’union g ´en ´eralis ´ee d’expressions ensemblistes bien d ´efinies.

∀ x.(x ∈ S ⇒ E ⊆ T)

[ x . (x ∈ S | E) = { y | y ∈ T ∧ ∃ x . (x ∈ S ∧ y ∈ E) }

Exemple

UNION(x) . (x ∈ { 1 , 2 , 3 } | { y | y ∈ NAT ∧ y = x ∗ x } )

= { 1 } ∪ { 4 } ∪ { 9 } = { 1, 4, 9 }

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 11 / 39

Langage de mod ´elisation des donn ´ees Th ´eorie des ensembles

Intersection g ´en ´eralis ´ee

On veut ´ecrire A ∩ C ∩ B ∩ E, pour calculer l’intersection des ensembles.

S ∈ P ( P (T))

inter(S) = { x | x ∈ T ∧ ∀ u.(u ∈ S ⇒ x ∈ u) } Exemple

inter( {{ aa , ee , ff , cc } , { bb , cc , gg } , { dd , ee , uu , cc }} = { cc }

(7)

Langage de mod ´elisation des donn ´ees Th ´eorie des ensembles

Intersection quantifi ´ee

C’est un op ´erateur qui permet de faire l’intersection g ´en ´eralis ´ee d’expressions ensemblistes bien d ´efinies.

∀ x . (x ∈ S ⇒ E ⊆ T)

T x.(x ∈ S | E)

= { y | y ∈ T ∧ ∀ x.(x ∈ S ⇒ y ∈ E) } Exemple

INTER(x) . (x ∈ { 1 , 2 , 3 , 4 } | { y | y ∈ { 1 , 2 , 3 , 4 , 5 }

∧ y > x } )

= inter( {{ 1 , 2 , 3 , 4 , 5 } , { 2 , 3 , 4 , 5 } , { 3 , 4 , 5 } , { 4 , 5 }} )

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 13 / 39

Langage de mod ´elisation des donn ´ees Relations et fonctions

Les relations - d ´efinition, vocabulaire

d ´efinition : relation

Une relation r entre D et A est un sous-ensemble du produit D × A On note r : D ↔ A ou bien r ⊆ D × A

r est un ensemble de couples (d, a) encore not ´e d 7→ a

0

5 3

2 8 1

2

3 5 4

codomaine Ens d'Arrivée Ens de Départ

domaine

D A

r

Figure: Diagramme sagittal de r

r = { (1 , 3) , (2 , 2) , (3 , 5) , (4 , 5) } ou r = { 1 7→ 3 , 2 7→ 2 , 3 7→ 5 , 4 7→ 5 } dom(r) = { 1, 2, 3, 4 }

ran(r) = { 3, 5, 2 }

Domaine : domaine

Codomaine : range

(8)

Langage de mod ´elisation des donn ´ees Relations et fonctions

Les relations

D ´esignation Notation Ascii

relation r : S ↔ T r : S <-> T domaine dom(r) ⊆ S dom(r) <: S image ran(r) ⊆ T ran(r) <: T

composition r;s r;s

composition r(s) r ◦ s r(s)

identit ´e id(S) id(S)

l’image d’un ´el ´ement : r(element)

les images d’un ens. d’ ´el ´ements : r[Ensemble]

Notez que r ´etant un ensemble (de couples), on peut lui appliquer tous les op ´erateurs sur les couples : ∪ , ∩ , \ , ⊂ , ∈ , card , ...

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 15 / 39

Langage de mod ´elisation des donn ´ees Relations et fonctions

Les relations (suite)

D ´esignation Notation Ascii

restrictition domaine S / r S <| r restriction codomaine r . T r |> T antirestriction domaine S - / r S <<| r antirestriction codomaine r - . T r |>> T

inverse r r ∼

image relationnelle r[S] r[S]

´ecrasement r1 ⊕ r2 r1 <+ r2

produit direct de rel. r1 ⊗ r2 r1 >< r2

fermeture closure(r) closure(r)

fermeture reflexive trans. closure1(r) closure1(r)

(9)

Langage de mod ´elisation des donn ´ees Relations et fonctions

Les relations (suite)

annuaire : personnes <-> numeros

n1

n5 n3

n2 n8 p1

p3

p4 p5

annuaire

personnes numeros

p2

Figure: Relation annuaire

annuaire =

{ (p1 , n3) , (p3 , n2) , (p4 , n5) , (p5 , n5) } ou annuaire =

{ p1 7→ n3 , p3 7→ n2 , p4 7→ n5 , p5 7→ n5 } { p3 , p5 } <| annuaire = { p3 7→ n2, p5 7→

n5 }

annuaire |> { n5 } = { p4 7→ n5, p5 7→

n5 }

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 17 / 39

Langage de mod ´elisation des donn ´ees Relations et fonctions

Les relations (suite) - exemple en B

MACHINE

ExpRelation // exemple de machine avec une relation DEFINITIONS

NUMERO == 10..100 // un ens. d´ efini l’interv sur 10..100 SETS

ETUDIANT // un ens. abstrait VARIABLES

personnes // un ens. d’´ etudiants , annuaire // annuaire des ´ etudiants INVARIANT

personnes <: ETUDIANT // un ens d’´ etudiants

& annuaire : personnes <-> NUMERO // un ´ etu a 0/plus num´ eros INITIALISATION

personnes, annuaire := {} , {} // tout est vide au d´ ebut

END

(10)

Langage de mod ´elisation des donn ´ees Relations et fonctions

Les fonctions

d ´efinition : fonction

Une fonction f est une relation avec des propri ´et ´es particuli `eres : chaque ´el ´ement de l’ensemble de d ´epart n’a au plus qu’une image.

D ´esignation Notation Ascii

fonction partielle f : S → 7 T f: S +-> T fonction totale f : S → T f: S --> T injection partielle f : S → 7 T f: S >+> T injection totale f : S → T f: S >-> T surjection partielle f : S → → 7 T f: S +->> T surjection totale f : S → → T f: S -->> T bijection totale f : S → → T f: S >->> T lambda abstraction %x . (P | E)

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 19 / 39

Langage de mod ´elisation des donn ´ees Relations et fonctions

Fonctions : exemple

MACHINE

ExpFonction // exemples de fonctions DEFINITIONS

PLACE == 1..200 // un ens. d´ efini l’interv sur 1..200 SETS

ETUDIANT VARIABLES

placeEtu1 // une fonction partielle

, placeEtu2 // une injection (pas de partage d’images) , placeEtu3, placeEtu4 // fonction totale

INVARIANT

placeEtu1 : PLACE +-> ETUDIANT // ` a une place, un ´ etudiant

& placeEtu2 : PLACE >+> ETUDIANT // c’est bien mieux

& placeEtu3 : PLACE --> ETUDIANT // ` a toute place, un ´ etudiant

& placeEtu4 : PLACE >-> ETUDIANT // ` a tte place,un ´ etu diff´ erent ...

END

(11)

Langage de mod ´elisation des donn ´ees Relations et fonctions

Les s ´equences

Les s ´equences sont des fonctions (le domaine est un intervalle continu d’entiers) : maSeq1 : 1..N --> NAT

D ´esignation Notation

suite d’ ´el ´ements de T seq(T)

= union(n).(n ∈ IN

| 1..n → T)

suite vide []

suite inj. d’ ´el ´em. de T iseq(T) suite bij. d’ ´el ´em. de T perm(T)

taille d’1 s ´eq. s size(s) = card(dom(s))

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 21 / 39

Langage de mod ´elisation des donn ´ees Relations et fonctions

Les s ´equences (suite)

D ´esignation Notation

premier ´el ´em. d’une s ´eq. s first(s) = s(1) dernier ´el ´em. d’une s ´eq. s last(s) = s(size(s)) restric. de s `a ses n prem.

´el ´ements s ↑ n

´el ´emination de n premiers

´el ´ements de s s ↓ n

(12)

Concepts de base pour la dynamique (op ´erations)

Le langage des op ´erations

Apr `es le langage des donn ´ees, le concept de base des substitutions

et le langage pour les op ´erations

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 23 / 39

Concepts de base pour la dynamique (op ´erations)

Le langage des op ´erations

Concepts de base pour la partie dynamique : Logique de Hoare

Plus faibles pr ´econditions (Dijkstra)

Substitutions (Logique) et Substitutions g ´en ´eralis ´ees (extension)

(13)

Concepts de base pour la dynamique (op ´erations)

Les plus faibles pr ´econditions

Contexte : Logique de Hoare/Floyd/Dijkstra triplet de Hoare (Etat, espace d’ ´etat, commandes, triplet de Hoare, ACM, 1969)

{ P } S { R } P un pr ´edicat : pr ´econdition,

S une commande (instruction ou programme) et

R un pr ´edicat d ´ecrivant le r ´esultat de S : post-condition.

wp(S , R), pr ´edicat qui repr ´esente :

l’ensemble de tous les ´etats tels que l’ex ´ecution de S commenc¸ant par un d’entre eux se termine en un temps fini dans un ´etat satisfaisant R, wp(S , R) est la plus faible pr ´econdition de S par rapport `a R.

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 25 / 39

Concepts de base pour la dynamique (op ´erations)

Quelques exemples

Soient

S une affectation et R le pr ´edicat i ≤ 1

wp(i : = i + 1 , i ≤ 1) = (i ≤ 0) Soient

S la conditionnelle suivante : if x ≥ y then z : = x else z : = y et R le pr ´edicat z = max(x , y)

wp(S, R) = Vrai

(14)

Concepts de base pour la dynamique (op ´erations)

Plus-faibles pr ´econditions - s ´emantique

Le sens de wp(S, R) peut ˆetre pr ´ecis ´e par deux propri ´et ´es :

wp(S , R) est une pr ´econdition garantissant R apr `es l’ex ´ecution de S, c’est `a dire que :

{ wp(S, R) } S { R }

wp(S , R) est la plus faible de telles pr ´econditions, c’est `a dire que : si { P } S { R } alors P ⇒ wp(S , R)

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 27 / 39

Concepts de base pour la dynamique (op ´erations)

Plus-faibles pr ´econditions - s ´emantique

En pratique un programme S ´etablit une postcondition R.

Int ´er ˆet pour les pr ´econditions qui permettent d’ ´etablir R.

wp est une fonction `a deux arguments : une instruction (ou programme) S et un pr ´edicat R.

Pour un S fix ´e, on peut voir wp(S , R) comme une fonction `a un seul argument wp S (R).

La fonction wp S est appel ´e transformateur de pr ´edicats.

C’est la fonction qui associe `a tout pr ´edicat R la plus faible

pr ´econdition telle que { P } S { R } .

(15)

Concepts de base pour la dynamique (op ´erations)

B : Substitutions g ´en ´eralis ´ees - Axiomes

G ´en ´eralisation de la substitution simple de la logique classique ( pour mod ´eliser des comportements d’op ´erations ).

Soit R un pr ´edicat `a etablir, la s ´emantique des substitutions g ´en ´eralis ´ees est d ´efinie par le transformateur de pr ´edicat.

Substitution simple S

s ´emantique [S]R se lit : S ´etablit R Substitution multiple x , y : = E , F S ´emantique [x, y := E, F]R

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 29 / 39

Concepts de base pour la dynamique (op ´erations)

B : Substitutions g ´en ´eralis ´ees - Jeu de base

Le langage de syntaxe abstraite pour sp ´ecifier les op ´erations :

Soit R l’invariant, S, T des substitutions

Nom Synt. abs. d ´efinition ´equivalent logique

neutre (id.) skip [skip]R R

Pr ´e-condition P | S [P | S]R P ∧ [S]R Choix born ´e S [] T [S [] T]R [S]R ∧ [T]R

Garde P = ⇒ T [P = ⇒ T]R P ⇒ [T]R

non born ´e @x . S [@x . S]R ∀ x . [S]R

x non libre dans R

suffit comme langage de specification de B mais ...

(16)

Les substitutions g ´en ´eralis ´ees

B - Langage des substitutions g ´en ´eralis ´ees

Extension syntaxique des substitutions : jeu de base Substitution simple

not ´ee S

Extension syntaxique BEGIN

S END

Substitutions simultan ´ees Soient S et T deux substitutions.

S ´etant x : = E et T ´etant y : = F on note S || T

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 31 / 39

Les substitutions g ´en ´eralis ´ees

B - Langage des substitutions g ´en ´eralis ´ees

Substitution neutre skip

Extension syntaxique skip

Subst. avec pr ´econdition P | S

Extension syntaxique

PRE

P

THEN

S

END

(17)

Les substitutions g ´en ´eralis ´ees

B - Langage des substitutions g ´en ´eralis ´ees

choix born ´e S [] T

Extension syntaxique CHOICE

S OR T END Substitution avec garde

(P = ⇒ T) [] ( ¬ P = ⇒ S)

Extension syntaxique

IF P THEN T ELSE S END

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 33 / 39

Les substitutions g ´en ´eralis ´ees

B - Langage des substitutions g ´en ´eralis ´ees

Substitution de choix non born ´e

@x . S x

Extension syntaxique

VAR x IN Sx

END

(18)

Les substitutions g ´en ´eralis ´ees

Extension du jeu de base : non-d ´eterminisme

Nond ´eterminisme @

@x . (P x = ⇒ S x )

Extension syntaxique ANY x

WHERE Px THEN Sx END

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 35 / 39

Les substitutions g ´en ´eralis ´ees

Extension du jeu de base : non-d ´eterminisme

Nond ´eterminisme x : ∈ U (devient appartient)

x:: U

@y . (y ∈ U = ⇒ x : = y)

Extension syntaxique ANY y

WHERE y : U

THEN x := y

END

(19)

Les substitutions g ´en ´eralis ´ees

B - Langage des substitutions g ´en ´eralis ´ees

Extensions... non-d ´eterminisme

Nond ´eterminisme x : P(x) (x tel que P)

x: P(x)

BEGIN

x : (x < 30) END

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 37 / 39

Les substitutions g ´en ´eralis ´ees

Non d ´eterminisme - Substitutions

Abstraction ⇒ non d ´eterminisme possible.

c’est OK pour sp ´ecifier, mais ensuite il faut d ´eterminiser Concr ´etisation ⇒ raffinement vers code

avec des substitutions de programmation (s ´equences, boucles, ...) Extension du jeu de base `a d’autres substitutions proches de la programmation.

Substitutions de programmation (dans les raffinements) ... ; ... s ´equence

IF ... THEN ...ELSE...

CASE OF ...

SELECT ...

(20)

Les substitutions g ´en ´eralis ´ees

R ´ef ´erences

J-R. Abrial, The B-Book, Cambridge University Press, 1996 J. Wordsworth, Software Engineering with B, Addison-Wesley, 1996

J-R. Abrial, Modeling in Event-B: System and Software Engineering, Cambridge University Press

H. Habrias, Sp ´ecification formelle avec B, Herm `es - Lavoisier, 2001

J. Christian Attiogb ´e (Universit ´e de Nantes) M ´ethode B 39 / 39

Références

Documents relatifs

Afin de repr´ esenter des familles de produits, de nom- breux mod` eles de repr´ esentation s’appuient sur des liens repr´ esentant une relation particuli` ere entre les diff´

Le mod` ele permet d’avoir une estimation de la temp´ erature moyenne de l’air int´ erieur, des temp´ eratures surfaciques des parois, de la chaleur fournie par le plancher chauf-

Sur ce syst`eme mod`ele, nous montrons que, du point de vue entr´ee/sortie et sous l’hypoth`ese standard des petites oscillations, il n’y a pas de diff´erence entre des

Pour r´ esoudre un syst` eme, on va faire des combinaisons lin´ eaires d’´ equations, et produire ainsi des ´ equations plus simples... Nombre

Cette approche pr´esente deux difficult´es num´eriques majeures : suivre avec pr´ecision l’´evolution de l’interface solide-liquide et r´esoudre efficacement la convection

[r]

Quelle relation doit exister entre B 0 et t pour que le r´esultat de l’une des mesures

On consid`ere une particule non charg´ee de spin 1/2 soumise ` a un champ magn´etique uniforme et constant B ~ parall`ele ` a l’axe Oz.. Quels r´esultats peut-on trouver et avec