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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapitre 5 - Description technique du travail réalisé<br />

Ainsi comme on peut le voir à la figure 20, créer un graphe <strong>de</strong> dépendance avec l outil Dot<br />

nécessite d écrire au préalable les relations entre les n uds que l ont veut afficher dans un format<br />

propre à l outil (n ud 1 -> noeud2). On qu on doit ainsi créer un fichier (en format .dot)<br />

contenant toutes les définitions <strong>de</strong>s n uds et <strong>de</strong>s liens entre ces n uds, puis l exécuter avec la<br />

comman<strong>de</strong> dot suivante : dot -Tps -o fichier.ps fichier.dot<br />

C est donc dans ce format Dot que nous allons formater notre base <strong>de</strong> données.<br />

5.2.2. Formatage <strong>de</strong> la base <strong>de</strong> données au format dot<br />

Dans cette section, nous présentons comment la base <strong>de</strong> donnée générée grâce à la version<br />

modifiée <strong>de</strong> EiC est exploitée pour avoir une représentation graphique claire <strong>de</strong> nos dépendances<br />

entre les données. Pour cela, nous avons utilisé les possibilités <strong>de</strong> l outil Dot pour représenter<br />

chaque type d information <strong>de</strong> la base <strong>de</strong> données sous forme d un n ud ou d un lien dans le<br />

graphe. Ainsi, chaque fonction (Call, main, Return) est représentée par un rectangle, rouge<br />

pour la fontion main() et noir pour les autres, les définitions <strong>de</strong> variables (Def) sont<br />

représentées par un n ud vert en forme d ellipse, l utilisation d une variable est représentée par<br />

un line allant <strong>de</strong> la l igne d origine <strong>de</strong> sa valeur vers la ligne où elle est appellée. Les lignes<br />

d instructions sont alors représentées par leur i<strong>de</strong>ntifiant <strong>de</strong> ligne unique (numéro <strong>de</strong><br />

ligne:numero d appel) et alignées verticalement à gauche du graphe <strong>de</strong> dépendance, tel un<br />

axe <strong>de</strong> mesure, par ordre d appel dans le programme. Nous pouvons visualiser cette<br />

représentation graphique sur la figure 21, qui définit une variable x (i<strong>de</strong>ntifiée par 1-0) puis<br />

retourne sa valeur avec la fonction return.<br />

var2.c<br />

1 int main()<br />

2 {<br />

3 int x;<br />

4 x = 12;<br />

5 return x;<br />

6 }<br />

Figure 21. Graphe <strong>de</strong> dépendances <strong>dynamique</strong>s <strong>de</strong> données pour "var2.c"<br />

Nous pouvons voir sur cette représentation graphique, que les n uds du graphe son positionnés<br />

au même niveau que les i<strong>de</strong>ntifiants <strong>de</strong> leurs ligne d appel sur l échelle d appel <strong>de</strong>s instructions (à<br />

gauche du graphe), sauf pour la fonction main qui est i<strong>de</strong>ntifiée par son nom et son compteur<br />

d appel. Ainsi, l échelle <strong>de</strong> gauche indique que le fichier analysé commence par la fonction main<br />

et que la <strong>de</strong>rnière ligne <strong>de</strong> co<strong>de</strong> exécutée est la ligne 5:1 (end). Le graphe <strong>de</strong> dépendances à droite<br />

<strong>de</strong> cette échelle nous indique que la fonction main (rectangle rouge) définit une variable en ligne<br />

4:1 (ellipse verte), dont la valeur est renvoyée (fonction return) par l instruction <strong>de</strong> la ligne 5:1.<br />

Les conditions <strong>de</strong>s structures <strong>de</strong> controle telles que if et while, sont représentées par un noed<br />

dans le graphe <strong>de</strong> dépendances en forme <strong>de</strong> losange, définit <strong>de</strong> sorte que si la condition est vraie,<br />

56

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

Saved successfully!

Ooh no, something went wrong!