SlideShare a Scribd company logo
1 of 23
Download to read offline
Université Ibn Khaldoun - Tiaret
Faculté des Mathématique et d’Informatique
Département d’Informatique
2015/2016
Le événementiel
Réalisé par:
• Aissaoui Fatma
• Bouabdelli Halima
Module:
Enseignant responsable:
Mr B.Boudaa
Spécification & Conception Logicielles
Plan du Travail
Introduction
♦ Définition de la méthode Event-B
♦ Logique et théorie des ensembles
♦ Le modèle Event-B
♦ Raffinement & Obligation des preuves
♦ La plateforme Rodin
♦ Le plug-in ProB
♦ Exemple
Conclusion
♦ Références
Introduction
1
• Les logiciels et systèmes informatique deviennent de plus en plus complexes.
Ceci les rend très sensibles aux erreurs produites durant le cycle de vie d’un
système. En effet, ces erreurs logicielles peuvent être introduites durant les
phases initiales (spécification) et la conception.
Le génie logiciel offre des méthodes formelles, techniques et outils permettant
d’éviter et combattre les erreurs très tôt dès les phases initiales parmi ces
méthodes le B événementiel (Event-B).
Le B événementiel / Par: Aissaoui & Bouabdelli
Définition de la méthode Event-B
♦ Cette méthode à été défini par Jean-Raymond Abrial l’inventeur de la
méthode B.
♦ Est une extension de la méthode B qui permet la spécification des systèmes réactifs,
des algorithmes séquentiels, concurrents et distribués.
♦ Le Event-B est basé sur le langage Logico-ensembliste, elle utilise des approches
mathématiques basées sur la théorie des ensembles et la logique des prédicats.
2
Le B événementiel / Par: Aissaoui & Bouabdelli
Logique et théorie des ensembles
♦ Le langage Logico-ensembliste est basé sur la logique classique du premier
ordre et la théorie des ensembles.
3
♦ Il supporte les concepts mathématiques couple, relation et fonction comme:
Domaine (dom), relation réciproque (r-1), …..
♦ Il supporte les notations ensemblistes usuelles comme : l’union, ensemble
vide, inclusion intersection …
♦ Les symboles utilisé pour exprimer des prédicats logiques sont : T Vrai,
⊥ Faux, P∧Q Conjonction ….
Le B événementiel / Par: Aissaoui & Bouabdelli
Prédicats Logiques
4
Le B événementiel / Par: Aissaoui & Bouabdelli
Tableau: Prédicats logiques
Le Modèle Event-B
♦ Le Modèle Event-B: Est le premier concept d’Event-B, car il décrit un
système par un ensemble d’états, un ensemble d’action, un état initiale et une
relation de transition.
1- Un contexte Event-B :
Comporte les paramètres du système à modéliser. Il se compose d’ensembles,
de constantes avec leurs axiomes et éventuellement des théorèmes.
♦ Il est composé d’un ensemble de machines et contextes.
5
Le B événementiel / Par: Aissaoui & Bouabdelli
♦ La structure d’un contexte est comme suite :
6
• Sets:
regroupe la liste des
ensembles qui ne sont pas
vides .
Le Modèle Event-B
2- Une machine Event-B: Contient deux parties :Statique et dynamique.
• La partie statique: Comporte les variables modélisant l’état du système.
Ces variables sont typées et peuvent avoir des propriétés invariantes décrites
par des prédicats logiques.
• La partie dynamique: Comporte des évènement permettant d’agir sur
l’état du système.
♦ Une machine Event-B peut comporter des théorèmes qui devraient être
prouvés.
♦ On distingue deux types de machines : machine abstraite introduite dans le
modèle le plus abstrait et machine de raffinement (ou raffinée).
7
Le B événementiel / Par: Aissaoui & Bouabdelli
♦ La structure d’une machine est comme suit:
8
•Invariant:
sert à décrire les
contraintes sous forme
de prédicats .
• Variant:
c’est une clause qui
apparait dans une
machine raffinée et qui
contient des événements.
♦ Evénement: Il modélise une transition discrète et peut être défini par
une relation « avant-après » notée BA (x, x’)
• La forme générale d’un événement est représentée par la figure suivante :
9
• Status:
décrit l’état d’un
événement .
Raffinement & Obligation des preuves
♦ Le raffinement:
Est le processus de construction d’un modèle progressivement correct. Consiste
à construire une séquence ordonnée de modèles ou chacun est considéré
comme un raffinement d’un autre modèle précédent de la séquence.
♦ Obligation des preuves:
•Définit ce que doit être prouvé pour un modèle.
•Il s’agit d’un prédicat dont on doit fournir une démonstration pour
vérifier un critère de correction sur le modèle, afin de garantir cette
correction un outil de plateforme RODIN appelée générateur d’obligation
de preuve qui génère automatiquement ces obligations.
10
Le B événementiel / Par: Aissaoui & Bouabdelli
La Plateforme RODIN
♦ La plate-forme RODIN: est l’outil dédié au développement en B événementiel,
supportant de façon robuste le raffinement de modèles et la preuve mathématique.
Elle a été créée à Zürich lors du projet européen (FP7) éponyme entre 2004 et 2007.
Il s’agit d’une plate-forme Open Source basée sur l’IDE Eclipse.
11
Le B événementiel / Par: Aissaoui & Bouabdelli
 Installation:
Télécharger le fichier compressé Plate-forme Rodin à partir du site d’Event-B:
http://www.eventb.org/install.html
• Pour installer, il suffit de décompresser l'archive sur votre disque dur et lancez
"Rodin" exécutable .
Figure: La page web d’installation de la plateforme RODIN
12
Figure : Rodin GUI
♦ l’interface graphique de la plateforme RODIN:
13
Le Plug-in ProB
L’outil ProB: Un outil d’animation pour Event-B. L’animation est très
importante et permet de déceler une série de problèmes, comme par
exemple, les interblocages (deadlocks) ou d’autres comportements inattendus
d’un modèle. Ce plug-in est basé sur une traduction d’Event-B vers B classique.
14
Le B événementiel / Par: Aissaoui & Bouabdelli
15
♦ Nous lançons ProB par un clic droit sur la machine qu’on veut l’animer et sélectionnez
Start Animation / Model Checking. Rodin passera au PROB-perspective, comme
le montre la figure:
Figure : La perspective ProB
le principe de cet exemple:
• Les signaux sont modélisés par des variables booléennes une pour les piétons et une
pour les voitures, la valeur FALSE indique l’obligation de s’arrêter et la valeur TRUE
autorise la circulation. La circulation simultanée des piétons et des voitures est
interdite (exigence).
16
• ensuite on va voir le raffinement qui relie deux machines : une machine
abstraite (à raffiner) et une machine concrète (résultat du raffinement) est
réalisée en raffinant les variables ainsi que les événements de la machine
abstraite.
• Figure: La correspondance entre les événements abstraits et concrets
17
Conclusion
18
♦ Dans cette partie, nous avons présenté d’une façon rigoureuse les
concepts de base de la méthode formelle Event-B. Une telle méthode permet
le développement pas-à-pas des logiciels corrects par construction en se
servant de la technique de raffinement.
Références
19
• www.loria.fr/~mery/malg/partie-move.pdf
• http://handbook.event-b.org/current/pdf/rodin-doc.pdf
• https://pdfs.semanticscholar.org/1e28/
02337f7c04dd92e760de7da916e7fec2dc7c.pdf
• http://www.systerel.fr/expertises/methodes-formelles/plate-forme-rodin/
• http://thesesups.ups-tlse.fr/2841/1/2015TOU30105.pdf
• Abrial J-R., Modeling in Event-B: System and Software Engineering, Cambridge
University Press, 2010.
• Abrial J-R., The B book - Assigning Programs to Meanings, Cambridge University
Press,1996.
• Chill R., Logique et théorie des ensembles, Laboratoire de Mathématiques et
Applications de Metz, Université de Metz, 2007/08.
Références
20
• Introduction to Event-B:
http://www.csse.monash.edu.au/~ajh/teaching/fit3013/2010/lectures/01-
Introduction/01-Introduction-slides.pdf
• Summary of Event-B Proof Obligations :
http://www.computing.dcu.ie/~hamilton/teaching/CA648/sld_po.pdf
• Summary of the Event-B Modeling Notation:
http://www.cse.unsw.edu.au/~cs2111/PDF/sld_evtb.pdf
• Troudi I., Développement formel des algorithmes séquentiels en Event-B,
Master,FSEGS, 2011.
• Wirth N., Program Development by Stepwise Refinement, P. Wegner Editor,
Volume 14 Number 4, 221-227, ETH Zurich, April 1971.

More Related Content

What's hot

Bases de données réparties
Bases de données répartiesBases de données réparties
Bases de données répartiesAbdelouahed Abdou
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du meriseYassine Badri
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Ramzi Noumairi
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Ahmed Makni
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
cahier des charges
cahier des chargescahier des charges
cahier des chargesamine niba
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéeMissaoui Abdelbaki
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationMohamed Amine Mahmoudi
 
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...Ramzi Noumairi
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique ayoub daoudi
 

What's hot (20)

Bases de données réparties
Bases de données répartiesBases de données réparties
Bases de données réparties
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
 
Data mining - Associativité
Data mining - AssociativitéData mining - Associativité
Data mining - Associativité
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
cahier des charges
cahier des chargescahier des charges
cahier des charges
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Présentation cloud computing
Présentation cloud computingPrésentation cloud computing
Présentation cloud computing
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
 
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique
 

Similar to Event B ( B événementiel )

XebiCon'17 : Déploiement continu de modèle de Machine Learning - Loïc Divad
XebiCon'17 : Déploiement continu de modèle de Machine Learning - Loïc DivadXebiCon'17 : Déploiement continu de modèle de Machine Learning - Loïc Divad
XebiCon'17 : Déploiement continu de modèle de Machine Learning - Loïc DivadPublicis Sapient Engineering
 
B5282 g formation-ibm-cognos-transformer-concevoir-des-modeles-olap
B5282 g formation-ibm-cognos-transformer-concevoir-des-modeles-olapB5282 g formation-ibm-cognos-transformer-concevoir-des-modeles-olap
B5282 g formation-ibm-cognos-transformer-concevoir-des-modeles-olapCERTyou Formation
 
Comptabilite analytique d-exploitation_ter_tsge
Comptabilite analytique d-exploitation_ter_tsgeComptabilite analytique d-exploitation_ter_tsge
Comptabilite analytique d-exploitation_ter_tsgesa7ir
 
Apprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerApprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerMajdi Hannachi
 
Suivi de qualité PIC afup2010
Suivi de qualité PIC afup2010Suivi de qualité PIC afup2010
Suivi de qualité PIC afup2010Gabriele Santini
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Nazih Heni
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Saâd Zerhouni
 
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.jkebbab
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business IntelligenceWalid Chamour
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logicielUSTHB & DELTALOG
 
Contrôle par exception & analyse des écarts.
Contrôle par exception & analyse des écarts.Contrôle par exception & analyse des écarts.
Contrôle par exception & analyse des écarts.Youssef Belaïd
 
180927 opeo @ carrefours excellence (2)
180927   opeo @ carrefours excellence (2)180927   opeo @ carrefours excellence (2)
180927 opeo @ carrefours excellence (2)Renan Devillieres
 
Modèle en v
 Modèle en v Modèle en v
Modèle en vbouye2209
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
cours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdfcours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdfssuser192642
 
Dossier de plan_de_tests_v1.00
Dossier de plan_de_tests_v1.00Dossier de plan_de_tests_v1.00
Dossier de plan_de_tests_v1.00Arnold Stellio
 
Talk Session COSMAL du GDR GPL 2011
Talk Session COSMAL du GDR GPL 2011Talk Session COSMAL du GDR GPL 2011
Talk Session COSMAL du GDR GPL 2011Sébastien Mosser
 
Rapport genie logiciel
Rapport genie logicielRapport genie logiciel
Rapport genie logicielserge sonfack
 

Similar to Event B ( B événementiel ) (20)

XebiCon'17 : Déploiement continu de modèle de Machine Learning - Loïc Divad
XebiCon'17 : Déploiement continu de modèle de Machine Learning - Loïc DivadXebiCon'17 : Déploiement continu de modèle de Machine Learning - Loïc Divad
XebiCon'17 : Déploiement continu de modèle de Machine Learning - Loïc Divad
 
B5282 g formation-ibm-cognos-transformer-concevoir-des-modeles-olap
B5282 g formation-ibm-cognos-transformer-concevoir-des-modeles-olapB5282 g formation-ibm-cognos-transformer-concevoir-des-modeles-olap
B5282 g formation-ibm-cognos-transformer-concevoir-des-modeles-olap
 
Comptabilite analytique d-exploitation_ter_tsge
Comptabilite analytique d-exploitation_ter_tsgeComptabilite analytique d-exploitation_ter_tsge
Comptabilite analytique d-exploitation_ter_tsge
 
Apprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMinerApprentissage automatique avec RapidMiner
Apprentissage automatique avec RapidMiner
 
Suivi de qualité PIC afup2010
Suivi de qualité PIC afup2010Suivi de qualité PIC afup2010
Suivi de qualité PIC afup2010
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"
 
Gpn.pptx
Gpn.pptxGpn.pptx
Gpn.pptx
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C#
 
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 
Contrôle par exception & analyse des écarts.
Contrôle par exception & analyse des écarts.Contrôle par exception & analyse des écarts.
Contrôle par exception & analyse des écarts.
 
180927 opeo @ carrefours excellence (2)
180927   opeo @ carrefours excellence (2)180927   opeo @ carrefours excellence (2)
180927 opeo @ carrefours excellence (2)
 
CV_Bilel CHAOUADI
CV_Bilel CHAOUADICV_Bilel CHAOUADI
CV_Bilel CHAOUADI
 
Modèle en v
 Modèle en v Modèle en v
Modèle en v
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
cours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdfcours-gratuit.com--id-12477.pdf
cours-gratuit.com--id-12477.pdf
 
Dossier de plan_de_tests_v1.00
Dossier de plan_de_tests_v1.00Dossier de plan_de_tests_v1.00
Dossier de plan_de_tests_v1.00
 
Talk Session COSMAL du GDR GPL 2011
Talk Session COSMAL du GDR GPL 2011Talk Session COSMAL du GDR GPL 2011
Talk Session COSMAL du GDR GPL 2011
 
Rapport genie logiciel
Rapport genie logicielRapport genie logiciel
Rapport genie logiciel
 

Event B ( B événementiel )

  • 1. Université Ibn Khaldoun - Tiaret Faculté des Mathématique et d’Informatique Département d’Informatique 2015/2016 Le événementiel Réalisé par: • Aissaoui Fatma • Bouabdelli Halima Module: Enseignant responsable: Mr B.Boudaa Spécification & Conception Logicielles
  • 2. Plan du Travail Introduction ♦ Définition de la méthode Event-B ♦ Logique et théorie des ensembles ♦ Le modèle Event-B ♦ Raffinement & Obligation des preuves ♦ La plateforme Rodin ♦ Le plug-in ProB ♦ Exemple Conclusion ♦ Références
  • 3. Introduction 1 • Les logiciels et systèmes informatique deviennent de plus en plus complexes. Ceci les rend très sensibles aux erreurs produites durant le cycle de vie d’un système. En effet, ces erreurs logicielles peuvent être introduites durant les phases initiales (spécification) et la conception. Le génie logiciel offre des méthodes formelles, techniques et outils permettant d’éviter et combattre les erreurs très tôt dès les phases initiales parmi ces méthodes le B événementiel (Event-B). Le B événementiel / Par: Aissaoui & Bouabdelli
  • 4. Définition de la méthode Event-B ♦ Cette méthode à été défini par Jean-Raymond Abrial l’inventeur de la méthode B. ♦ Est une extension de la méthode B qui permet la spécification des systèmes réactifs, des algorithmes séquentiels, concurrents et distribués. ♦ Le Event-B est basé sur le langage Logico-ensembliste, elle utilise des approches mathématiques basées sur la théorie des ensembles et la logique des prédicats. 2 Le B événementiel / Par: Aissaoui & Bouabdelli
  • 5. Logique et théorie des ensembles ♦ Le langage Logico-ensembliste est basé sur la logique classique du premier ordre et la théorie des ensembles. 3 ♦ Il supporte les concepts mathématiques couple, relation et fonction comme: Domaine (dom), relation réciproque (r-1), ….. ♦ Il supporte les notations ensemblistes usuelles comme : l’union, ensemble vide, inclusion intersection … ♦ Les symboles utilisé pour exprimer des prédicats logiques sont : T Vrai, ⊥ Faux, P∧Q Conjonction …. Le B événementiel / Par: Aissaoui & Bouabdelli
  • 6. Prédicats Logiques 4 Le B événementiel / Par: Aissaoui & Bouabdelli Tableau: Prédicats logiques
  • 7. Le Modèle Event-B ♦ Le Modèle Event-B: Est le premier concept d’Event-B, car il décrit un système par un ensemble d’états, un ensemble d’action, un état initiale et une relation de transition. 1- Un contexte Event-B : Comporte les paramètres du système à modéliser. Il se compose d’ensembles, de constantes avec leurs axiomes et éventuellement des théorèmes. ♦ Il est composé d’un ensemble de machines et contextes. 5 Le B événementiel / Par: Aissaoui & Bouabdelli
  • 8. ♦ La structure d’un contexte est comme suite : 6 • Sets: regroupe la liste des ensembles qui ne sont pas vides .
  • 9. Le Modèle Event-B 2- Une machine Event-B: Contient deux parties :Statique et dynamique. • La partie statique: Comporte les variables modélisant l’état du système. Ces variables sont typées et peuvent avoir des propriétés invariantes décrites par des prédicats logiques. • La partie dynamique: Comporte des évènement permettant d’agir sur l’état du système. ♦ Une machine Event-B peut comporter des théorèmes qui devraient être prouvés. ♦ On distingue deux types de machines : machine abstraite introduite dans le modèle le plus abstrait et machine de raffinement (ou raffinée). 7 Le B événementiel / Par: Aissaoui & Bouabdelli
  • 10. ♦ La structure d’une machine est comme suit: 8 •Invariant: sert à décrire les contraintes sous forme de prédicats . • Variant: c’est une clause qui apparait dans une machine raffinée et qui contient des événements.
  • 11. ♦ Evénement: Il modélise une transition discrète et peut être défini par une relation « avant-après » notée BA (x, x’) • La forme générale d’un événement est représentée par la figure suivante : 9 • Status: décrit l’état d’un événement .
  • 12. Raffinement & Obligation des preuves ♦ Le raffinement: Est le processus de construction d’un modèle progressivement correct. Consiste à construire une séquence ordonnée de modèles ou chacun est considéré comme un raffinement d’un autre modèle précédent de la séquence. ♦ Obligation des preuves: •Définit ce que doit être prouvé pour un modèle. •Il s’agit d’un prédicat dont on doit fournir une démonstration pour vérifier un critère de correction sur le modèle, afin de garantir cette correction un outil de plateforme RODIN appelée générateur d’obligation de preuve qui génère automatiquement ces obligations. 10 Le B événementiel / Par: Aissaoui & Bouabdelli
  • 13. La Plateforme RODIN ♦ La plate-forme RODIN: est l’outil dédié au développement en B événementiel, supportant de façon robuste le raffinement de modèles et la preuve mathématique. Elle a été créée à Zürich lors du projet européen (FP7) éponyme entre 2004 et 2007. Il s’agit d’une plate-forme Open Source basée sur l’IDE Eclipse. 11 Le B événementiel / Par: Aissaoui & Bouabdelli  Installation: Télécharger le fichier compressé Plate-forme Rodin à partir du site d’Event-B: http://www.eventb.org/install.html • Pour installer, il suffit de décompresser l'archive sur votre disque dur et lancez "Rodin" exécutable .
  • 14. Figure: La page web d’installation de la plateforme RODIN 12
  • 15. Figure : Rodin GUI ♦ l’interface graphique de la plateforme RODIN: 13
  • 16. Le Plug-in ProB L’outil ProB: Un outil d’animation pour Event-B. L’animation est très importante et permet de déceler une série de problèmes, comme par exemple, les interblocages (deadlocks) ou d’autres comportements inattendus d’un modèle. Ce plug-in est basé sur une traduction d’Event-B vers B classique. 14 Le B événementiel / Par: Aissaoui & Bouabdelli
  • 17. 15 ♦ Nous lançons ProB par un clic droit sur la machine qu’on veut l’animer et sélectionnez Start Animation / Model Checking. Rodin passera au PROB-perspective, comme le montre la figure: Figure : La perspective ProB
  • 18.
  • 19. le principe de cet exemple: • Les signaux sont modélisés par des variables booléennes une pour les piétons et une pour les voitures, la valeur FALSE indique l’obligation de s’arrêter et la valeur TRUE autorise la circulation. La circulation simultanée des piétons et des voitures est interdite (exigence). 16
  • 20. • ensuite on va voir le raffinement qui relie deux machines : une machine abstraite (à raffiner) et une machine concrète (résultat du raffinement) est réalisée en raffinant les variables ainsi que les événements de la machine abstraite. • Figure: La correspondance entre les événements abstraits et concrets 17
  • 21. Conclusion 18 ♦ Dans cette partie, nous avons présenté d’une façon rigoureuse les concepts de base de la méthode formelle Event-B. Une telle méthode permet le développement pas-à-pas des logiciels corrects par construction en se servant de la technique de raffinement.
  • 22. Références 19 • www.loria.fr/~mery/malg/partie-move.pdf • http://handbook.event-b.org/current/pdf/rodin-doc.pdf • https://pdfs.semanticscholar.org/1e28/ 02337f7c04dd92e760de7da916e7fec2dc7c.pdf • http://www.systerel.fr/expertises/methodes-formelles/plate-forme-rodin/ • http://thesesups.ups-tlse.fr/2841/1/2015TOU30105.pdf • Abrial J-R., Modeling in Event-B: System and Software Engineering, Cambridge University Press, 2010. • Abrial J-R., The B book - Assigning Programs to Meanings, Cambridge University Press,1996. • Chill R., Logique et théorie des ensembles, Laboratoire de Mathématiques et Applications de Metz, Université de Metz, 2007/08.
  • 23. Références 20 • Introduction to Event-B: http://www.csse.monash.edu.au/~ajh/teaching/fit3013/2010/lectures/01- Introduction/01-Introduction-slides.pdf • Summary of Event-B Proof Obligations : http://www.computing.dcu.ie/~hamilton/teaching/CA648/sld_po.pdf • Summary of the Event-B Modeling Notation: http://www.cse.unsw.edu.au/~cs2111/PDF/sld_evtb.pdf • Troudi I., Développement formel des algorithmes séquentiels en Event-B, Master,FSEGS, 2011. • Wirth N., Program Development by Stepwise Refinement, P. Wegner Editor, Volume 14 Number 4, 221-227, ETH Zurich, April 1971.