0% ont trouvé ce document utile (0 vote)
52 vues46 pages

Introduction

Le document traite de l'importance des méthodes formelles pour la vérification des systèmes informatiques, en illustrant par des exemples historiques de défaillances majeures dues à des erreurs de programmation. Il présente les principes et avantages des méthodes formelles, telles que la spécification et la vérification mathématique, pour améliorer la fiabilité des logiciels. Enfin, il aborde les étapes d'application de ces méthodes et les critères de choix des outils appropriés.

Transféré par

cbennouri70
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
52 vues46 pages

Introduction

Le document traite de l'importance des méthodes formelles pour la vérification des systèmes informatiques, en illustrant par des exemples historiques de défaillances majeures dues à des erreurs de programmation. Il présente les principes et avantages des méthodes formelles, telles que la spécification et la vérification mathématique, pour améliorer la fiabilité des logiciels. Enfin, il aborde les étapes d'application de ces méthodes et les critères de choix des outils appropriés.

Transféré par

cbennouri70
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Motivation

Méthodes Formelles : Principes


Méthodes Formelles : Exemples
Conclusion

Introduction: Pourquoi formaliser ?

Imene Ben Hafaiedh Marzouk

Spécialité: GLSI

1 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

PLAN

1 Motivation

2 Méthodes Formelles : Principes

3 Méthodes Formelles : Exemples

4 Conclusion

2 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 1 : Intel Pentium FDIV bug

Bug dans l’unité de division du point-flottant du l’Intel


Pentium II découvert au début des années 90.
Quelques opérations produisent des résultats faux.

3 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 1 : Intel Pentium FDIV bug

Bug dans l’unité de division du point-flottant du l’Intel


Pentium II découvert au début des années 90.
Quelques opérations produisent des résultats faux.

Intel a proposé de remplacer les processeurs défectueux

3 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 1 : Intel Pentium FDIV bug

Bug dans l’unité de division du point-flottant du l’Intel


Pentium II découvert au début des années 90.
Quelques opérations produisent des résultats faux.

Intel a proposé de remplacer les processeurs défectueux


Cout des pertes estimé à 475 million de dollars

3 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 1 : Intel Pentium FDIV bug

Bug dans l’unité de division du point-flottant du l’Intel


Pentium II découvert au début des années 90.
Quelques opérations produisent des résultats faux.

Intel a proposé de remplacer les processeurs défectueux


Cout des pertes estimé à 475 million de dollars
Des Graves conséquences à la réputation d’Intel ! !
3 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 2 : Ariane 5

ESA (European Space Agency) Ariane 5 launcher


L’unique vol du 4 Juin 1996.
37 secondes plus tard auto-destruction
Exception non-interseptée : numerical overflow

4 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 2 : Ariane 5

ESA (European Space Agency) Ariane 5 launcher


L’unique vol du 4 Juin 1996.
37 secondes plus tard auto-destruction
Exception non-interseptée : numerical overflow

Couteux ! et surtout embarrassant ! ! !


4 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 3 : Service d’ambulance de Londres

Système pour dispatcher les ambulances Introduit en 1992.


Zone 600 miles 2 , Population 6.8 million, 5000 patients par
jour, 2000-2500 appel par jour,

5 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 3 : Service d’ambulance de Londres

Système pour dispatcher les ambulances Introduit en 1992.


Zone 600 miles 2 , Population 6.8 million, 5000 patients par
jour, 2000-2500 appel par jour,

Position des véhicules mal enregistrée

5 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 3 : Service d’ambulance de Londres

Système pour dispatcher les ambulances Introduit en 1992.


Zone 600 miles 2 , Population 6.8 million, 5000 patients par
jour, 2000-2500 appel par jour,

Position des véhicules mal enregistrée


Plusieurs véhicules envoyées à la même destination

5 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 3 : Service d’ambulance de Londres

Système pour dispatcher les ambulances Introduit en 1992.


Zone 600 miles 2 , Population 6.8 million, 5000 patients par
jour, 2000-2500 appel par jour,

Position des véhicules mal enregistrée


Plusieurs véhicules envoyées à la même destination
20-30 estimés morts à cause de ces erreurs ! ! !
5 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 4 : Toyota Prius

Première véhicule hybride produite en masse.


un "glitch" (comportement non-anticipé) trouvé dans le
système antiblocage de freinage.
Plusieurs incidents et plaintes

6 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 4 : Toyota Prius

Première véhicule hybride produite en masse.


un "glitch" (comportement non-anticipé) trouvé dans le
système antiblocage de freinage.
Plusieurs incidents et plaintes

Un Total 185,000 voitures retirées

6 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Histoire 4 : Toyota Prius

Première véhicule hybride produite en masse.


un "glitch" (comportement non-anticipé) trouvé dans le
système antiblocage de freinage.
Plusieurs incidents et plaintes

Un Total 185,000 voitures retirées


Très mauvaise publicité ! ! !
6 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Qu’est ce que ces histoires ont en commun ? ? ?

7 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Qu’est ce que ces histoires ont en commun ? ? ?

Systèmes informatiques programmables


Des systèmes et des réseaux +ou- conventionnels
Des logiciels embarqués sur des appareils

7 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Qu’est ce que ces histoires ont en commun ? ? ?

Systèmes informatiques programmables


Des systèmes et des réseaux +ou- conventionnels
Des logiciels embarqués sur des appareils
Les erreurs de programmation sont une cause directe de l’échec
Les logiciels sont critiques pour la sécurité, le business et la
réputation des entreprises

7 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Qu’est ce que ces histoires ont en commun ? ? ?

Systèmes informatiques programmables


Des systèmes et des réseaux +ou- conventionnels
Des logiciels embarqués sur des appareils
Les erreurs de programmation sont une cause directe de l’échec
Les logiciels sont critiques pour la sécurité, le business et la
réputation des entreprises

Ces erreurs peuvent bien être évités ! ! !


7 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

On a besoin de Vérifier nos systèmes !

"Testing can only show the presence of errors, not their absence." –
Edsger Dijkstra (1920-2002)

8 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

On a besoin de Vérifier nos systèmes !

"Testing can only show the presence of errors, not their absence." –
Edsger Dijkstra (1920-2002)

Pour détecter les erreurs on doit considérer toutes les exécutions


possibles de notre système même celles impossibles
mécaniquement.

8 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Lois de Murphy relatives aux systèmes :


1 If something can go wrong, it will go wrong.
2 Damage to an object is proportional to its value.
3 Any software bug will tend to maximize the damage.
4 If a system is designed to be tolerant to a set of faults, there
will always exist an idiot so skilled to cause a nontolerated
fault.
=⇒ Dummies are always more skilled than measures taken to
keep them from harm.
5 If a system stops working, it will do it at the worst possible
time.
6 Sooner or later, the worst possible combination of
circumstances will happen.
=⇒ A system must always be designed to resist the worst
possible combination of circumstances.
9 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Besoin de Vérifier = Méthodes formelles ?

Principe des méthodes formelles :

10 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Besoin de Vérifier = Méthodes formelles ?

Principe des méthodes formelles :

Utiliser les mathématiques pour concevoir et si possible


réaliser des systèmes informatiques

10 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Besoin de Vérifier = Méthodes formelles ?

Principe des méthodes formelles :

Utiliser les mathématiques pour concevoir et si possible


réaliser des systèmes informatiques
Spécification formelle / Vérification formelle / Synthèse
formelle

10 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Besoin de Vérifier = Méthodes formelles ?

Principe des méthodes formelles :

Utiliser les mathématiques pour concevoir et si possible


réaliser des systèmes informatiques
Spécification formelle / Vérification formelle / Synthèse
formelle
Avantage : non ambigüité des mathématiques !

Objectif global : améliorer la confiance !


10 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Approche générale

En plusieurs étapes
1 Spécifier le logiciel en utilisant les mathématiques
2 Vérifier certaines propriétés sur cette spécification
3 Corriger la spécification si besoin
4 (parfois) Raffiner ou dériver de la spécification un logiciel
concret
5 (ou parfois) Faire un lien entre la spécification et (une partie)
d’un logiciel concret

11 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Approche générale

En plusieurs étapes
1 Spécifier le logiciel en utilisant les mathématiques
2 Vérifier certaines propriétés sur cette spécification
3 Corriger la spécification si besoin
4 (parfois) Raffiner ou dériver de la spécification un logiciel
concret
5 (ou parfois) Faire un lien entre la spécification et (une partie)
d’un logiciel concret
De nombreux formalismes (pour le moins !) :
Spécification algébrique, Machines d’état abstraites,
Interprétation abstraite, Model Checking, Démonstrateurs de
théorèmes automatiques ou interactifs, ...

11 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Les avantages des méthodes formelles


Re-formuler la spécification en utilisant les mathématiques
force à être précis
Un moyen d’avoir des spécifications claires
Avec des outils automatiques ou des vérifications manuelles,
fournir des preuves de fiabilité
60 à 80% du coût total est la maintenance(source Microsoft)
20 fois plus cher de gérer un bug en production plutôt qu’en
conception

12 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Les avantages des méthodes formelles


Re-formuler la spécification en utilisant les mathématiques
force à être précis
Un moyen d’avoir des spécifications claires
Avec des outils automatiques ou des vérifications manuelles,
fournir des preuves de fiabilité
60 à 80% du coût total est la maintenance(source Microsoft)
20 fois plus cher de gérer un bug en production plutôt qu’en
conception
La maturité des outils et leurs usages s’est beaucoup amélioré
ces dernières années (mais certains sont toujours très
complexes)
La plupart des outils sont disponibles gratuitement et/ou
librement :
[Link]
12 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Comment appliquer les MFs ?

Quel est votre problème ?


Qu’est-ce que vous voulez garantir ?
Trouver une méthode formelle qui corresponde à :
votre domaine d’application
vos problèmes
vos contraintes de temps et de coûts

13 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Comment appliquer les MFs ?

Quel est votre problème ?


Qu’est-ce que vous voulez garantir ?
Trouver une méthode formelle qui corresponde à :
votre domaine d’application
vos problèmes
vos contraintes de temps et de coûts

Comment les mettre en oeuvre ?


Les intégrer à votre cycle de développement
Prendre les conseils d’un expert dans la méthode choisie

13 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Grille de choix d’un outil d’une MF ?


Domaines d’application / Problèmes possibles :
Quand utiliser cette approche ? Points sensibles à regarder
Niveau d’expertise/ Niveau d’intervention :
Nul (cliquer un bouton) / Moyen (écrire une spec formelle) /
Elevé (faire une preuve)
Que faut-il faire (modèle, annotations, propriétés, ?) ?
Couverture du cycle de développement / Fidélité au logiciel
A quelles étapes du cycle de développement ?
Vérifications sur un modèle du logiciel ou le logiciel lui-même ?
Disponibilité des outils / Niveau d’automatisme
Expressivité : qu’est-ce que je peux prouver ?

14 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Exemples de Méthodes Formelles

Analyse Abstraite

15 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Exemples de Méthodes Formelles

Analyse Abstraite

Model checking

15 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Exemples de Méthodes Formelles

Analyse Abstraite

Model checking

les Méthodes ensemblistes

15 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Analyse abstraite

Basée sur l’interprétation abstraite


Un type abstrait décrit une structure de données en masquant
sa réalisation.

l’interprétation abstraite est une théorie d’approximation correcte


de la sémantique (des modèles) des systèmes informatiques

Approximation : observation du comportement d’un système


informatique à un certain niveau d’abstraction, en ignorant les
détails sans importance
Correcte : l’approximation ne peut pas mener à des
conclusions erronées

16 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Model-checking

Définition
Méthode algorithmique permettant de vérifier formellement
qu’un système à états fini satisfait une propriété logique

Nécessite :
1 un Modèle M d’un système matériel ou logiciel

2 une description de la propriété ϕ à vérifier sur ce modèle


3 un algorithme vérifiant automatiquement si le modèle satisfait
la formule : M |= ϕ

17 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Exemple de MF : Model-checking

18 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Avantages Vs Limitations

Avantages
(Idéalement) Complètement automatique
un contre-exemple est retourné quand la propriété n’est pas
vérifiée

19 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Avantages Vs Limitations

Avantages
(Idéalement) Complètement automatique
un contre-exemple est retourné quand la propriété n’est pas
vérifiée

Limitations
En théorique : le système de transitions doit être fini ;
grossièrement, le programme ne doit manipuler que des
variables à domaine fini.
C’est souvent le cas en pratique, mais pas toujours.

19 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Méthodes ensemblistes :
Basées sur la théorie axiomatique des ensembles e.g. VDM, Z, B

20 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Méthodes ensemblistes :
Basées sur la théorie axiomatique des ensembles e.g. VDM, Z, B
La méthode B :
Construction de logiciels corrects par construction
Proposée par Jean-Raymond Abrial
Raffiner une spécification abstraite : En utilisant la logique de
Hoare

20 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

Méthodes ensemblistes :
Basées sur la théorie axiomatique des ensembles e.g. VDM, Z, B
La méthode B :
Construction de logiciels corrects par construction
Proposée par Jean-Raymond Abrial
Raffiner une spécification abstraite : En utilisant la logique de
Hoare

La Logique de Hoare ou triplets de Hoare : {P}C {Q} :


Règles logiques pour raisonner sur la correction d’un
programme informatique
P : Précondition, C : Commande, Q : Post-condition
Si P est vraie, alors Q est vraie après exécution de la
commande C
20 / 22
Motivation
Analyse Abstraite
Méthodes Formelles : Principes
Model-checking
Méthodes Formelles : Exemples
Méthodes ensemblistes
Conclusion

La Méthode B :
Ligne de métro 14 sans conducteur à Paris :
Environ 110.000 lignes de modèle B ont été écrites, générant
environ 86.000 lignes de code Ada
Aucun bugs trouvés après les preuves, des tests fonctionnels, ni
depuis que la ligne est en opération (octobre 1998)
Le logiciel critique est toujours en version 1.0, sans bug
détecté jusque là (en 2007)

21 / 22
Motivation
Méthodes Formelles : Principes
Méthodes Formelles : Exemples
Conclusion

Conclusion

Méthodes formelles
Un excellent moyen pour améliorer la qualité du matériel et
logiciel
Pas la réponse à tout mais une bonne réponse
Pas seulement pour des systèmes critiques !
Beaucoup d’approches (Cette présentation n’est pas
exhaustive) !
Approches principales : Interprétation abstraite, Model
checking, Méthode B
Certaines sont faciles, d’autres plus difficiles
D’entièrement automatiques à entièrement manuelles
Utiles mêmes si elles ne sont pas complètement employées
Même une seule spécification formelle est utile !

22 / 22

Vous aimerez peut-être aussi