Visualisation des programmes et programmation visuelle

Lโ€™รชtre humain est dotรฉ de capacitรฉs trรจs dรฉveloppรฉes pour visualiser des informations complexes, ce qui joue un rรดle majeur dans ses processus cognitifs de comprรฉhension et de mรฉmorisation (reconnaissance rapide de motifs, couleurs, formes, etc.). Afin de diminuer grandement la charge cognitive nรฉcessaire ร  la comprรฉhension, il utilise des approches visuelles (ou graphiques) afin de mieux apprรฉhender des notions abstraites ou pour reprรฉsenter le monde qui lโ€™entoure. En effet, lโ€™รชtre humain a plus dโ€™efficacitรฉ ร  comprendre lโ€™information lorsque celle-ci est reprรฉsentรฉe de maniรจre concrรจte (c.-ร -d. dโ€™une faรงon graphique) plutรดt que thรฉorique ou virtuelle. Le rรดle le plus important que la visualisation joue dans le raisonnement humain en gรฉnรฉral et plus particuliรจrement dans le progrรจs scientifique a รฉtรฉ soulignรฉ aussi par les philosophes ร  travers les siรจcles [Has 01].

Gershon [Ger 94] dรฉfinit la visualisation comme suit : ยซย la visualisation est plus quโ€™une mรฉthode de calcul. Cโ€™est le processus de transformation des informations en des formes visuelles, permettant leur observation et leur manipulation. La prรฉsentation graphique rรฉsultante permet de percevoir visuellement des fonctionnalitรฉs et des informations qui sont cachรฉes dans les donnรฉes, mais nรฉanmoins avec lโ€™exigence dโ€™explorer et analyser ces donnรฉesย ยป. Il sโ€™agit donc de fournir ร  lโ€™utilisateur une comprรฉhension qualitative du contenu de lโ€™information.

La visualisation de lโ€™information est dรฉfinie comme lโ€™usage de reprรฉsentations graphiques et interactives supportรฉes par lโ€™ordinateur afin de reprรฉsenter dโ€™une faรงon efficace toute sorte dโ€™informations (c.-ร -d. des donnรฉes souvent abstraites) ร  celui qui lโ€™utilise. Ses reprรฉsentations nรฉcessitent de manipuler des objets graphiques avec leurs attributs (ou indices) visuels (tels que : forme, taille, position, couleur, mouvement, etc.) dโ€™une maniรจre interactive avec diffรฉrents niveaux dโ€™abstraction afin de produire des vues diffรฉrentes pour la mรชme information [And 02, Sol 06]. La visualisation dโ€™information consiste ร  reprรฉsenter les donnรฉes sous forme graphique en utilisant au maximum les capacitรฉs de perception visuelle des utilisateurs et les diffรฉrentes dimensions perceptuelles fournies par les reprรฉsentations graphiques [Has 07]. Il sโ€™agit dโ€™afficher un maximum de donnรฉes dans un espace restreint tout en conservant une bonne lisibilitรฉ pour quโ€™elles puissent รชtre analysรฉes. La reprรฉsentation graphique permet de reflรฉter les propriรฉtรฉs structurales des donnรฉes par lโ€™arrangement spatial des objets, ou encore de reflรฉter les propriรฉtรฉs intrinsรจques de ces donnรฉes par les attributs visuels des objets graphiques.

La visualisation dโ€™information nous permet: (1) dโ€™exploiter les caractรฉristiques du systรจme visuel humain pour faciliter la manipulation et lโ€™interprรฉtation de donnรฉes variรฉes, (2) de faciliter la dรฉcouverte de connaissances grรขce ร  des reprรฉsentations visuelles issue dโ€™une tรขche dโ€™analyse, et (3) de communiquer efficacement les informations ร  travers ces reprรฉsentations.

Visualisation de logiciels

La visualisation de logiciels est une faรงon efficace de comprendre un systรจme logiciel et dโ€™explorer visuellement les informations extraites de celui-ci. Une de ses grandes forces est de pouvoir reprรฉsenter sous des formes familiรจres, souvent en utilisant des mรฉtaphores du monde rรฉel, des donnรฉes intangibles qui ne possรจdent pas forcรฉment une reprรฉsentation naturelle. Les vues de visualisations produites permettent ainsi de tirer profit de la puissance du systรจme de perception visuelle humaine afin dโ€™accรฉlรฉrer le processus de comprรฉhension [Die 07]. Dans ce contexte, de nombreux outils de visualisation ont รฉtรฉ proposรฉs ces derniรจres annรฉes. Ces outils reprรฉsentent une aide prรฉcieuse lors du dรฉveloppement et maintenance en permettant aux dรฉveloppeurs dโ€™รฉlever le niveau dโ€™abstraction ce qui facilite grandement la tรขche de comprรฉhension de logiciels de grandes tailles en prรฉsentant des informations relatives au code source sous forme claire et concise. Cependant, certains types dโ€™information demeurent difficiles ร  reprรฉsenter de maniรจre efficace [Lan 05b, Lan 06]. Price [Pri 98], a dรฉfini la visualisation de logiciels dโ€™une maniรจre gรฉnรฉrale comme suit: ยซย Software visualization is the use of the crafts of typography, graphic design, animation and cinematography with modern human-computer interaction and computer graphics technology to facilitate both the human understanding and effective use of computer softwareย ยป. Que nous traduisons par : ยซย La visualisation de logiciels est lโ€™utilisation de lโ€™art de la typographie, la conception graphique, lโ€™animation et la cinรฉmatographie avec les techniques modernes dโ€™interaction homme-machine et des outils graphiques afin de faciliter ร  la fois, la comprรฉhension humaine et lโ€™usage efficace des logicielsย ยป.

La visualisation de logiciels ou de programmes (PV, Program Visualization) est largement utilisรฉe dans lโ€™industrie. Cโ€™est un domaine dโ€™intรฉrรชt grandissant qui vise ร  rรฉduire la complexitรฉ de maintenance des grands systรจmes logiciels [Eic 98]. Elle est vue comme un procรฉdรฉ dโ€™abstraction des concepts et dโ€™entitรฉs logicielles (tels que : classes, aspects, packages et leurs dรฉpendances ou relations) et de production dโ€™une reprรฉsentation concrรจte (graphique) et comprรฉhensible. Cette reprรฉsentation visuelle prรฉsente quelques propriรฉtรฉs (ou aspects) du logiciel. En gรฉnรฉral, la visualisation est exigรฉe dont le but dโ€™exprimer et de simplifier un concept abstrait ou un objet rรฉel dโ€™une maniรจre que lโ€™utilisateur de cette visualisation puisse comprendre facilement ce quโ€™il voit et puisse dรฉcouvrir facilement, par exemple, les anomalies de conception et รฉventuellement les localiser en explorant simultanรฉment le code source avec les diverses vues. Cโ€™est une question de reprรฉsentation multidimensionnelle statique ou dynamique en utilisant des objets graphiques et des animations pour prรฉsenter les donnรฉes, les entitรฉs logicielles du code source et leurs relations, etc. Comme le code source est une sorte dโ€™informations, nous considรฉrons la visualisation de logiciels comme une spรฉcialisation de la visualisation dโ€™information dont lโ€™objectif est dโ€™afficher approximativement tout type de donnรฉes abstraites, par contre dans le domaine dโ€™ingรฉnierie des logiciels, la concentration est uniquement sur la visualisation des programmes [Die 07].

Selon la dรฉfinition รฉtroite de John T. Stasko [Sta 98], ยซย la visualisation des programmes est le procรฉdรฉ dโ€™obtention des vues tangibles (graphiques) du code source ou des structures de donnรฉes sous une forme statique ou dynamiqueย ยป. Selon une dรฉfinition large de Stephan Diehl [Die 07], ยซย Cโ€™est une visualisation dโ€™artรฉfacts en relation avec le logiciel et son processus de dรฉveloppement en permettant une comprรฉhension plus rapide et plus prรฉcise de ses fonctionnalitรฉs et ses diverses propriรฉtรฉs (c.-ร -d. structure, comportement, รฉvolution)ย ยป.

Les experts du domaine focalisent leurs recherches sur les techniques de reprรฉsentations graphiques de diverses propriรฉtรฉs (ou aspects) du logiciel [Die 07] :
โ— La structure fait rรฉfรฉrence aux parties statiques et relations du logiciel, c.-ร -d. celles qui peuvent รชtre mesurรฉes ou รชtre infรฉrรฉes sans exรฉcution. Cela inclut le code source, les structures de donnรฉes, le graphe dโ€™appel statique et lโ€™organisation modulaire du logiciel.
โ— Le comportement fait rรฉfรฉrence ร  lโ€™exรฉcution du logiciel avec des donnรฉes rรฉelles et abstraites.
โ— Lโ€™รฉvolution fait rรฉfรฉrence au processus de dรฉveloppement et en particulier au changement du code source pendant lโ€™ajout de nouvelles fonctionnalitรฉs ou la correction des bogues.

Reprรฉsentation graphique de concepts abstraits

Le premier problรจme rencontrรฉ pour reprรฉsenter un logiciel est lโ€™absence de forme concrรจte de ce dernier. Le code source nโ€™a pas de forme si ce nโ€™est que le texte qui le reprรฉsente, ce qui rend sa reprรฉsentation trรจs difficile. De plus, le code a une sรฉmantique qui existe uniquement dans le but dโ€™รชtre comprise par le programmeur et la machine et nโ€™a pas de rรฉalitรฉ en dehors de cet usage. ร‰tant donnรฉ cette problรฉmatique, nous sommes obligรฉs de choisir des formes arbitraires pour le reprรฉsenter. Il est possible alors dโ€™utiliser des formes dรฉjร  existantes ou de les emprunter ร  dโ€™autres domaines [Die 07]. Les caractรฉristiques visuelles des รฉlรฉments composant une reprรฉsentation graphique sont la base de tout type de visualisation. Leur choix doit se faire ร  la fois dans un souci dโ€™efficacitรฉ pour une meilleure comprรฉhension; un souci dโ€™efficacitรฉ en terme dโ€™affichage par la machine et dโ€™esthรฉtisme pour lโ€™analyste. La justesse de ces caractรฉristiques fait la diffรฉrence entre les bons et les mauvais outils de visualisation [Die 07]. Un concept abstrait du programme est une connaissance conceptuelle ร  un haut niveau dโ€™abstraction. La reprรฉsentation des objets abstraits est difficile parce quโ€™elle ne concerne pas des objets tangibles qui ont dรฉjร  des reprรฉsentations graphiques dans nos esprits. Cette reprรฉsentation prรฉsente une construction logique plutรดt quโ€™une construction physique. Une question se pose alors, comment transformer les entitรฉs logicielles et leurs relations en des reprรฉsentations graphiques significatives ? Face ร  la diversitรฉ et au nombre grandissant de problรจmes traitรฉs, les objets mathรฉmatiques (p. ex. les graphes, les automates, etc.) permettant un bon niveau dโ€™abstraction sont devenus incontournables. La thรฉorie des graphes permet de simplifier un problรจme donnรฉ pour mieux รฉtudier les relations de ses รฉlรฉments. Par exemple, un graphe est dรฉfini par un ensemble dโ€™รฉlรฉments appelรฉs noeuds, un nล“ud est une abstraction sur un objet. Le domaine de visualisation ne peut รชtre traitรฉ sans aborder les techniques dโ€™interaction afin de permettre une exploitation rรฉelle des vues produites. En effet, la perception est indissociable de lโ€™action dโ€™interaction ; lโ€™รชtre humain est capable dโ€™extraire des informations dโ€™une interface sโ€™il peut agir directement et rapidement sur cette interface. Lโ€™interaction sera donc mise en avant dans les diverses approches de visualisation [Sol 06, Die 07]. La possibilitรฉ dโ€™explorer rapidement un systรจme logiciel de grande taille et de le quantifier, ร  lโ€™aide des vues interactives, ou dโ€™avoir la possibilitรฉ de comprendre sa forme, afin de dรฉcouvrir rapidement ses entitรฉs et leurs dรฉpendances, reprรฉsente un critรจre important pour une meilleure comprรฉhension durant la phase de maintenance [Lan 06, Die 07].

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

Table des matiรจres

CHAPITRE 1 INTRODUCTION GENERALE
1.1 CONTEXTE DE RECHERCHE ET PROBLEMATIQUE
1.2 MOTIVATIONS
1.3 OBJECTIFS
1.4 ORGANISATION DU MEMOIRE
CHAPITRE 2 SEPARATION AVANCEE DES PREOCCUPATIONS
2.1 INTRODUCTION
2.1.1 SEPARATION AVANCEE DES PREOCCUPATIONS
2.1.2 PROBLEMES RECURRENTS ET IMPLICATIONS
2.1.3 PRINCIPALES APPROCHES ACTUELLES
2.2 L’APPROCHE ORIENTEE-ASPECTS
2.2.1 PRINCIPE ET CONCEPTS DE BASE
2.2.2 ASPECTJ, UNE IMPLEMENTATION REFERENCE
2.3 CONCLUSION
CHAPITRE 3 VISUALISATION DES PROGRAMMES ET PROGRAMMATION VISUELLE
3.1 INTRODUCTION
3.2 VISUALISATION DE LOGICIELS
3.2.1 REPRESENTATION GRAPHIQUE DE CONCEPTS ABSTRAITS
3.2.2 TECHNIQUES DE VISUALISATION
3.2.3 TRAVAUX CONNEXES
3.3 PROGRAMMATION VISUELLE
3.3.1 INTRODUCTION ET TERMINOLOGIE
3.3.2 AVANTAGES ET INCONVENIENTS
3.3.3 CLASSIFICATIONS
3.3.4 TRAVAUX CONNEXES
3.4 CONCLUSION
CHAPITRE 4 CONTRIBUTION ร€ LA VISUALISATION 2D ET 3D
4.1 INTRODUCTION
4.2 VUE DETAILLEE DE Lโ€™APPROCHE
4.2.1 SYSTEME DE VISUALISATION 2D & 3D ORIENTEE-METRIQUES
4.2.2 PARAMETRES IMPORTANTS DE VISUALISATION
4.2.3 METRIQUES CONSIDEREES EN VISUALISATION
4.3 MISE EN ล’UVRE DE L’APPROCHE
4.3.1 VIZZASPECTJ-2D
4.3.2 VIZZASPECTJ-3D
4.4 CONCLUSION
CHAPITRE 5 VERS UNE METHODOLOGIE DE CODAGE HYBRIDE
5.1 INTRODUCTION
5.2 VUE DETAILLEE DE Lโ€™APPROCHE
5.2.1. VERS UNE APPROCHE HYBRIDE DE CODAGE
5.2.2. APPROCHE PROPOSEE
5.3 MISE EN ล’UVRE DE L’APPROCHE
5.3.1 ARCHITECTURE
5.3.2 IMPLEMENTATION
5.4 CONCLUSION
CHAPITRE 6 ร‰VALUATION ET DISCUSSION
6.1 PROJETS SELECTIONNES POUR Lโ€™EVALUATION
6.2 ร‰VALUATION DU SYSTEME DE VISUALISATION
6.2.1 ร‰TUDE DE CAS SUR ยซย VIZZASPECTJ-2Dย ยป
6.2.2 ร‰TUDE DE CAS SUR ยซย VIZZASPECTJ-3Dย ยป
6.2.3 DISCUSSION
6.3 ร‰VALUATION DE Lโ€™APPROCHE HYBRIDE DE CODAGE ยซย HM4AOPย ยป
6.3.1 ร‰TUDES DE CAS PRELIMINAIRES
6.3.2 EXPERIMENTATION DETAILLEE
6.4 CONCLUSION
CHAPITRE 7 CONCLUSION GENERALE

Lire le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *