exposé langage-b

31
La méthode B HAMMAMI DONIA LETAIEF ALYA

Upload: donia-hammami

Post on 26-Jan-2017

141 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Exposé langage-b

La méthode B

HAMMAMI DONIA

LETAIEF ALYA

Page 2: Exposé langage-b

2Plan de la présentation

1) Classification de la méthode B

2) Historique de la méthode B

3) Présentation de la méthode B

4) Objectifs de la méthode B

5) B, Les différents Langages

6) La méthode B et ses outils

Page 3: Exposé langage-b

3Plan de la présentation

8) Les bases du langage de la méthode B

9) Domaines d’application de la méthode B

10) Développement de programme avec B

11) Exemple simple en B

12) Articles autour de la méthode B

13) Conclusion

Page 4: Exposé langage-b

4Classification de la méthode B (1)

Il existe de nombreuses approches plus ou moins parcellaires avec de nombreuses variantes pour la

classification des méthodes formelles . Néanmoins , Il est difficile de classer une approche !

On peut classer les méthodes formelles en quatre catégories :

Approche algébrique : Types abstraits de données (aucune structure de donnée n'est décrite,

seules les opérations le sont), déduction équationnelle .

Approche dynamique : Modélisation de l'interaction entre différents processus .

Approche logique : Théorie des types et logiques d'ordre supérieur .

Approche par modèle abstrait : Définition d'une structure de données et d'un ensemble

d'opérations, approche constructive : B.

Page 5: Exposé langage-b

5Classification de la méthode B (2)

Critères de classification possibles :

1- Type de raisonnement

modèle algorithmique

théorie des types

algèbres de processus

files d'attentes

modèle mathématique : B

2- Aspect du système :

dynamique

fonctionnel

statique : B

3- Langage :

Dédié

général : B

Page 6: Exposé langage-b

6Historique de la méthode B

Cette méthode a été conçue par Jean-Raymond ABRIAL, qui avait déjà participé dans

les années 1980 à la conception de la notation Z.

D’autre part, la méthode B repose sur les travaux scientifiques menés à l’université

d’Oxford, dans le cadre du Programming Research Group dirigé par C.A.R. Hoare.

Page 7: Exposé langage-b

7Présentation de la méthode B (1)

La méthode B est une méthode formelle qui permet le raisonnement sur des systèmes

complexes ainsi que le développement logiciel.

La méthode B permet de modéliser de façon abstraite le comportement et les spécifications

d'un logiciel dans le langage de B, puis par raffinements successifs afin d’aboutir à un modèle

concret dans un sous-ensemble du langage B transcodable exécutables par une machine

concrète.

Page 8: Exposé langage-b

8Présentation de la méthode (2)

Le modèle B est ensuite transformé (raffiné dans le vocabulaire B), jusqu'à obtenir une

implantation logicielle complète du logiciel.

Au final, nous aboutissons alors à un modèle concret, prouvé et sans défaut, transcodable

dans le langage C ou Ada.

La méthode B est donc : « une démarche de construction prouvée (dite correcte), sur

la base du langage B, du raffinement et de la preuve ».

Page 9: Exposé langage-b

9Objectifs de la méthode B

L'objectif de la méthode B est de prouver qu'il n'y a pas d'écart entre la spécification et le code exécuté,

B couvre la spécification, la conception par raffinements successifs, l'architecture en couches et la

traduction en code source (exemple : Ada, C), 

Réaliser des logiciels corrects par construction

Modéliser des systèmes dans leur environnement

Formaliser les spécifications

Simplifier la programmation

Page 10: Exposé langage-b

10Domaines d’application de la méthode B Des industriels : ils cherchent des systèmes sécuritaires faisant appel aux méthodes formelles,

ainsi que de nouvelles technologies pouvant répondre à leur besoin,

Des experts et spécialistes : individus cherchant des informations sur les méthodes formelles à

un niveau hautement technique,

Des chercheurs spécialisés en R&D : ils agissent pour un développement durable des méthodes

formelles afin de développer de nouvelles solutions pour le futur,

Des enseignants universitaires et chercheurs : ils enseignent B dans le milieu académique et

étudient les évolutions possibles des méthodes formelles.

Page 11: Exposé langage-b

11B, les différents langages… (1)

B : B évoque, dans le domaine des méthodes formelles, le langage « B », la méthode « B », le livre de

référence : le B Book. Son ancêtre est Z, langage de spécification à base de notations mathématiques.

B comprend en plus le raffinement et la preuve, deux techniques faisant partie intégrante de B.

Le langage B : Langage faisant référence à la théorie des ensembles et à la logique des prédicats,

comprenant également une syntaxe pour décrire des « substitutions », des opérations, et les liens

entre les machines, raffinements et implémentations. La description du langage et celle du

raffinement et de la preuve associée au langage sont décrits dans le B Book.

Page 12: Exposé langage-b

12B, les différents langages… (2)

L’atelier B : Outil support de la méthode B, et intégrant la possibilité de traduire des raffinements en un code

informatique. Il accepte le langage B tel que décrit dans le B Book.

B évènementiel : On parle souvent du langage B événementiel pour parler du langage utilisé pour décrire un

système à l'aide d'évènements. À ce langage sont associés le raffinement et la preuve. C'est une utilisation de la

méthode B. Des outils permettent de passer de ce langage au langage accepté par l'Atelier B.

Page 13: Exposé langage-b

13B, les différents langages… (3)

B procédural : Ce terme impropre (car le B ne comprend pas de procédure) évoque le langage

B définit dans le B Book. En effet des niveaux de raffinements peuvent être traduits en des

procédures informatiques. Ce terme a été utilisé avec l'apparition du B évènementiel, pour éviter

la confusion avec celui-ci.

B logiciel : Évoque le langage B décrit dans le B book, utilisé pour réaliser des logiciels. Pour

une spécification donnée lorsque tous les raffinements ont été réalisés et que la preuve est

réalisée, une traduction peut être faire dans le langage informatique de son choix.

Page 14: Exposé langage-b

14La méthode B et ses outils

Parmi les outils B majeurs, nous pouvons citer :

Atelier B : Outil industriel permettant l'utilisation opérationnelle de la méthode B pour des

développements logiciels prouvés. Une formation est disponible pour comprendre, et pratiquer B.

B4Free : Outil académique permettant l'utilisation opérationnelle de la méthode B pour des

développements logiciels prouvés.

CompoSys : Outil de conception formelle d'architecture système.

Brama : Outil de conception formelle d'architecture système.

Page 15: Exposé langage-b

15Les bases du langage de la méthode B

La méthode B permet de formaliser des spécifications et des programmes. Pour cela, elle utilise son

propre langage formel. Au niveau des spécifications, il s'agit d'un langage logique reposant sur une version

simplifiée ad-hoc de la théorie des ensembles. Ce choix est un peu arbitraire mais peut se justifier par les

arguments suivants :

il est important de pouvoir décrire des ensembles, des relations et des fonctions (ce sont les concepts

centraux dans les modélisations objet),

la théorie des ensembles est bien établie dans la culture mathématique,

la théorie des ensembles permet de construire les objets mathématiques évolués (entiers, arbres, ...) à

partir d'un ensemble réduit de composants de base,

la théorie des ensembles permet une écriture concise de notions évoluées.

Page 16: Exposé langage-b

16Développement de programme avec B

Un module B développé est constitué de plusieurs composants B:

une machine abstraite(la spécification du module)

d’éventuels raffinements(de cette spécification)

et une implantation(raffinement final : code)

Page 17: Exposé langage-b

17

Une machine abstraite constitue la spécification d’un module logiciel , elle définit un modèle mathématique de ce sous système :

description abstraite de son espace d’état et de ses états initiaux possibles

description abstraite des opérations pour consulter ou modifier l’état

Ce modèle établit l’interface externe du module concerné :

propriétés respectées par toute implantation éventuelle

cette garantie est assurée par les preuves au cours du développement formel

Machines abstraites

Page 18: Exposé langage-b

18 Structure générale d’une machine abstraite :

Page 19: Exposé langage-b

19 l’exemple ci dessous a été inspiré du B-Book , il représente la machine abstraite

personne identifiée par MA-PERSONNE :

MACHINEMA-PERSONNESETS PERSONNES , SEXE={M,F}VARIABLESPersonnes , Sexe ,NomINVARIANTPersonnes PERSONNES /\ ⊆Sexe Personnes → SEXE /\∈Nom Personnes → STRING∈OPERATIONSAjout-personne(p,sexe,nom)Pre p PERSONNES – Personnes /\∈sexe SEXE /\∈nom STRING∈Then Personnes :=Personnes U {p} ||

Sexe(p) := sexe ||Nom(p) := nomEnd ; Supp_personne(p)Pre p Personnes∈Then Personnes := Personnes – {p} ||Sexe :={p} < Sexe ||Nom :={p} < NomendEND

Page 20: Exposé langage-b

20 l’exemple ci dessous représente la machine de la division entière :

Page 21: Exposé langage-b

21Raffinement

Le raffinement est une technique utilisée au cours du processus de développement logiciel pour

transformer un modèle abstrait d'un système logiciel (la spécification) en un modèle plus concret, c'est-à-

dire qui contient plus de détails sur la spécification ou bien qui est plus près d'une implémentation.

Les étapes de raffinement :

1- Décrire (ou réécrire) les variables d’état du modèle raffiné

2- Exprimer l’invariant i.e. propriétés satisfaites par les (nouvelles) variables d’état + l’invariant de

collage à l’initialisation avant et après toute opération manipulant les variables d’état

3- Réécrire (préciser) les opérations avec les (nouvelles) variables Attention, certaines constructions ne

sont pas permises au niveau de la machine et des raffinements

Page 22: Exposé langage-b

22 Raffinement : forme globale

Page 23: Exposé langage-b

23Implantation

Page 24: Exposé langage-b

24 Exemple : Une machine et son raffinement : la machine abstraite

Considérons la machine ENSEMBLE.MACHINE ENSEMBLEVARIABLES contenuINVARIANT contenu FIN(NAT)∈INITIALISATION contenu : FIN(NAT)∈OPERATIONS elt ← choisir = choice elt : NAT or elt : contenu∈ ∈ENDEND

Page 25: Exposé langage-b

25 Une machine et son raffinement : le raffinement

Un raffinement de ENSEMBLE utilisant les séquences est la suivante :REFINEMENT SequenceREFINES ENSEMBLEVARIABLES contenuseqINVARIANT contenuseq seq(NAT) ∈ ∧ contenu = ran(contenuseq)INITIALISATION contenuseq : seq(NAT)∈OPERATIONS elt ← choisir = IF contenuseq = <> THEN elt := 0 ELSE elt := head(contenuseq) ENDEND

Page 26: Exposé langage-b

26Articles autour de la méthode B

Nombreux travaux de recherche ont étés élaboré a propos de la méthode B,

l’un d ’eux l’article intitulé : The B method takes up floating-point numbers .

Cet article montre l’apport de la méthode B dans la correction des nombres à virgule flottante .

Page 27: Exposé langage-b

27

Page 28: Exposé langage-b

28 Un autre article intitulé  Formally Checking Large Data Sets in the Railways qui traite l’expérience

de validation des grandes ensemble de données contre la spécification écrite en B.

Page 29: Exposé langage-b

29 Un autre article intitulé : Spécifications et développements structurés dans la méthode B, qui

décrit les formes de structuration permises par la méthode B, les restrictions nécessaires, et

justifie la correction de l’approche.

Page 30: Exposé langage-b

30Conclusion

La méthode B introduit un langage logique rigoureux pour représenter les programmes

(substitutions généralisées) et les propriétés de ces programmes.

La particularité de B par rapport aux autres méthodes formelles c'est qu' elle couvre tout le cycle

de vie du logiciel à développer dans un cadre formel uniforme.

L'apport de la preuve dans B présente l'avantage que le logiciel produit respecte la spécification

puisque il en découle totalement .

Elle a toutefois l’inconvénient de ne pas fournir de guide de réalisation aussi précis et mûr que

certaines méthodes du marché et c’est dans ce but que les études de cas peuvent être d’un grand

intérêt dans l’utilisation de la méthode.

Page 31: Exposé langage-b

Merci pour votre

attention