Interprtation abstraite et validation de logiciels critiques - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

Interprtation abstraite et validation de logiciels critiques

Description:

tout sous-ensemble de T admet un plus petit majorant. Exemple : le treillis des signes ... f admet un plus petit point fixe. Th or me de Tarski (1955) Th or me : ... – PowerPoint PPT presentation

Number of Views:69
Avg rating:3.0/5.0
Slides: 45
Provided by: galaUn
Category:

less

Transcript and Presenter's Notes

Title: Interprtation abstraite et validation de logiciels critiques


1
Interprétation abstraiteet validation de
logiciels critiques
  • Matthieu Martel

2
Systèmes embarqués
  • Systèmes embarqués Systèmes informatiques
    (logicielmatériel) conçus pour être intégrés
    dans des objets industriels

3
Systèmes embarqués
  • Quelques caractéristiques
  • Systèmes électroniques et
  • informatiques autonomes,
  • sans entrées ni sorties
  • standard (clavier et écran)
  • Capacités limitées (puissance de calcul,
    autonomie, mémoire, etc.)
  • Difficilement modifiables après livraison
  • Contraintes de coûts
  • coût de développement (petites séries, ex
    avion)
  • économies déchelle (grandes séries, ex
    téléphone)

4
Systèmes critiques
  • Systèmes critiques systèmes embarqués dont une
    panne peut être catastrophique (conséquences
    humaines, financières)

5
Missile Patriot (1991)
  • Compteur (temps) 1/10 ajouté tous les dixièmes
    de seconde
  • En binaire
  • 1/10 1/24 1/25 1/28 ... 0.00011001100
  • Codé sur 24 chiffres binaires (bits)
  • erreur 9.5 10-8
  • Au bout de 100 heures
  • 100 x 3600 10 9.5 10-8 0.34 secondes
  • Vitesse du Scud 1676 ms-1
  • Erreur gt 500 mètres

6
Ariane 5 (1996)
Après un décollage normal la fusée a eu un
comportement nominal jusqu'à la 36ème secondes de
vol. Puis les systèmes de référence inertielle
(SRI) ont été simultanément déclarés défaillants.
Sur la base d'informations de diagnostic du SRI
traitées comme des instructions de vol, le
calculateur de bord a provoqué le braquage en
butée des tuyères des boosters, puis du moteur
Vulcain d'Ariane 5 qui jusque là suivait
parfaitement sa trajectoire de vol. C'est ce
braquage intempestif des moteurs qui faisant
brusquement basculer le lanceur l'a amené à se
briser sous les efforts aérodynamiques et à
exploser en vol, peu avant sa destruction
télécommandée. Le SRI n'a pas transmis de données
correctes parce qu'il était victime d'une erreur
d'opérande trop élevée du "biais horizontal" de
la fonction d'alignement interne de la centrale.
Le calcul de cette variable est lié à la vitesse
horizontale détectée par la plate-forme
inertielle. Or, sur Ariane 5, l'accélération au
décollage est beaucoup plus forte que sur Ariane
4, et la vitesse horizontale s'accroît cinq fois
plus rapidement. La variable a donc dépassé la
plage des valeurs autorisée par le logiciel de
vol. La fonction d'alignement qui reste active
environ 40 secondes après est une exigence
d'Ariane 4 mais n'a aucune utilité sur Ariane 5.
Elle a cependant été maintenue pour des raisons
de commodité. La fonction comprend sept variables
dont seulement quatre sont protégées. Lors de la
conception, il n'avait pas été jugé nécessaire de
protéger le calculateur contre un arrêt de
fonctionnement dû à une valeur excessive de la
variable lié à la vitesse horizontale. Cette
décision a été prise sans que l'on analyse ou
comprenne parfaitement les valeurs que cette
variable pourrait prendre lorsque la fonction
d'alignement est autorisée à fonctionner après le
décollage.
7
Coupure électrique (2003)
  • Environ 50 millions de personnes touchées dans le
    nord-est américain
  • Cause hasard de course (race condition)

compte commun
solde s?
si possible retirer x
modifier s s-x
8
Autres bugs célèbres
  • Mars climate orbiter (1999) confusion entre
    systèmes métrique et impérial (125 millions de
    dollars)
  • USS Yorktown (1998) erreur dun opérateur qui
    saisit la valeur zéro. par zéro et propagation
    de lerreur. Bateau arrêté en pleine mer quelques
    heures
  • Pentium (1994) erreur dans la division. Coût
    environ 475 millions dollars
  • 5505001 294911 ? 18.66600093 ? 18.66665197
  • x 4195835, y 3145727 z x-(x y) y ?
    256 ? 0

9
Bugs classification
  • Opérations illicites (USS Yorktown)
  • 10 v-1
  • Dépassements de capacité (Ariane 5)
  • entiers souvent entre -32767 32767
  • 6900 5 8
  • Erreurs darrondi (Patriot)
  • 1/10 0.00011001100
  • Synchronisations (coupure électrique)
  • hasards de course
  • Autres spécifications (Pentium, Mars orbiter),
    accès mémoire, etc.

10
Sûreté de fonctionnement
  • Nécessité de garantir le bon fonctionnement des
    systèmes critiques!
  • Sûreté absence de comportement indésirable
  • lairbag ne se déclenche pas sans raison
  • Vivacité bon comportement du système (plus
    difficile à établir)
  • lairbag se déclenche en cas daccident

11
Quelques ordres de grandeur
static const NUM TRANSF2_B06_C2
-1.362407E00static const NUM TRANSF2_B06_C3
7.830931E-01static const NUM TRANSF2_B06_C4
1.362407E00static const NUM TRANSF2_B06_C5
-6.844878E-01static const NUM LIM_A1_E2
8.000000E00static const NUM LIM_A1_E3
-8.000000E00static const NUM K_A2_E2
-6.236000E-01 static const NUM AFFECT_N_1_E1
2.000000E00static const NUM SWITCH_N_E93_E1
3.500000E00static const NUM SWITCH_N_A6_E1
0.000000E00static const BOO AFFECT_B_1_E1
FALSEstatic NUM PADN5/Mod JS//SUB(1,PLDQCMMMO
Y,PDQMM,X611Z01)/SUB(1,PDQCMMMOY,PDQMM,X611Z01)/
SUB(1,PDQCMMMOY,0,X611Z01)//Fin Mod
JS/K(A1,X611Z01,K_A1_E2,X611Z02)AFFECT_B(1,AFFECT
_B_1_E1,BOFFACS1)TRANSF2(B06,X611Z02,X611Z02,X611Z
02,BOFFACS1,X611Z17,TRANSF2_B06_C1, \
TRANSF2_B06_C2,TRANSF2_B06_C3,TRANSF2_B06_C4,TRANS
F2_B06_C5)LIM(A1,X611Z17,LIM_A1_E2,LIM_A1_E3,PLEPS
)ADD(2,PFOSV,PLEPS,X611Z16)K(A2,PDQMM,K_A2_E2,X611
Z03)AFFECT_N(1,AFFECT_N_1_E1,X611Z04)INVNUM(1,X611
Z04,PADN5)LIM(A2,X611Z03,X611Z04,PADN5,X611Z05)ADD
(3,X611Z16,X611Z05,SANO1)
  • Avion O(100000) LOCs, O(1000) variables, heures
  • Voiture O(10000) LOCS
  • ATV (Galileo) O(1000000) LOCs, jours
  • Centrale nucléaire mois

12
Exemple de fonctionnalité lATV
13
Inflation du logiciel
chiffres, la machine ne peut accepter des nombres
de taille supérieure, et elle les tronque." D'où
des erreurs fatales, comme celle qui a conduit à
la perte du contrôle de la fusée Ariane 5 le 4
juin 1996. Face à l'inflation galopante de la
taille des logiciels embarqués sur les avions de
ligne (20 000 lignes de code pour l'A320, 120 000
pour l'A340, près de 500 000 pour l'A380), la
recherche de telles erreurs devient critique.
"Nous sommes capables d'établir la preuve
mathématique qu'un programme comme celui de la
commande de vol de l'A380 ne comprend pas de
bogues liés à la limite des capacités de
l'ordinateur" , rassure M. Cousot. Une
information précieuse pour la fiabilité de
l'A380, même s'il est prévu d'autres sécurités
comme l'exécution redondante des programmes par
plusieurs ordinateurs en parallèle. L'équipe de
M. Cousot a d'ores et déjà établi un record
"L'A380 dispose du plus gros programme jamais
"prouvé" dans le monde." Article paru dans
l'édition du 27.04.05
  • L'avion qui "bat des ailes" a fédéré
  • de nombreux chercheurs
  • L'excitation qui règne chez Airbus est également
    perceptible dans les laboratoires qui
    collaborent au projet. En posant des problèmes
    inédits, le futur géant du ciel représente un
    défi pour les scientifiques. ...
  • L'effet A380 dépasse largement le cadre régional.
    Il touche l'ensemble de l'Europe et met à
    contribution des laboratoires qui n'ont pas
    forcément de relations avec l'aéronautique. C'est
    le cas de l'Ecole normale supérieure (ENS) de
    Paris, où Patrick Cousot, professeur
    d'informatique, anime une équipe de sept
    personnes travaillant sur le projet Astrée
    (associant le CNRS, l'ENS et Polytechnique).
    "L'ordinateur possède des limitations, explique
    M. Cousot. Lorsqu'une valeur est codée sur 5

14
Exemple de programme
  • Données
  • point U(x,y)
  • ensemble de points V0,V1,...,Vn-1 tels que
    Vi(xi,yi), 0 i n-1
  • Résultat distance d du point Vi le plus éloigné
    de U
  • i 0
  • d 0
  • tant que i n-1
  • d v((xi-x)2(yi-y)2)
  • si dgtd alors d d
  • i i1

15
Interprétation
i d d
0
1
2
0
9.219544
9.219544
8,062257
  • (x,y) (7,4) n12
  • xi 9,15,-4,-3,2,11,...
  • yi 11,5,2,9,-3,-7,...
  • i 0
  • d 0
  • tant que i n-1
  • d v((xi-x)2(yi-y)2)
  • si dgtd alors d d
  • i i1

16
Analyse de sûreté du programme
  • Opérations illicites 10 v-1
  • Dépassements de capacité a b 8
  • Erreurs darrondi 1/10 0.00011001100
  • Synchronisations hasards de course impossible
    dans ce cas
  • Autres erreurs restantes non traité

i 0 d 0 tant que i n-1 d
v((xi-x)2(yi-y)2) si dgtd alors d d i i1
17
Absence derreur?
  • Impossibilité de tester tous les scenarii
    possibles!
  • Si lon ne considère que les points
    correspondant à un écran dordinateur

(x,y) (7,4) n12 xi 9,15,-4,-3,2,11,... yi
11,5,2,9,-3,-7,... i 0 d 0 tant que i
n-1 d v((xi-x)2(yi-y)2) si dgtd alors d
d i i1
  • coordonnées entières
  • abscisses entre 0 et 1023
  • ordonnées entre 0 et 767
  • 13 points uniquement (figure)
  • (1024768)13gt 4.4 1076
  • possibilités!

18
Absence derreur?
  • (1024768)13gt 4.4 1076
  • possibilités!
  • Processeur à 3 GigaHertz
  • 3109 opérations/seconde
  • moins de 109 tests/seconde

4.4 1065 secondes plus de 1058 années
19
Outil mathématique ordres partiels
  • Ordre total relation telle que pour tous x et
    y
  • x y ou y x
  • Ordre partiel relation telle que pour tous x
    et y
  • x y ou y x ou ni lun ni lautre

20
Outil mathématique majorants
  • Majorant dune partie P élément plus grand que
    tous les éléments de P

21
Outil mathématique treillis complets
  • Treillis complet T
  • ensemble avec ordre partiel
  • tout sous-ensemble de T admet un plus petit
    majorant

22
Exemple le treillis des signes
  • Représentation simplifiée des entiers relatifs
  • a b si a est un sous-ensemble de b dans Z
  • T (top) correspond à Z
  • ? (bottom) correspond à lensemble vide Ø

23
Autre exemple le treillis des intervalles
24
Opérations dans le treillis des signes
Multiplication
Addition
25
Interprétation abstraite
  • Abstraction des valeurs de manière à pouvoir
    considérer un grand nombre de scenarii à la fois
  • Interprétation du programme avec les valeurs
    abstraites afin de valider simultanément tous les
    scenarii considérés

étude macroscopique du comportement du
programme Exemple le treillis des signe
26
Abstraction - concrétisation
0
0
27
Interprétation abstraite de programme
(x,y) (7,4) n12 xi 9,15,-4,-3,2,11,... yi
11,5,2,9,-3,-7,... i 0 d 0 tant que i
n-1 d v((xi-x)2(yi-y)2) si dgtd alors d
d i i1
i d d
?
a
  • (x,y) ( , ) n
  • xi
  • yi
  • i
  • d
  • tant que i n-
  • d v((xi-x)2(yi-y)2)
  • si dgtd alors d d
  • i i

Valeurs stabilisées (point fixe) Jamais
dopération illicite
Pas dopération illicite
28
Récapitulatif
  • Propriété démontrée
  • Absence dopération illicite (racines carrées) -
    propriété de sûreté
  • Pour un nombre quelconque de points
  • Pour des coordonnées quelconques (?0)
  • Démonstration
  • Entièrement mécanique (automatisable)
  • Obtenue par calcul dun point fixe (stabilisation
    de toutes les données possibles en tout point du
    programme)

29
Outil mathématique point fixe
  • Point fixe dune fonction f point x tel que
    f(x)x

30
Outil mathématique fonction croissante
  • Fonction croissante si x y alors f(x) f(y)
  • Exemple la fonction valeur absolue est
    croissante dans le treillis des signes

31
Théorème de Tarski (1955)
  • Théorème soit T un treillis complet et
  • f T ? T
  • une fonction croissante. f admet un plus petit
    point fixe

32
Théorème de Tarski (1955)
  • Théorème soit T un treillis complet et
  • f T ? T
  • une fonction croissante. f admet un plus petit
    point fixe

33
Théorème de Tarski (1955)
  • Théorème soit T un treillis complet et
  • f T ? T
  • une fonction croissante. f admet un plus petit
    point fixe


34
Théorème de Tarski (1955)
  • Théorème soit T un treillis complet et
  • f T ? T
  • une fonction croissante. f admet un plus petit
    point fixe


35
Théorème de Tarski (1955)
  • Théorème soit T un treillis complet et
  • f T ? T
  • une fonction croissante. f admet un plus petit
    point fixe


36
Théorème de Tarski (1955)
  • Théorème de Tarski existence dun plus petit
    point fixe
  • Théorème de Kleene indique comment le calculer


37
Analyse de sûreté du programme
  • Opérations illicites 10 v-1 prouvé
    (signes)
  • Dépassements de capacité a b 8
  • Erreurs darrondi 1/10 0.00011001100
  • Synchronisations hasards de course impossible
    dans ce cas
  • Autres erreurs restantes non traité

i 0 d 0 tant que i n-1 d
v((xi-x)2(yi-y)2) si dgtd alors d d i i1
38
Dépassements de capacité treillis des
intervalles
abstraction a


a, b c, d ac, bd a, b - c, d
a-d, b-c a, bc,d min(ac,ad,bc,bd),
max(ac,ad,bc,bd)
concrétisation ?
39
Interprétation abstraite par intervalles
  • (x,y) (7,7,4,4) n12,12
  • xi -4,15
  • yi -7,11
  • i 0,0
  • d 0,0
  • tant que i n-1,1
  • d v((xi-x)2(yi-y)2)
  • si dgtd alors d d
  • i i1,1

(x,y) (7,4) n12 xi 9,15,-4,-3,2,11,... yi
11,5,2,9,-3,-7,... i 0 d 0 tant que i
n-1 d v((xi-x)2(yi-y)2) si dgtd alors d
d i i1
?
a
(xi-x)2 toujours dans -11,8264,121 (yi-y)2
toujours dans -11,7249,121 pas de
dépassement sur 8 bits (entiers entre -127 et 127)
Résultats
40
Analyse de sûreté du programme
  • Opérations illicites 10 v-1 prouvé
    (signes)
  • Dépassements de capacité a b 8 prouvé
    (intervalles)
  • Erreurs darrondi 1/10 0.00011001100
  • Synchronisations hasards de course impossible
    dans ce cas
  • Autres erreurs restantes non traité

i 0 d 0 tant que i n-1 d
v((xi-x)2(yi-y)2) si dgtd alors d d i i1
41
Erreurs darrondi risques
v((xi-x)2(yi-y)2)
Il existe des méthodes de validation par
interprétation abstraite
42
Autres treillis numériques
43
Conclusion
  • Sûreté des systèmes embarqués
  • Partie importante du développement pouvant
    représenter jusquà 80 du coût
  • Partie intégrante du métier de concepteur,
    nombreux débouchés dans les grands groupes
    industriels

Ingénieur sûreté de fonctionnement junior
H/F Entreprise PSA Peugeot Citroën Salaire
Sans objet Ingénieur sûreté de fonctionnement
junior h/f logiciel, système, et
organique/mécatronique La Direction... méthodes
et les outils a tous les stades du cycle de vie
du produit. Vous prenez en charge les études
sûreté de fonctionnement... contraintes jusqu'au
dossier de justification sûreté de
fonctionnement. Vous analysez les réponses
fournisseurs en vérifiant... méthodologique lié
aux études et participez au club Sûreté de
Fonctionnement. Expérience Not
SpecifiedConditions Voir la description pour
plus de détailContrat CDI / CNE 02/07/2008
44
Conclusion
Programmation en Ada (L1)
Programmation en langage C (L2)
Licence info
Logique (L1)
Intelligence Artificielle (L2)
Qualité numérique (L3)
Compilation (L3)
Masters pro ou recherche, écoles dingénieurs,
etc.
Write a Comment
User Comments (0)
About PowerShow.com