Outils d`analyse statique et de vérification pour les applications Java

Christophe Massol
[email protected] IUP MIAGE Nice
Année 2002/2003
INRIA – Projet OASIS
2004 route des Lucioles
BP 93
06902 Sophia Antipolis
Enseignant Responsable: Olivier Dalle
Responsable du stage dans l’entreprise :
Eric
Madelaine
Outils d’analyse statique
et de vérification pour les
applications Java distribuées
Rapport de stage
Rapport de stage Outils d’analyse statique et
de vérification pour les
applications Java distribuées
Christophe Massol Année 2002-2003 Page 2 sur 40
REMERCIEMENTS
Je remercie tout particulièrement l’INRIA qui m’a permis d’effectuer un stage
intéressant et enrichissant.
Je remercie également Monsieur Eric Madelaine ainsi que Madame Rabéa Boulifa
pour toute leur aide apportée sur la compréhension du sujet ainsi que leurs précieuses
explications.
Je remercie Monsieur Olivier Dalle pour son accompagnement tout au long du stage.
Enfin, je tiens à remercier le personnel de l’INRIA pour son accueil et sa sympathie.
Rapport de stage Outils d’analyse statique et
de vérification pour les
applications Java distribuées
Christophe Massol Année 2002-2003 Page 3 sur 40
SOMMAIRE
INTRODUCTION........................................................................................................................................................5
1PRESENTATION DE L’ENTREPRISE........................................................................................................6
2LE PROJET OASIS...........................................................................................................................................8
2.1 LA LIBRAIRIE PROACTIVE................................................................................................................................ 8
2.2 ENVIRONNEMENT DANALYSE ET DE VERIFICATION....................................................................................... 9
3OBJECTIFS DU STAGE................................................................................................................................12
3.1 PRESENTATION DU STAGE..............................................................................................................................12
3.2 PLAN DE TRAVAIL PREVISIONNEL..................................................................................................................13
4LES LOGICIELS BANDERA ET SPARK .................................................................................................14
4.1 DESCRIPTION DE BANDERA............................................................................................................................14
4.1.1 Module de transformation Java -> Jimple (JJJC) ............................................................................14
4.1.2 Module d’analyse statique de classes................................................................................................15
4.1.3 Module d’extraction de propriétés (Property Extractor).................................................................15
4.1.4 Module de découpage (Slicing)..........................................................................................................15
4.1.5 Module abstraction .............................................................................................................................16
4.1.6 Module BIR (Bandera Intermediate Representation).......................................................................16
4.1.7 Module de vérification (Model Checking).........................................................................................16
4.2 FONCTIONNEMENT DE BANDERA...................................................................................................................16
4.3 LIMITES DU LOGICIEL BANDERA....................................................................................................................17
4.4 MODULE ABSTRACTION PROPOSE PAR BANDERA.........................................................................................17
4.4.1 Définition de l’abstraction..................................................................................................................17
4.4.2 Module Abstraction dans Bandera.....................................................................................................18
4.4.2.1 Le langage BASL...............................................................................................................................18
4.4.2.2 L’interface utilisateur..........................................................................................................................19
4.4.2.3 Résultats de l’abstraction.....................................................................................................................19
4.4.3 Utilisation du module d’abstraction pour un programme utilisant la librairie ProActive ............19
4.5 SPARK : OUTIL DANALYSE STATIQUE DE POINTEURS SUR LANGAGE JIMPLE..............................................19
4.5.1 Utilisation de Spark dans notre analyse............................................................................................21
5TRAVAUX EFFECTUES...............................................................................................................................23
5.1 ADAPTATION DE BANDERA A PROACTIVE....................................................................................................24
5.1.1 Modification du module JJJC.............................................................................................................25
5.1.2 Prise en compte de ProActive.............................................................................................................25
5.2 INTEGRATION DES OUTILS DANALYSE DE CLASSE LANDE...........................................................................26
5.3 ANALYSE STATIQUE DES OBJETS ACTIFS.......................................................................................................27
5.3.1 L’analyse des objets actifs..................................................................................................................28
5.3.2 La structure Jimple..............................................................................................................................28
5.3.2.1 Jimple – Nœud Affectation..................................................................................................................29
5.4 ANALYSE STATIQUE DES LIENS DE COMMUNICATION...................................................................................31
5.4.1 Adaptation de Spark pour une analyse d’un code basé sur la librairie ProActive.........................31
5.4.1.1 Intégration de l’appel constructeur.......................................................................................................32
5.4.1.2 Intégration de l’appel à la méthode runActivity.....................................................................................33
5.4.2 Identification d’une communication vers un objet actif ...................................................................33
5.4.3 Limites de l’analyse.............................................................................................................................34
5.4.4 Identification d’une instance d’un objet actif à un point donné.......................................................34
5.5 PLANNING RECAPITULATIF.............................................................................................................................35
5.6 AVANCEMENT.................................................................................................................................................37
5.6.1 Les fonctionnalités implémentées.......................................................................................................37
5.6.2 Les fonctionnalités non terminées......................................................................................................37
Rapport de stage Outils d’analyse statique et
de vérification pour les
applications Java distribuées
Christophe Massol Année 2002-2003 Page 4 sur 40
5.6.3 Les problèmes ouverts.........................................................................................................................37
CONCLUSION...........................................................................................................................................................38
REFERENCES...........................................................................................................................................................39
Rapport de stage Outils d’analyse statique et
de vérification pour les
applications Java distribuées
Christophe Massol Année 2002-2003 Page 5 sur 40
INTRODUCTION
Afin de développer mes connaissances avec profit et m’initier à la vie d’entreprise,
l’enseignement universitaire professionnel de la MIAGE propose un stage de fin d’étude de
25 semaines (du 3 Mars au 31 août).
Parmi les nombreuses propositions, mon choix s’est porté sur l’INRIA.
Cet institut, spécialisé dans la recherche informatique, est toujours à la pointe de la
technologie intégrant nombre de chercheurs de diverses nationalités.
J’ai évolué dans le projet OASIS, projet dont le but est d’offrir des outils pour la
construction, l’analyse, la vérification et la maintenance d’applications réparties Java. J’ai été
intégré dans l’équipe Vercors.
1 / 40 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !