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].
|
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