19.06.2014 Views

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Chapitre 7 - Comparaison avec l existant<br />

qu elle représente est complexe, elle peut également contenir d autre maisons pour les appels<br />

récursifs.<br />

La figure 39, représente les interactions entre fonctions et variables comme <strong>de</strong>s interactions entre<br />

araignées sur une toile, chaque araignée représentant une fonction du programme. A la fin <strong>de</strong><br />

l exécution, plus les araignées sont proches plus les interactions entre les données qu elles<br />

représentent sont importantes.<br />

Cet outil, permet <strong>de</strong> se construire une idée assez précise du comportement d un programme, mais<br />

il ne permet pas <strong>de</strong> connaître les valeurs manipulées par le programme ni <strong>de</strong> suivre le contrôle <strong>de</strong><br />

son exécution.<br />

7.3. CARE<br />

Le projet CARE (Computer-A i<strong>de</strong>d Re-Engineering) [LIN1 93, LIN2 93] est issu <strong>de</strong>s recherches<br />

effectuées au sein du Laboratoire du Département Informatique <strong>de</strong> l Université Technologique<br />

du Tennessee (Etats-Unis) et ceci <strong>de</strong>puis 1990. Ce projet vise à développer <strong>de</strong>s prototypes<br />

d outils d ai<strong>de</strong> à la compréhension, à la maintenance et à la création <strong>de</strong> programmes.<br />

Ces travaux se sont basés sur <strong>de</strong>ux outils appelés VIFOR (Visual Interactive Fortran) et VIC<br />

(Visual Interactive C), développés dans les années 80 par <strong>de</strong>s membres <strong>de</strong> l équipe <strong>de</strong> recherche<br />

<strong>de</strong> l Université Wayne State à Détroit (Michigan). Les outils actuellement développés par l équipe<br />

du projet sont au nombre <strong>de</strong> trois :<br />

- CARE est un outil pour la compréhension et le développement <strong>de</strong> gros programmes en<br />

ANSI C<br />

- OO!CARE est la version orientée objet <strong>de</strong> CARE, qui facilite la compréhension et la<br />

maintenance <strong>de</strong> programmes écrits en C++<br />

- PolyCARE est le fruit <strong>de</strong>s <strong>de</strong>rniers travaux <strong>de</strong> recherche <strong>de</strong> l équipe CARE. Cet outil se<br />

concentre sur l ai<strong>de</strong> à la compréhension <strong>de</strong> programmes complexes écrits en différents<br />

langages.<br />

L outil CARE est donc assez proche <strong>de</strong> par sa <strong>de</strong>scription aux objectifs <strong>de</strong> notre travail, mais<br />

voyons <strong>de</strong> plus près l étendue <strong>de</strong>s possibilités qu offre ce logiciel aux développeurs.<br />

Cet outil permet d obtenir la représentation graphique <strong>de</strong> quatre types <strong>de</strong> données :<br />

- une représentation textuelle (cf. figure 37)<br />

- une représentation sous forme <strong>de</strong> colonnes <strong>de</strong> types <strong>de</strong> données (cf figure 38)<br />

- une représentation <strong>de</strong> graphe hiérarchique <strong>de</strong>s dépendances entre données (cf. figure 39)<br />

- <strong>de</strong>s représentations <strong>de</strong> slicings (cf. figure 40)<br />

Ces différentes représentations <strong>de</strong> données sont générées après analyse du programme source,<br />

qui extrait dans une base <strong>de</strong> données les informations sur les interactions entre les données du<br />

programme. L ensemble <strong>de</strong> ces représentations est généré via une interface graphique, comme<br />

nous pouvons le voir sur les figures qui suivent.<br />

73

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

Saved successfully!

Ooh no, something went wrong!