La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :

Présentations similaires


Présentation au sujet: "2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :"— Transcription de la présentation:

1 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur : Jean-Yves Bouttery Présentation: le 15 mai 2007 Auditoire : Mr ANDRZEJAK Willy et Auditeurs CNAM

2 INTRODUCTION Augmentation puissance des ordinateurs. Augmentation complexité des programmes. Risque de catastrophes. *Airbus 88. *Ariane V en 96. *Pb de tous les jours.

3 Comment éviter cela? En effectuant des tests Boite noire Boite blanche

4 Différences Tests boîtes noires Tests fonctionnels Méconnaissance de limplémentation technique du besoin fonctionnel Les jeux dessai dépendent des spécification du besoin Tests boîtes blanches Tests structurels Les jeux dessai dépendent de lanalyse du code source

5 Plan de lexposé I. Différentes utilisations des outils. II. Informations produites. III. Méthodes danalyse. IV. Les outils.

6 Différentes utilisations. 1. La recherche de métriques. -La proportion de code à lintérieur de boucles. -Le taux de commentaires. -Le nombre de lignes plus lisibles et faciles à maintenir.

7 Différentes utilisations. 2. Erreurs pouvant survenir à lexécution. -Etendre le travail du compilateur. -ex: laccès à un tableau à lextérieur de ses bornes gain de temps pour régler les pb

8 Différentes utilisations. 3. Le découpage ou slicing. -Réutilisation dune partie de code. -Faciliter la compréhension. Faire ressortir certaines instructions dun programme en relation avec une propriété. Possibilité de réduire le problème de lindécidabilité de lanalyse statique.

9 Différentes utilisations. 4. Politique de sécurité. Recherche de codes malicieux.

10 Plan de lexposé I. Différentes utilisations des outils. II. Informations produites. III. Méthodes danalyse. IV. Les outils.

11 Informations produites. 1. larbre syntaxique. -La syntaxe dun langage étant représentée par une grammaire, il est possible de faire un arbre syntaxique du programme. -départ pour acquérir les informations

12 Informations produites. 2. Le graphe de flot de contrôle. -les noeuds = instructions. -arc vers nœuds=instruction suivante -Il met en évidence les boucles, instructions conditionnelles Un chemin = scénario dexécution.

13 Informations produites. void main() { int x = 0; int y = 1; while (y < 10) { y = 2 * y; x = x + 1; } printf ("%d",x); printf ("%d",y); }

14 Informations produites. 3. Le graphe de dépendance de contrôle. -montre quelles instructions seront exécutées en fonction de la valeur dune expression dans le programme. -Pour deux noeuds p et q, un arc va de p vers q si la valeur de lexpression p a un impact sur le fait que linstruction q soit exécutée ou non.

15 Informations produites.

16 Informations produites. 4. Lanalyse du flot de données. -informe sur le déplacement des données dans le programme. Une information de base qui peut être très utile est lensemble des variables utilisées et celui des variables modifiées pour chaque instruction du programme.

17 Informations produites. void main() { int x = 0;Utilise={} Définit={x} int y = 1;Utilise={} Définit={y} while (y < 10)Utilise={y} Définit={} { y = 2 * y;Utilise={y} Définit={y} x = x + 1;Utilise={x} Définit={x} } printf ("%d",x); Utilise={x} Définit={} printf ("%d",y);Utilise={y} Définit={} }

18 Informations produites. 5. Le graphe de dépendance de données. -Dans ce graphe, un arc va de p vers q sil est possible que la valeur dune des variables modifiées à linstruction p soit utilisée à linstruction q sans quelle ne soit modifiée entre temps.

19 Informations produites.

20 Informations produites. 5. Graphe de dépendance du programme. -lunion du graphe de dépendance de contrôle et du graphe de dépendance de données.

21 Informations produites.

22 Informations produites. 6. Il existe toute une série de graphes qui peuvent être créer en fonction des besoins.(dépendance système)

23 Informations produites. 7. Le découpage. -Le découpage arrière: Les noeuds qui peuvent atteindre le nœud choisi en suivant les arcs à contresens. -Le découpage avant: Les noeuds que lon peut atteindre à partir du noeud choisi en suivant les arcs.

24 Informations produites.

25 Informations produites.

26 Informations produites. int somme(int a,int b) { int c; c = a + b; return c; } void main() { int x;int y; x =somme(2,3); printf("%d",x); y = somme(x,3); printf("%d",y); }

27 Informations produites.

28 Plan de lexposé I. Différentes utilisations des outils. II. Informations produites. III. Méthodes danalyse. IV. Les outils.

29 Les méthodes 1. analyse lexicale et syntaxique. -Lanalyse lexicale consiste à découper le programme en petites entités appelées tokens (opérateurs, mots réservés, variables, constantes numériques, alphabétiques…).

30 Les méthodes 1. analyse lexicale et syntaxique. -Lanalyse lexicale consiste à découper le programme en petites entités appelées tokens (opérateurs, mots réservés, variables, constantes numériques, alphabétiques…).

31 Les méthodes Lors de l'analyse syntaxique, on vérifie que l'ordre des tokens correspond à l'ordre défini pour le langage. On dit que l'on vérifie la syntaxe du langage à partir de la définition de sa grammaire. arbre de la suite des tokens obtenus lors de la phase récédente

32 Les méthodes.

33 Les méthodes Les métriques de Halstead sont basées sur l'interprétation du code comme une séquence de marqueurs, classifiés chacun comme étant un opérateur ou une opérande. nombre d'opérateurs uniques (distints)(n1) nombre d'opérandes uniques (distinctes)(n2) nombre total d'opérateurs (N1) nombre total d'opérandes (N2)

34 Les méthodes On peut obtenir: Longueur du programme (N) :N1+N2 Taille du vocabulaire (n) : n1+n2 Volume du programme (V) : V=N* Log2(n) Nbre de lignes de programme et de commentaire… Le niveau de difficulté (D) /de programme (L)…

35 Les méthodes Le nombre cyclomatique de McCabe v(G). Il mesure le nombre de chemins linéaires indépendants dans un module de programme. La complexité McCabe est l'un des métriques de software les plus largement acceptées, elle est conçue pour être indépendante du langage et du format de langage.

36 Les méthodes 2. Par interprétation abstraite. Les chercheurs ont développé des méthodes de preuve de la correction des programmes. Ceci consiste à fournir une sémantique décrivant formellement les exécutions d'un programme, puis démontrer un théorème exprimant que ces exécutions ont une certaine propriété = impossible

37 Les méthodes L'interprétation abstraite procède par approximation correcte de la sémantique. Si l'approximation est suffisamment grossière, elle est calculable par un ordinateur. Si elle est suffisamment fine, elle permet d'obtenir une preuve formelle de correction. L'objectif est donc de rechercher des approximations suffisamment précises et peu coûteuses à calculer.

38 Les méthodes L'interprétation abstraite procède par approximation correcte de la sémantique. Si l'approximation est suffisamment grossière, elle est calculable par un ordinateur. Si elle est suffisamment fine, elle permet d'obtenir une preuve formelle de correction. L'objectif est donc de rechercher des approximations suffisamment précises et peu coûteuses à calculer.

39 Les méthodes Avec cette description, il est possible de vérifier statiquement (sans exécution du programme) des propriétés dynamiques, c'est-à-dire dépendantes de l'exécution (code mort, débordement de tableau, flot de données, etc.).

40 Plan de lexposé I. Différentes utilisations des outils. II. Informations produites. III. Méthodes danalyse. IV. Les outils.

41 Les outils

42 Les outils

43

44 Conclusion. Réponse à beaucoup de questions Mais lanalyse statique nest pas suffisante pour garantir le bon fonctionnement dun programme. En effet il y a toujours le problème de lindécidabilité De certaines actions, cest pour cela que lanalyse statique doit être couplée à lanalyse fonctionnelle.

45 Conclusion. Questions??? Examen: différence boites noires et blanches. Quest ce que lindécidabilité en analyse statique.


Télécharger ppt "2006-20071 Outils danalyse statique Année : 2006/2007 GLG101 : Test et Validation du logiciel Nom du fichier : OUTILS_ANALYSE_STATIQUE.PPT Rédacteur :"

Présentations similaires


Annonces Google