Title: Interprtation abstraite et validation de logiciels critiques
1Interprétation abstraiteet validation de
logiciels critiques
2Systèmes embarqués
- Systèmes embarqués Systèmes informatiques
(logicielmatériel) conçus pour être intégrés
dans des objets industriels
3Systè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)
4Systèmes critiques
- Systèmes critiques systèmes embarqués dont une
panne peut être catastrophique (conséquences
humaines, financières)
5Missile 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
6Ariane 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.
7Coupure é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
8Autres 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
9Bugs 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.
10Sû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
11Quelques 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
12Exemple de fonctionnalité lATV
13Inflation 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
14Exemple 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
15Interpré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
16Analyse 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
17Absence 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!
18Absence 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
19Outil 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
20Outil mathématique majorants
- Majorant dune partie P élément plus grand que
tous les éléments de P
21Outil mathématique treillis complets
- Treillis complet T
- ensemble avec ordre partiel
- tout sous-ensemble de T admet un plus petit
majorant
22Exemple 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 Ø
23Autre exemple le treillis des intervalles
24Opérations dans le treillis des signes
Multiplication
Addition
25Interpré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
26Abstraction - concrétisation
0
0
27Interpré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
28Ré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)
29Outil mathématique point fixe
- Point fixe dune fonction f point x tel que
f(x)x
30Outil 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
31Thé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
32Thé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
33Thé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
34Thé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
35Thé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
36Thé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
37Analyse 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
38Dé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 ?
39Interpré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
40Analyse 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
41Erreurs darrondi risques
v((xi-x)2(yi-y)2)
Il existe des méthodes de validation par
interprétation abstraite
42Autres treillis numériques
43Conclusion
- 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
44Conclusion
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.