Académique Documents
Professionnel Documents
Culture Documents
Le système de preuve :
Les règles
– En conception :
Cet algorithme calcule-t-il bien ce que j’ai spécifié ?
– En intégration :
Ce programme réalise-t-il bien le composant initialement
spécifié (notamment en termes de fonctionnalités)
début
c:=0;
répéter
si a mod 2 ≠ 0 alors c := c + b ;
a := a div 2;
b := b x 2;
jusqu’à a =1;
c := c + b;
fin
Quoi :
nom : multiplication russe
données : a,b deux entiers
résultat : c le produit de a par b
Comment :
début
c:=0;
répéter
si a mod 2 ≠ 0 alors c := c + b ;
a := a div 2;
b := b x 2;
jusqu’à a =1;
c:=c+b;
fin
• Informel, Semi-formel…
• L’approche formelle consiste à utiliser un langage
formel syntaxiquement et sémantiquement bien
défini
– par opposition à une spécification en langage naturel
qui peut donner lieu à différentes interprétations
– Par opposition à une spécification semi-formelle (ex.
UML) qui dispose d’une syntaxe précise mais pas d’une
sémantique bien définie
début
c:=0;
répéter
si a mod 2 ≠ 0 alors c := c + b ;
a := a div 2;
b := b x 2;
jusqu’à a =1;
c:=c+b;
fin
Méthodes Formelles - O.Belkahla Driss 15
L’approche formelle
Codification :
– Preuves de programmes
– Synthèse automatique du code
– Utilisation d’assertions
Tests
Méthodes Formelles - O.Belkahla Driss 17
– Génération automatique des tests
Comment appliquer les MF ?
2.Le vol 501 d’Ariane 5 : Un bug informatique n’a jamais été décelé sur
ce satellite, jusqu’à ce qu’il soit envoyé dans l’espace. Précisément 36,7
secondes après son déploiement, une boule de feu a embrasé le ciel. La
perte estimée s’élève à 8,5 MILLIARDS de dollars. Tout un bug
http://esamultimedia.esa.int/docs/esa-x-1819eng.pdf
Source : http://www.topito.com/top-10-des-erreurs-de-programmations-les-plus-
couteuses-de-lhistoire
2. un système de preuve
le test
la démonstration automatique (Theorem Proving)
la vérification sur modèle (Model Checking)
Choix de
conception