13.07.2015 Views

La sûreté des logiciels - CEA

La sûreté des logiciels - CEA

La sûreté des logiciels - CEA

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Quelques exemples de sources d’erreurs dans les <strong>logiciels</strong>1 - Erreur dans l’exécution d’une opérationLe résultat de l’opération « a divisé par b », dans le cas où « b » est nul, est irréalisable par l’ordinateur etle programme s’arrête. Il faut donc éviter, lorsque le logiciel fonctionne, que « b » prenne une valeur nulle.Mais « b » peut parfois prendre un grand nombre de valeurs différentes résultant d’un grand nombre decalculs possibles. Découvrir les cas où « b » a une valeur nulle qui induit un mauvais fonctionnement dulogiciel devient alors difficile et peut échapper à l’attention du concepteur.2 - Résultat d’une opération non représentable en machineLes entiers représentés en machine ne correspondent nullement aux entiers mathématiques ; ils restentbornés. Ainsi « a » et « b » peuvent être représentables en machine mais pas « a+b »3 - Perte de précision dans <strong>des</strong> calculs en nombres flottantsUn <strong>des</strong> grands paradoxes de l’informatique est que l’ordinateur est utilisé pour calculer, mais qu’il calculefaux le plus souvent ! Les « flottants », c’est-à-dire les nombres réels informatiques n’ont qu’une lointaineressemblance avec leurs cousins mathématiques. Par exemple, si une valeur est non nulle mais trèspetite, son carré peut être nul ! Ainsi le nombre réel 1/3 = 0,33333… n’a pas de représentation exacte eninformatique (à combien de 3 après la virgule s’arrête-t-on ?) Ajouter un certain nombre de fois 1/3 <strong>des</strong>econ<strong>des</strong> à une horloge conduit à une dérive de l’horloge - et peut conduire, par exemple, à la perte d’unmissile.4 - Bouclage infiniOn demande au logiciel la répétition d’une série d’opérations jusqu’à ce qu’une certaine condition soitsatisfaite mais elle ne l’est jamais. Les calculs se répètent à l’infini.5 - Blocage par attente réciproqueComme deux personnes dans la vie courante attendent que l’autre ait fait le premier pas, deux élémentsde <strong>logiciels</strong> attendent un résultat l’un de l’autre pour pouvoir poursuivre leur exécution.6 - Perte d’information par défaut de synchronisationDes valeurs se succèdent et doivent être traitées par le logiciel. Dans ce flot de valeurs, une <strong>des</strong> valeursest remplacée par la suivante avant qu’elle n’ait été lue et utilisée par la partie du logiciel chargée de sontraitement.7 - Le résultat arrive trop tardDans un système temps-réel, le résultat doit arriver avant une date limite pour être utilisable. Parexemple, <strong>des</strong> informations sur la météo du lendemain qui arriveraient le surlendemain seraient bienévidemment inutiles.8 - Le résultat ne correspond pas à ce qui est attenduOn désire obtenir le plus grand de deux nombres mais le logiciel rend le plus petit. Il n’y a pas d’erreur àl’exécution (« plantage ») mais le résultat n’a pas la propriété attendue.Dossier de presse <strong>CEA</strong> : <strong>sûreté</strong> <strong>des</strong> <strong>logiciels</strong> septembre 2003 www.cea.fr / 5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!