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.

5.7 Description du fonctionnement des modules et des structure de données retenues<br />

pour l’application des règles de dégradation<br />

De manière à rester fidèle à la démarche suivie pour la hiérarchie en couches de notre<br />

architecture, nous décrirons chaque structure de données utilisée et algorithme de notre<br />

application par couche et par module, en commençant par la plus basse.<br />

5.7.1 La Couche Description des interfaces <strong>utilisateur</strong><br />

Pour l’unique module qui compose cette couche, nous nous contenterons de décrire la<br />

manière de représenter les éléments pertinents qui seront utilisés par la suite.<br />

Les modèles de la tâche et du domaine<br />

Nous utiliserons pour modéliser les modèles de la tâche et du domaine une structure unique,<br />

permettant de résumer l’information utile et nécessaire à l’application des règles de<br />

dégradation <strong>harmonieuse</strong> que nous avons retenues, ceci permettant également de réaliser dans<br />

la foulée un mapping entre ces deux modèles. Ainsi, nous gagnons en rapidité, toute<br />

l’information restant concentrée en un seul modèle. Bien entendu, le fait de vouloir tout réunir<br />

dans une seule structure peut introduire une certaine limitation dans les possibilités de<br />

l’application mais nous allons montrer que ce n’est pas le cas en ce qui concerne la nôtre.<br />

Voici de manière plus détaillée la manière dont nous représenterons notre modèle :<br />

Notre modèle consistera en un modèle de tâche prioritaire (voir point 5.4.2.1), pour lequel<br />

chaque tâche comportera, en plus des informations qui s’y rapportent, le type de données<br />

manipulé (et donc des éléments du domaine). Pourquoi inclure ces données dans le modèle de<br />

tâche plutôt que de consacrer un modèle dédié aux éléments du domaine ? Simplement car<br />

dans le cadre de notre travail, il n’est pas nécessaire de connaître toute l’information sur le<br />

domaine manipulé. Seul le type de donnée et les valeurs possibles sont utiles.<br />

Ceci pourrait introduire quelques inconvénients car, ne disposant plus que de l’information<br />

sur les attributs et non plus sur les classes, il nous est alors impossible de mettre en liaison<br />

deux tâches manipulant le même attribut. On peut citer par exemple, une tâche de consultation<br />

dans une liste de sélection qui serait suivie d’une tâche de sélection sur le même objet<br />

interactif. Néanmoins, nous sommes partis de l’heuristique qu’une tâche interactive<br />

manipulait un unique objet interactif. De plus, il est très simple de contourner ce problème en<br />

fusionnant les deux tâches de l’exemple en une seule.<br />

Le problème serait plus difficile à résoudre si les tâches n’étaient pas adjacentes. Cependant,<br />

on peut se convaincre qu’une application d’un tel type n’est franchement pas ergonomique car<br />

elle suggère à l’<strong>utilisateur</strong> de revenir sur un objet interactif déjà « visité ». A moins que cet<br />

objet ne se répète sur plusieures présentations séparées, il est réellement peu crédible<br />

d’imaginer un tel cas.<br />

En réalité, le seul inconvénient de ce modèle transparaît si nous décidions d’appliquer une<br />

règle de dégradation sur le niveau Tâches & Concepts. Si nous supprimons une tâche, il n’y a<br />

pas de problème. Par contre, si nous décidons de supprimer une classe ou un attribut, il n’y a<br />

pas moyen de retrouver quelle tâche supprimer. Ceci pourrait néanmoins être résolu en<br />

spécifiant, en plus du type de donnée manipulé, le nom de la classe ou de l’attribut cible.<br />

82

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

Saved successfully!

Ooh no, something went wrong!