Code : 3IF2250, 21 HPE
PDF de la présentation aux élèves du 7 novembre 2022
Contact
Idir AIT SADOUNE idir.aitsadoune@centralesupelec.fr
Prérequis
FR
Cursus commun en informatique
EN
Computer Science Shared curriculum
Présentation générale
FR
Ce cours présente la méthode B : les concepts de base allant des structures les plus élémentaires comme la machine B à la preuve en utilisant le prouveur interactif de l'Atelier-B. Les étudiants appliqueront un processus de développement de logiciels critiques en partant de la spécification jusqu'au code source en utilisant l'approche de développement formelle B.
EN
This course introduces the B-method: the basic concepts ranging from the most basic structures like the B machine to proofs using the Atelier-B interactive prover. Students will apply a critical software development process from specification to source code using the formal B development approach.
Acquis d’apprentissage visés dans le cours
FR
À l'issu de ce cours, les étudiants seront capables de :
- modéliser avec la méthode B.
- manipuler les notions de Machine abstraite et de raffinement.
- établir la preuve de consistence d'un modèle B et de son raffinement (avec le prouveur de l'Atelier B).
- animer un modèle B (avec le model-checker Pro-B).
- générer un code vérifié à partir d'un modèle B
- développer des logiciels critiques
EN
At the end of the course, students will be able to :
- model with the B-method.
- manipulate the notions of abstract machine and refinement.
- establish the proof of consistency of a B model and its refinement (with the prover of Atelier B).
- animate a B model (with the Pro-B model-checker).
- generate verified code from a B model
- develop critical software
Moyens
FR
Les pratiques utilisés dans ce cours combinent cours magistraux et TD favorisant une pratique concrète sur les outils existants autour de la méthode B.
EN
The practices used in this course combine lectures and tutorials favouring a concrete practice on the existing tools around the B method.
Description des compétences acquises à l'issue du cours
FR
- C1.4 Spécifier, concevoir, réaliser et valider tout ou partie d'un système complexe
- C2.1 Avoir approfondi un domaine ou une discipline relatifs aux sciences fondamentales ou aux sciences de l'ingénieur.
- C6.4 Résoudre des problèmes dans une démarche de pensée computationnelle
EN
- C1.4 Design, detail and corroborate a whole or part of a complex system.
- C2.1 Thoroughly master a domain or discipline based on the fundamental sciences or the engineering sciences.
- C6.4 Solve problems through mastery of computational thinking skills.
Contenu
FR
- C1-C2 (CM-TD) : Le langage B
- La théorie des ensembles
- La logique du 1e ordre et la Logique de Hoare.
- Les substitutions généralisées et le calcul de la plus faible pré-condition de Dijkstra
- C3-C4 (CM-TD) : Le modèle B
- La modélisation d'un système en utilisant la méthode B classique
- Le raffinement d'un système en B
- C5-C6 (CM-TD) : La preuve en B
- Les obligations de preuve d'un modèle B
- La preuve interactive avec l'atelier B
- C7-C8 (CM-TD) : Le modèle checking en B
- C9-C10 (CM-TD) : L'implémentation d'un modèle B
- Génération de code par raffinement
- C11-C14 (TP) : TP sur machine
EN
- C1-C2 (CM-TD): The B Language
- Set theory
- The 1st Order logic and the Hoare Logic.
- Generalized substitutions and the Dijkstra weakest precondition.
- C3-C4 (CM-TD): The B Model
- Modelling a system using the classical B-method
- The refinement of a B system
- C5-C6 (CM-TD): The proof in B method
- The proof obligations of a B Model
- Interactive proof with Atelier-B
- C7-C8 (CM-TD): The checking model in B method
- C9-C10 (CM-TD): The implementation of a B model
- Code generation by refinement
- C11-C14 (TP) : lab session on machine
Méthodes pédagogiques
FR
- Cours magistraux pour présenter les concepts
- TD/TP pour mettre en œuvre les concepts
EN
- Lectures to introduce the concepts
- lab sessions to implement the concepts
Méthodes d'évaluation
FR
L'évaluation consiste en un TP noté.
EN
The grading of the course is based on a graded project.
Bibliographie / supports
- Jean-Raymond Abrial, The B-Book, Cambridge University Press, 1996
- [[ https://www.clearsy.com/wp-content/uploads/sites/3/ressources/manrefb1.8.6.uk.pdf | B LANGUAGE
REFERENCE MANUAL ]]