SlideShare une entreprise Scribd logo
1  sur  31
La méthode B
HAMMAMI DONIA
LETAIEF ALYA
Plan 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
2
Plan 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
3
Classification 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.
4
Classification 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
5
2- Aspect du système :
 dynamique
 fonctionnel
 statique : B
3- Langage :
 Dédié
 général : B
Historique 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.
6
Pré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.
7
Pré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 ».
8
Objectifs 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
9
Domaines 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.
10
B, 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.
11
B, 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.
12
B, 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.
 …
13
La 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.
14
Les 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.
15
Dé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)
16
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
17
18 Structure générale d’une machine abstraite :
19
 l’exemple ci dessous a été inspiré du B-Book , il représente la machine abstraite
personne identifiée par MA-PERSONNE :
MACHINE
MA-PERSONNE
SETS PERSONNES , SEXE={M,F}
VARIABLES
Personnes , Sexe ,Nom
INVARIANT
Personnes ⊆ PERSONNES /
Sexe ∈ Personnes → SEXE /
Nom ∈ Personnes → STRING
OPERATIONS
Ajout-personne(p,sexe,nom)
Pre p ∈ PERSONNES – Personnes /
sexe ∈ SEXE /
nom ∈ STRING
Then Personnes :=Personnes U {p} ||
Sexe(p) := sexe ||
Nom(p) := nom
End ;
Supp_personne(p)
Pre p ∈ Personnes
Then Personnes := Personnes – {p} ||
Sexe :={p} < Sexe ||
Nom :={p} < Nom
end
END
20
 l’exemple ci dessous représente la machine de la division entière :
Raffinement
 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
21
22
 Raffinement : forme globale
Implantation
23
24 Exemple : Une machine et son raffinement : la machine abstraite
Considérons la machine ENSEMBLE.
MACHINE
ENSEMBLE
VARIABLES
contenu
INVARIANT
contenu ∈ FIN(NAT)
INITIALISATION
contenu :∈ FIN(NAT)
OPERATIONS
elt ← choisir = choice
elt :∈ NAT or elt :∈ contenu
END
END
25
 Une machine et son raffinement : le raffinement
 Un raffinement de ENSEMBLE utilisant les séquences est la suivante :
REFINEMENT
Sequence
REFINES
ENSEMBLE
VARIABLES
contenuseq
INVARIANT
contenuseq ∈ seq(NAT) ∧
contenu = ran(contenuseq)
INITIALISATION
contenuseq :∈ seq(NAT)
OPERATIONS
elt ← choisir =
IF contenuseq = <>
THEN elt := 0
ELSE elt := head(contenuseq)
END
END
Articles autour de la méthode B
26
 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 .
27
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.
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.
Conclusion
30
 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.
Merci pour votre
attention 

Contenu connexe

Tendances

Le passage du diagramme de classe vers le model objet relationnel
Le passage du diagramme de classe vers le model objet relationnelLe passage du diagramme de classe vers le model objet relationnel
Le passage du diagramme de classe vers le model objet relationnelHassen Sic
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabouAchraf Manaa
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
 
Rapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesRapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesHosni Mansour
 
applications-reparties
applications-repartiesapplications-reparties
applications-repartiesmourad50
 
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Ayoub Mkharbach
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleLilia Sfaxi
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursHatim CHAHDI
 
Programmation réseau en JAVA
Programmation réseau en JAVAProgrammation réseau en JAVA
Programmation réseau en JAVABachir Benyammi
 
Projet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoinsProjet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoinsJean-Marc Dupont
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Alexis Seigneurin
 

Tendances (20)

Le passage du diagramme de classe vers le model objet relationnel
Le passage du diagramme de classe vers le model objet relationnelLe passage du diagramme de classe vers le model objet relationnel
Le passage du diagramme de classe vers le model objet relationnel
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Base des données réparties
Base des données répartiesBase des données réparties
Base des données réparties
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabou
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
Rapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humainesRapport projet c : Logiciel de gestion des ressources humaines
Rapport projet c : Logiciel de gestion des ressources humaines
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation Multidimensionnelle
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
Programmation réseau en JAVA
Programmation réseau en JAVAProgrammation réseau en JAVA
Programmation réseau en JAVA
 
Projet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoinsProjet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoins
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 

En vedette

Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étudeDonia Hammami
 
Colloque en SST 2013 - Atelier B - Le Plan d’action jeunesse : rétroactions, ...
Colloque en SST 2013 - Atelier B - Le Plan d’action jeunesse : rétroactions, ...Colloque en SST 2013 - Atelier B - Le Plan d’action jeunesse : rétroactions, ...
Colloque en SST 2013 - Atelier B - Le Plan d’action jeunesse : rétroactions, ...Collecto | Services regroupés en éducation
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentationDonia Hammami
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data miningDonia Hammami
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées servicesDonia Hammami
 
Towards a Pan-African Innovation Ecosystem (PAIES)
Towards a Pan-African Innovation Ecosystem (PAIES)Towards a Pan-African Innovation Ecosystem (PAIES)
Towards a Pan-African Innovation Ecosystem (PAIES)UNESCO Chair on ST&I Policy
 
Balance i simposio internal. narrativas, ago 2011
Balance i simposio internal. narrativas, ago 2011Balance i simposio internal. narrativas, ago 2011
Balance i simposio internal. narrativas, ago 2011Stefany Bedoya
 
Wearable Technologies - Devfest Oran 2015
Wearable Technologies - Devfest Oran 2015Wearable Technologies - Devfest Oran 2015
Wearable Technologies - Devfest Oran 2015Houssem Eddine LASSOUED
 
[PFE] Design and implementation of an AoA, AS and DS estimator on FPGA-based...
[PFE]  Design and implementation of an AoA, AS and DS estimator on FPGA-based...[PFE]  Design and implementation of an AoA, AS and DS estimator on FPGA-based...
[PFE] Design and implementation of an AoA, AS and DS estimator on FPGA-based...Yassine Selmi
 

En vedette (20)

Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
 
Colloque en SST 2013 - Atelier B - Le Plan d’action jeunesse : rétroactions, ...
Colloque en SST 2013 - Atelier B - Le Plan d’action jeunesse : rétroactions, ...Colloque en SST 2013 - Atelier B - Le Plan d’action jeunesse : rétroactions, ...
Colloque en SST 2013 - Atelier B - Le Plan d’action jeunesse : rétroactions, ...
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
 
Atelier B
Atelier BAtelier B
Atelier B
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées services
 
ateliers B (french)
ateliers B (french)ateliers B (french)
ateliers B (french)
 
2 B4 5 18 June 14.00 15.30 Ezzine
2 B4 5 18 June 14.00 15.30 Ezzine2 B4 5 18 June 14.00 15.30 Ezzine
2 B4 5 18 June 14.00 15.30 Ezzine
 
Forum hr03
Forum hr03Forum hr03
Forum hr03
 
Towards a Pan-African Innovation Ecosystem (PAIES)
Towards a Pan-African Innovation Ecosystem (PAIES)Towards a Pan-African Innovation Ecosystem (PAIES)
Towards a Pan-African Innovation Ecosystem (PAIES)
 
Red de lecturas 3
Red de lecturas 3Red de lecturas 3
Red de lecturas 3
 
Our prez
Our prezOur prez
Our prez
 
Candidater : Les ABCs
Candidater : Les ABCsCandidater : Les ABCs
Candidater : Les ABCs
 
Balance i simposio internal. narrativas, ago 2011
Balance i simposio internal. narrativas, ago 2011Balance i simposio internal. narrativas, ago 2011
Balance i simposio internal. narrativas, ago 2011
 
Devis
DevisDevis
Devis
 
Red lecturas 2 -
Red lecturas 2 -Red lecturas 2 -
Red lecturas 2 -
 
Wearable Technologies - Devfest Oran 2015
Wearable Technologies - Devfest Oran 2015Wearable Technologies - Devfest Oran 2015
Wearable Technologies - Devfest Oran 2015
 
[PFE] Design and implementation of an AoA, AS and DS estimator on FPGA-based...
[PFE]  Design and implementation of an AoA, AS and DS estimator on FPGA-based...[PFE]  Design and implementation of an AoA, AS and DS estimator on FPGA-based...
[PFE] Design and implementation of an AoA, AS and DS estimator on FPGA-based...
 
Google Developers Overview Deck 2015
Google Developers Overview Deck 2015Google Developers Overview Deck 2015
Google Developers Overview Deck 2015
 
Atelier Outils de plannings
Atelier Outils de planningsAtelier Outils de plannings
Atelier Outils de plannings
 

Similaire à Exposé langage-b

Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Amina HAMEURLAINE
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxLuneSabsPericolo1
 
Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdfAboubacarDiarra10
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 
Introduction of the most important design pattern
Introduction of the most important design patternIntroduction of the most important design pattern
Introduction of the most important design patternThierry Gayet
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfHailisara
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
Sinitier_a_la_programmation_et_a_loriente_objet__avec_des_exemples_en_C_C_C_J...
Sinitier_a_la_programmation_et_a_loriente_objet__avec_des_exemples_en_C_C_C_J...Sinitier_a_la_programmation_et_a_loriente_objet__avec_des_exemples_en_C_C_C_J...
Sinitier_a_la_programmation_et_a_loriente_objet__avec_des_exemples_en_C_C_C_J...JUSTINDAVONDAMBAT
 

Similaire à Exposé langage-b (20)

Asd
AsdAsd
Asd
 
Ktab asd
Ktab asdKtab asd
Ktab asd
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
compilation1-2020.pdf
compilation1-2020.pdfcompilation1-2020.pdf
compilation1-2020.pdf
 
Lmo02.ppt
Lmo02.pptLmo02.ppt
Lmo02.ppt
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
 
Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdf
 
Projet+com02.ppt
Projet+com02.pptProjet+com02.ppt
Projet+com02.ppt
 
Langage C
Langage CLangage C
Langage C
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
Ch1-Généralités.pdf
Ch1-Généralités.pdfCh1-Généralités.pdf
Ch1-Généralités.pdf
 
Introduction of the most important design pattern
Introduction of the most important design patternIntroduction of the most important design pattern
Introduction of the most important design pattern
 
Langage C++
Langage C++Langage C++
Langage C++
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Sinitier_a_la_programmation_et_a_loriente_objet__avec_des_exemples_en_C_C_C_J...
Sinitier_a_la_programmation_et_a_loriente_objet__avec_des_exemples_en_C_C_C_J...Sinitier_a_la_programmation_et_a_loriente_objet__avec_des_exemples_en_C_C_C_J...
Sinitier_a_la_programmation_et_a_loriente_objet__avec_des_exemples_en_C_C_C_J...
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
C#
C#C#
C#
 

Plus de Donia Hammami

Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiDonia Hammami
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développementDonia Hammami
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFEDonia Hammami
 
initiation SSH_SecuriNets ISI Tunisie
initiation SSH_SecuriNets ISI Tunisieinitiation SSH_SecuriNets ISI Tunisie
initiation SSH_SecuriNets ISI TunisieDonia Hammami
 

Plus de Donia Hammami (7)

Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
iRecruite
iRecruiteiRecruite
iRecruite
 
Sap project
Sap projectSap project
Sap project
 
E-learning
E-learningE-learning
E-learning
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
initiation SSH_SecuriNets ISI Tunisie
initiation SSH_SecuriNets ISI Tunisieinitiation SSH_SecuriNets ISI Tunisie
initiation SSH_SecuriNets ISI Tunisie
 

Dernier

JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 

Dernier (20)

JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 

Exposé langage-b

  • 1. La méthode B HAMMAMI DONIA LETAIEF ALYA
  • 2. Plan 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 2
  • 3. Plan 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 3
  • 4. Classification 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. 4
  • 5. Classification 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 5 2- Aspect du système :  dynamique  fonctionnel  statique : B 3- Langage :  Dédié  général : B
  • 6. Historique 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. 6
  • 7. Pré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. 7
  • 8. Pré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 ». 8
  • 9. Objectifs 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 9
  • 10. Domaines 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. 10
  • 11. B, 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. 11
  • 12. B, 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. 12
  • 13. B, 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.  … 13
  • 14. La 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. 14
  • 15. Les 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. 15
  • 16. Dé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) 16
  • 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 17
  • 18. 18 Structure générale d’une machine abstraite :
  • 19. 19  l’exemple ci dessous a été inspiré du B-Book , il représente la machine abstraite personne identifiée par MA-PERSONNE : MACHINE MA-PERSONNE SETS PERSONNES , SEXE={M,F} VARIABLES Personnes , Sexe ,Nom INVARIANT Personnes ⊆ PERSONNES / Sexe ∈ Personnes → SEXE / Nom ∈ Personnes → STRING OPERATIONS Ajout-personne(p,sexe,nom) Pre p ∈ PERSONNES – Personnes / sexe ∈ SEXE / nom ∈ STRING Then Personnes :=Personnes U {p} || Sexe(p) := sexe || Nom(p) := nom End ; Supp_personne(p) Pre p ∈ Personnes Then Personnes := Personnes – {p} || Sexe :={p} < Sexe || Nom :={p} < Nom end END
  • 20. 20  l’exemple ci dessous représente la machine de la division entière :
  • 21. Raffinement  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 21
  • 22. 22  Raffinement : forme globale
  • 24. 24 Exemple : Une machine et son raffinement : la machine abstraite Considérons la machine ENSEMBLE. MACHINE ENSEMBLE VARIABLES contenu INVARIANT contenu ∈ FIN(NAT) INITIALISATION contenu :∈ FIN(NAT) OPERATIONS elt ← choisir = choice elt :∈ NAT or elt :∈ contenu END END
  • 25. 25  Une machine et son raffinement : le raffinement  Un raffinement de ENSEMBLE utilisant les séquences est la suivante : REFINEMENT Sequence REFINES ENSEMBLE VARIABLES contenuseq INVARIANT contenuseq ∈ seq(NAT) ∧ contenu = ran(contenuseq) INITIALISATION contenuseq :∈ seq(NAT) OPERATIONS elt ← choisir = IF contenuseq = <> THEN elt := 0 ELSE elt := head(contenuseq) END END
  • 26. Articles autour de la méthode B 26  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 .
  • 27. 27
  • 28. 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.
  • 29. 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.
  • 30. Conclusion 30  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.

Notes de l'éditeur

  1. On va commencer cet exposé par la classification ,,,,
  2. On va conclure par : une récapitulation, l’apport de cette méthode et ses inconvénients
  3. Il existe 3 critères de classification, selon le type de raisonnement, l’aspect du système ou selon le langage, Si on se base sur le critère raisonnement on peut dégager 5 modèles ,,,
  4. La méthode B est largement diffusée et reconnue dans le monde industriel et universitaire. Elle permet d'agir dans des secteurs variés, tels que le transport ferroviaire, l'aéronautique, la Défense, ou encore la Recherche et le Développement.
  5. PERSONNES : ensemble abstrait de toutes les personnes possibles. Personnes :variables d’état de l’ensemble des personnes existantes Sexe :fonction totale de Personnes dans STRING. Les opérations sont décrites par une sorte de pseudo code ensembliste mais avec une construction non exécutable tel que → , ⊆, ∈, < , || ; signalons que les opérateurs : || :dénote l’exécution en parallèle de 2 instructions S < F : restriction de F à domaine(F) –S
  6. Pendant longtemps , les méthodes formelles ont ignoré les calculs en virgule flottante .