24.06.2013 Views

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A chaque phase du traitement, on vérifie que la nouvelle présentation candidate à une taille<br />

qui satisfait à la résolution souhaitée. Si c’est le cas, on choisit cette dernière (on prend<br />

toujours celle en cours et pas une des suivantes car c’est celle-ci qui nécessite le moins de<br />

réorganisation). Sinon, on compare la différence de taille obtenue entre la fenêtre candidate et<br />

la fenêtre de résolution souhaitée et celle pour la fenêtre précédente. En effet, si la différence<br />

diminue, on prendra la nouvelle présentation et on gardera l’ancienne dans le cas contraire.<br />

Cette technique, bien qu’originale, pose parfois quelques problèmes. Le premier repose sur la<br />

vitesse d’exécution. En effet, si le nombre de niveaux et de tâches par niveaux de l’arbre<br />

augmentent, le temps de calcul augmentera également car nous devons envisager tous les cas<br />

possibles.<br />

Une solution serait peut-être de transformer ce problème de sélection en problème<br />

d’optimisation. Nous utiliserions alors une heuristique qui suggérerait à quel moment on<br />

arrête le choix.<br />

Le deuxième problème réside dans le fonctionnement de la technique. En effet, si deux<br />

groupes de tâches feuilles indépendants se situent à un même niveau dans la hiérarchie de<br />

tâches, toutes deux seront réorganisées, ce qui n’est pas toujours souhaitable. De plus, elles<br />

partageront le même nombre de colonnes. Ainsi, même si le comportement général reste<br />

acceptable, certains résultats ne sont pas du tout optimaux.<br />

Aussi, une solution encore plus complète serait de réaliser un mélange entre la première<br />

solution proposée et l’algorithme de Wong [Wong 2002]. En effet, l’algorithme de Wong ne<br />

réorganise les tâches que lorsque la largeur du groupe de tâches est supérieure à celle de la<br />

résolution choisie. Aussi, dans notre cas, ceci serait totalement inutile car notre méthode de<br />

génération automatique d’interfaces semi-concrètes se base sur l’usage d’une seule colonne<br />

par défaut.<br />

Alors, plutôt que de calculer la meilleure combinaison possible dès le départ, nous pourrions<br />

également partir du facteur de coût des tâches pour savoir quel groupe (niveau) réorganiser en<br />

premier (ceci en additionnant les différentes valeurs obtenues). Et ensuite, nous nous<br />

chargerions de continuer la transformation jusqu’à ce que la taille de la présentation soit la<br />

plus proche de celle souhaitée.<br />

Le module Widget Resizing Helper<br />

Ce module a pour but de déterminer une liste de tâche pour lesquelles les OIAs seront<br />

redimensionnés pour atteindre les objectifs de résolution d’écran attendus. Cette<br />

détermination passe par plusieures étapes.<br />

La première consiste à déterminer quels sont les OIAs qui sont redimensionnables et donc,<br />

quelles tâches seront à traiter par la suite. Remarquons que nous n’avons pas admis la<br />

possibilité de redimensionnement pour le widget Canvas car si celui-ci doit afficher des<br />

éléments graphiques, ceux-ci ne seront pas redimensionnés (à moins que la fonction<br />

sémantique d’affichage ne prenne en compte la résolution de l’écran, cas extrême que nous<br />

avons décidé d’ignorer). La deuxième consiste à créer la présentation complète et déterminer<br />

la taille des différents widgets qui la composent. De manière parallèle, nous construisons une<br />

liste de tâches organisées, de manière décroissante cette fois, en fonction de leur importance<br />

relative et récupérons les tailles admissibles pour les widgets de la présentation.<br />

91

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

Saved successfully!

Ooh no, something went wrong!