- 1 -
Générateur
Automatique de
Belle
Interface
Auteur :
Pierre Paquin
Encadrents :
Ronan Keryell
Stéphanie Even
- 2 -
Résumé
De nombreux logiciels utilisés pour la recherche scientifique nécessitent de grandes quantités
de données représentées sous forme de fichiers textes, analysés en entrée de logiciels de calcul
par des parseurs (par exemple Lex et Yacc). L’origine de projet GABI a pour but la création
d’une application capable d’interpréter cette grammaire pour générer automatiquement et
dynamiquement des interfaces graphiques pour ces logiciels. L’outil actuellement en cours de
développement est programmé en JAVA et s’appuie sur JLEX et CUP.
Mon rôle dans le projet G.A.B.I. a été dans un premier temps de faciliter la possibilité
d’ajouts de commentaires dans les fichiers de données. Dans un second temps, il m’a été
demandé d’étudier la généralisation de la possibilité de découper le fichier de données généré
par G.A.B.I., au moyen d’inclusions dans un fichier parent.
Mots Clefs
nérateur automatique d’interface
I.H.M.
Parseurs
Arbres de données
JTREE
Insertion
Remarques
- 3 -
Table des matières :
RESUME 2
INTRODUCTION 4
I.1 LES GUI-BUILDERS 4
I.2 LES GUI-GENERATORS 5
I.3 ET GABI DANS TOUT ÇA ? 5
ETAT D’AVANCEMENT INITIAL DU PROJET 8
2.1 PRESENTATION GENERALE 8
2.2 FONCTIONNEMENT DE GABI 8
2.2.1 FENETRE DE CREATION DE LARBRE 8
2.2.2 FENETRE PRINCIPALE 10
2.2.3 FONCTIONS PROPOSEES 11
2.3 FONCTIONNEMENT DUN ARBRE JTREE 12
2.3.1 LE TREEMODEL 12
2.3.2 LA GESTION DE LA SELECTION 12
2.3.3 LA GESTION DE LAPPARENCE 13
2.3.4 LE JTREE DANS GABI ERROR! BOOKMARK NOT DEFINED.
LA GESTION DES COMMENTAIRES 14
3.1 PREMIERE ESSAI ERROR! BOOKMARK NOT DEFINED.
3.2 REALISATION FINALE 14
3.21.1 DANS PARSER/PARSETREEBUILDER.JAVA 14
3.2.2DANS GRAPHIC/MAINWINDOW.JAVA 15
3.3 CONCLUSION SUR LES COMMENTAIRES: 16
GESTION DE L’INCLUSION: 17
4.1 L’IDEE DE BASE: 18
4.2 REALISATION 18
4.2.1 MODIFICATION AU NIVEAU DES PARSERCOMPOSITES 18
4.2.3 GESTION DE L'AFFICHAGE: 21
4.2.4 AJOUT D'UN DEBUT D'INCLUSION 22
4.2.5 AJOUT DUNE FIN D'INCLUSIONS 23
4.2.6 FONCTION PARCOURS GRAPH: 24
4.2.7 LA TREEMODEL 26
CONCLUSION DE L’INSERTION 28
BIBLIOGRAPHIE 30
LE JTREE 30
RAPPORTS PRECEDENTS 30
INTERFACES AUTOMATIQUES: 30
- 4 -
Chapitre 1
Introduction
Les logiciels scientifiques, développés et utilisés notamment par des instituts de recherche,
requièrent en entrée des fichiers de données relativement complexes et volumineux. Ces
fichiers sont ensuite analysés et interprétés par des parseurs, conçus pour en comprendre la
grammaire. Certaines interfaces graphiques servent à faciliter la saisie de tels fichiers.
Certains outils de nération automatique d'interface existent déjà. Dans sa thèse, Max Schlee
nous explique qu'il en existe deux sortes principales : Les « GUI builder » (Graphical User
Interface Builder) et les « GUI generators ».
I.1 Les GUI-Builders
Ces programmes aidant la conception d'interface font partis des RAD (Rappid Application
Development), c'est à dire qu'ils proposent de créer un programme complet, tout en
permettant de générer facilement son interface. Ils mettent ainsi à disposition du programmeur
un éventail de choix de composants (boutons, listes, cadres, fenêtres ...etc.) qu'il peut à sa
guise intégrer dans son application. D'après Monsieur Schlee, cela correspond à l’adage
« What you see is what you get ». Autrement dit, le programme générera par la suite une
interface correspondant à celle que vous pourriez voir durant la phase de programmation.
Comme exemple, nous pouvons donner des programmes comme Power-Builder, sous
windows, ou QT-Disigner s'appuyant sur la librairie Qt propre à KDE ou Glade qui
fonctionne via la librairie GTK+ qu'utilise GNOME sous linux.
Ce type de génération soulève le problème de l'évolutivité. En effet, une fois générée,
l'interface ne peut plus changer, sans avoir à tout reprogrammer. Or nous aimerions une
solution qui s'adapte à une syntaxe et une grammaire à priori inconnue. De plus, une bonne
partie de la conception reste manuelle, cette solution ne peut donc être retenue. Une autre
solution, bien plus proche cette fois du projet GABI existe. Ce sont les GUI generators.
- 5 -
I.2 Les GUI-Generators
Ce type de générateur d’interface permet de libérer le programmeur de l’aspect « design ».
Comme il est reconnu que le temps de programmation de l'interface est au moins aussi long
que celui du développement du programme, cela est un grand gain de temps, bien que la perte
de liberté pour le design est néanmoins significatif... Ces générateurs peuvent avoir plusieurs
modes de fonctionnement:
- Fonctionnement par vues : Le générateur prend en entrée deux composants : Les Data
models et les views. C'est à dire une forme de syntaxe des données ainsi qu'une liste de ce qui
doit apparaître dans les différentes vues du programme. (Sans expliciter plus la façon dont ils
doivent apparaître) Par la suite, à chaque vue sera associée une fenêtre dont les composants
internes dépendront du Data Model.
- Fonctionnement par frame : Les frames sont des patterns qui sont préprogrammés dans le
générateur. On déclare donc au préalable ce que l'on désire voir, sous forme d'association
pattern paramètre, puis le générateur construira une interface via les frames.
- Fonctionnement par Feature Models : Ce dernier fonctionne grâce à la notion d'arbre proche
de celle utilisée par GABI, que nous expliciterons dans le prochain paragraphe. Le générateur
demande en entrée un ensemble de données sous la forme d'arbres. Chaque noeud de l'arbre
est inclus dans le précédent : par exemple, une roue est incluse dans la voiture qui elle même
peut être incluse dans autre chose. C'est en s'appuyant sur cette notion d'arbre que le
générateur construira une interface.
Cette dernière méthode est intéressante car la notion d'arbre permet une adaptation de
l'interface aux données. Cela nécessite toutefois que l'arbre soit pré défini et donné en entrée
ce qui n'est pas notre cas dans G.A.B.I. En dernier lieu, des outils étant des générateurs
« généralistes », conçus par des designers, ils ne sont généralement pas optimisés et des
fonctions simples peuvent parfois s'avérer difficiles à définir.
I.3 Et GABI dans tout ça ?
Les outils précédents fournissent une aide à la production d'éléments d'interface, mais ne
résolvent pas un problème crucial de notre point de vue qui est que ces interfaces doivent être
revues dès qu'une modification a lieu dans le logiciel interfacé. S'ils sont une aide pour une
partie du travail, ils ne suppriment pas forcément le côté fastidieux de la mise à jour d'une
interface. Le risque est grand alors, soit de figer complètement les choses et de limiter les
perspectives d'évolution d'un logiciel, soit de passer un temps considérable dans la gestion de
l'information. Le but de G.A.B.I. est donc de proposer un générateur d’interface permettant de
construire ce même fichier, en s’appuyant directement sur les parseurs devant analyser le
fichier de données
1 / 30 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!