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.

<strong>Analyse</strong> <strong>dynamique</strong> <strong>de</strong> programmes C<br />

Chapitre 1 - Introduction<br />

Ce projet d analyse <strong>dynamique</strong> <strong>de</strong> programmes C, se place dans le cadre <strong>de</strong> travaux <strong>de</strong> recherches<br />

sur l analyse <strong>de</strong> programmes. Ces travaux ont pour but <strong>de</strong> faciliter la compréhension <strong>de</strong><br />

programmes, d ai<strong>de</strong>r les développeurs tenus <strong>de</strong> maintenir <strong>de</strong>s programmes à cerner plus<br />

facilement les actions effectuées par ces <strong>de</strong>rniers et <strong>de</strong> leur éviter la lecture exhaustive <strong>de</strong>s très<br />

nombreuses lignes <strong>de</strong> co<strong>de</strong>s pouvant composer un programme.<br />

Avant <strong>de</strong> détailler les objectifs <strong>de</strong> ce projet, nous commençons par expliquer qu est ce que<br />

l analyse <strong>de</strong> programmes, et les différentes techniques d analyses existant à l heure actuelle. Dans<br />

la <strong>de</strong>uxième section, nous définissons les objectifs du projet d analyse <strong>dynamique</strong> <strong>de</strong> programmes<br />

C. La <strong>de</strong>rnière section donne un aperçu rapi<strong>de</strong> <strong>de</strong>s capacités <strong>de</strong> notre outil d analyse <strong>dynamique</strong><br />

<strong>de</strong> programmes C.<br />

1.1. Qu est-ce que l analyse <strong>de</strong> programmes ?<br />

L analyse <strong>de</strong> programmes est un domaine <strong>de</strong> recherche qui s est développé dans le but <strong>de</strong><br />

comprendre assez rapi<strong>de</strong>ment les propriétés <strong>de</strong>s programmes <strong>de</strong> plus en plus complexes, et dont<br />

la maintenance <strong>de</strong>vient fastidieuse. En effet, il <strong>de</strong>vient nécessaire <strong>de</strong> mécaniser la procédure <strong>de</strong><br />

maintenance d un programme ou du moins d en faciliter la tâche, d autant plus que cette tâche est<br />

la plus coûteuse dans le cycle <strong>de</strong> production d un logiciel. Des étu<strong>de</strong>s ont d ailleurs montré que<br />

20% du coût <strong>de</strong> production est généré lors <strong>de</strong> la phase <strong>de</strong> développement, 40% lors <strong>de</strong> la phase<br />

<strong>de</strong> débuggage et 40% lors <strong>de</strong> la phase d ajout <strong>de</strong> nouvelles fonctionnalités [HAT 97, JAH 00]. Il<br />

est donc évi<strong>de</strong>nt que 80% <strong>de</strong>s dépenses se font lors <strong>de</strong> la phase <strong>de</strong> correction-maintenance d un<br />

logiciel. Ceci explique l importance pour les industries <strong>de</strong> réduire leurs dépenses pour la<br />

maintenance d un programme.<br />

Un analyseur <strong>de</strong> programmes est alors une ai<strong>de</strong> précieuse pour le développeur, car il lui permet <strong>de</strong><br />

comprendre plus facilement ce que fait un programme, en particulier dans le cas où ce <strong>de</strong>rnier fut<br />

développé plusieurs années en arrière et/ ou par différents programmeurs. Un analyseur permet<br />

également <strong>de</strong> détecter plus facilement <strong>de</strong>s erreurs ou <strong>de</strong>s instructions consommatrices en<br />

ressources systèmes, ce qui favorise alors un débuggage et une optimisation <strong>de</strong> co<strong>de</strong> plus rapi<strong>de</strong>s.<br />

Voici une liste possible d utilisation <strong>de</strong>s résultats d outils d analyse [LAN 05] :<br />

Les analyses <strong>de</strong> flots <strong>de</strong> données permettent <strong>de</strong> détecter notamment les variables inutiles<br />

ou les expressions calculées à un point <strong>de</strong> programme donné.<br />

Les analyses d'alias produisent <strong>de</strong>s informations sur le partage entre variables dans les<br />

langages à manipulation explicite <strong>de</strong> pointeurs.<br />

Le filtrage <strong>de</strong> programmes (slicing) consiste à i<strong>de</strong>ntifier les instructions d'un programme<br />

nécessaires au calcul <strong>de</strong> variables données.<br />

Le débuggage est une analyse <strong>dynamique</strong> <strong>de</strong> programmes interactive, qui permet à<br />

l utilisateur <strong>de</strong> spécifier «à la volée » les informations et propriétés qu il désire voir sur<br />

l exécution en cours.<br />

9

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

Saved successfully!

Ooh no, something went wrong!