Etude et implémentation d'un générateur d'interfaces vectorielles à partir d'un langage de description d'interfaces utilisateur

Face à l'évolution rapide des systèmes informatiques et aux changements de type de plateforme, de résolution d'écran et de langage de programmation qui y sont liés, il est de plus en plus difficile de maintenir à jour les logiciels qui doivent, en outre, souvent être disponibles dans plusieurs langues.

Tous ces changements influencent, d'une manièe ou d'une autre, le contexte d'utilisation, qui représente l'environnement global dans lequel l'utilisateur final exécute les tâches liées à l'interface.

Fort de ce constat, l'objectif de ce mémoire est de développer un générateur d'interfaces utilisateur vectorielles multilingues à partir d'une description d'interface indépendante de son contexte d'utilisation. Ceci devrait en effet permettre d'augmenter la portabilité des applications générées et de diminuer le nombre de versions à mettre à jour.

Pour ce faire, dans un premier temps, il conviendra d'analyser les avantages et inconvénients des solutions existantes en matière de génération d'interfaces vectorielles. Ensuite, il sera possible de d'eterminer l'architecture idéale pour notre générateur en nous inspirant des m'ethodes classiques en matière de génération d'interfaces, à savoir l'interprétation orientée serveur et la compilation. En effet, ces deux méthodes présentent à côté de leurs avantages respectifs des inconvénients que nous pensons pouvoir éviter.

Ainsi, le côté dynamique de l'interpréteur orienté serveur est, comme son nom l'indique, contrebalanc'e par la pr'esence indispensable d'un serveur. La compilation, qui génère une interface indépendante, nécessite une intervention (recompilation) lors de chaque modification de l'interface. En outre, après chaque compilation, l'interface générée doit être redistribuée à tous les utilisateurs. L'architecture choisie dans le présent mémoire tentera donc d'allier les avantages de ces deux méthodes.

Dans un second temps, nous nous pencherons d'une part sur le choix d'un langage source permettant une description d'interface indépendante de son contexte d'exécution et, d'autre part, sur le choix d'un langage cible vectoriel et répondant aux objectifs de portabilité, dans lequel nous pourrons générer l'interface.

Après avoir déterminé ces deux langages, nous en établirons les règles de correspondances.
Enfin, nous d'ecrirons l'implémentation d'une solution hybride qui tentera, sur base des analyses préliminaires, de répondre aux objectifs définis. Cette solution hybride implémentée dans le cadre du présent mémoire a été baptisée FlashiXML.
Pour terminer, nous testerons à travers plusieurs exemples, l'efficacité de FlashiXML.
M.Sc. thesis
Université catholique de Louvain, Louvain-la-Neuve, Belgium
2004