• Aucun résultat trouvé

III. GDD : Un réseau sémantique comme annuaire

III.1. A. « Choisir » dans le GDD

L’exemple du Choix est intéressant à plusieurs titres : il est simple mais néanmoins

riche ; il est utilisé dans presque tous les systèmes interactifs ; de nombreux interacteurs

l’implémentent (menu déroulant, liste déroulante, boutons radios, cases à cocher,

accumulateurs, menus en fleur, mais aussi des interacteurs spécifiques à des concepts

particuliers tels que le calendrier, le choix de couleurs, le choix de fichiers, etc.).

peuvent intervenir, mais aussi la variabilité des choix ou encore la superficie requise en

surface d’affichage [79 Nogier 2005]. Des recommandations ergonomiques existent

mais elles ne sont pas embarquées dans les environnements de développement. A noter

qu’à l’époque des générateurs d’interfaces, de nombreux travaux ont porté sur

l’informatisation de ces recommandations ergonomiques [101 Vanderdonckt 1993] [43

Farenc 1997]. Il s’agit, par le GDD, de décrire finement tout élément d’IHM de façon à

ce que les règles soient applicables.

La Figure III-56 montre comment les descriptions de systèmes de type « Choisir » sont

organisées au sein du GDD. Pour des raisons de lisibilité, les nœuds d’un même niveau

d’abstraction sont regroupés au sein d’une même zone colorée. Chacune de ces zones

est marquée d’un libellé indiquant le niveau d’abstraction dont elle relève : C&T pour

Concepts et Tâche, AUI pour Interface Abstraite, CUI pour Interface Concrète et FUI

pour l’interface finale.

Eff Poss Spec

||| Marks *

Cont *

Choice in a known set Type: a TYPE

S_poss: set of Type S_eff: set of Type min, max : Integer Constraints: S_eff ⊆ S_poss #S_eff ∈ [min; max] User Task: Specify S_eff Choice in a partially known set

If Specifyer.TaskDone() then Choice.S_eff U= {Specifyer.elmt} Constraints: Spec().Type = Choice().Type Specifyer Type: a TYPE elmt: Type Task: Specify elmt Aggregates Simple choice Constraints: min = max = 1 Restriction of partial/non exclusive Choice a month Constraints: Type = MONTH Accumulator Constraints: Eff().Type = Poss().Type Eff().S_poss = S_eff Poss().S_poss = S_poss\S_eff If Poss().TaskDone() then L_eff U= Poss().L_eff If Eff().TaskDone() then L_eff() \= Eff().L_eff Specializes partial/exclusive Is composed of

Choice by ||| and marks Constraints:

∀m:Marks() • m.Type = Bool #Marks() = #L_poss U{m:Marks() | m.Value = true • m.Obj} = L_eff U{m:Marks() | m.Value = false • m.Obj} = L_poss \ L_eff |||().S_IS = Marks()

||| S_IS: set of OBJECT

Extends Is composed of Marker Type: a TYPE Value: TYPE Obj: OBJECT Concretizes partial/non exclusive ||| without navigation ||| Dialog level Constraints: DS = {c:Cont() • c.DS}

∀is:S_IS • (∃c:Cont() | c.S_IS = {is}) ∀c:Cont() • (∃is:S_IS | c.S_IS = {is})

||| DS0 DSi DS0 DSi ||| ||| with navigation DS0 DSi ||| Cond ||| monospace Constraints: Cond #{i:Integer|DSi.active}=1 Specializes total / exclusive Specializes partial / non exclusive ||| sequence Constraints:

Cond ¬∃i1,i2,i3:Integer | i1<i2<i3 • DSi1.active ∧¬DSi2.active ∧ DSi3.active

||| sequential access Constraints:

Cond ¬∃i:Integer | DSi.active at t

•¬DSi.active at t-1

∧¬DSi-1.active at t-1

∧ ¬DSi+1.active at t-1 Container

S_IS : set of OBJECT

Container Dialog level Constraints: Represents(DS, S_IS)) DS Concretizes total/exclusive Is composed of

TC

AUI

TK torus month chooser Scrollable monospace Implements partial / non exclusive TK Scrollable listbox TK Scrollable listbox Scattering ||| Scrollable listbox Constraints Typeof(|||) = ScrollList ∀m : Marks() • typeof(m) = Hignlighter Linear ||| Matricial ||| A SPACE name A SPACE A SPACE name A SPACE ScrollList Pie ||| Implements partial / non exclusive

CUI

FUI

Concretizes partial / non exclusive Concretizes partial / non exclusive Concretizes partial / non exclusive Concretizes partial / non exclusive Concretizes partial / non exclusive Concretizes partial / non exclusive

Une description informelle est donnée pour chaque noeud. Par exemple, au niveau

C&T, pour la tâche « Choice in a known set » (choix dans un ensemble connu

d’éléments), la description précise que :

• Les éléments à choisir sont tous d’un certain type « Type ».

• Les éléments qu’il est possible de choisir sont regroupés dans l’ensemble

« S_poss » (S pour Set et poss pour possibles).

• Les éléments choisis sont regroupés dans l’ensemble « S_eff » (S pour Set et

eff pour effectifs).

• Deux entiers « min » et « max » désignent le nombre minimal et maximal de

choix effectifs.

• Des contraintes existent : (1) S_eff doit être inclus dans S_poss (2) le

cardinal de S_eff est compris entre min et max.

La tâche « choix d’un mois » est une restriction de la tâche choix au sens où le type des

éléments à choisir est contraint (contrainte : Type = MONTH). Une interface finale TK

est disponible pour ce choix d’un mois (TK Torus month chooser). Cette FUI est une

implémentation non seulement du « choix d’un mois » mais aussi du « choix simple ».

Le « choix simple » (Simple Choice) est une restriction du choix telle qu’un seul

élément peut être choisi (contrainte : min=max=1).

Le système « Choice in a known set » peut être spécialisé (partiellement et

exclusivement) de deux façons : en accumulateur et en choix par

entrelacement/marqueurs. Ces deux spécialisations sont des façons de réécrire le

problème du choix au niveau C&T. L’accumulateur s’appuie sur deux sous choix : le

premier gère les éléments non choisis, l’autre les éléments choisis.

Les accumulateurs séparent les éléments choisis des éléments non choisis.

Récursivement, les accumulateurs encapsulent deux systèmes « Choisir » : l’un porte

sur les éléments non choisis qui passeront en éléments choisis (Poss sur la Figure

III-56) ; l’autre porte sur les éléments choisis qui passeront en éléments non choisis (Eff

sur la Figure III-56). Typiquement, un accumulateur est implémenté au niveau final à

l’aide de deux listes à choix multiples.

Les choix par entrelacement et marqueurs encapsulent deux types de systèmes : un

entrelacement et des marqueurs. Un entrelacement permet de présenter un ensemble de

systèmes à l’utilisateur. Celui-ci peut les réaliser dans n’importe quel ordre et passer de

l’un à l’autre à n’importe quel moment. Les exemples typiques d’entrelacement sont

l’entrelacement en colonne, ligne, matrice, les onglets, les menus ou encore la barre des

tâches sous windows. Un marqueur est fondamentalement un booléen associé à un objet

(par exemple un autre système). Dans le cas du système « Choisir », les marqueurs sont

associés aux éléments à choisir. La marque est vraie si l’élément est choisi, faux sinon.

Les exemples typiques de marqueurs sont les boutons radios, les cases à cocher, les

rectangles englobant ou encore les mises en surbrillance. Le système de choix par

entrelacement et marqueurs entrelace des marqueurs, chacun étant associé à un et un

seul élément à choisir.

Le système « Entrelacement » (|||) permet d’illustrer la relation de concrétisation. Au

niveau AUI, l’entrelacement est concrétisé en un espace de dialogue contenant les

sous-espaces. Chaque sous-espace est associé à un et un seul élément à entrelacer (le modèle

d’AUI de cet élément). Les relations entre la modélisation C&T et la modélisation AUI

Une spécialisation (totale et exclusive) de l’entrelacement au niveau AUI (||| Dialog

level) divise les entrelacements en deux catégories : ceux qui obligent à rendre tous les

éléments à choisir et ceux qui permettent de n’en rendre qu’une partie, le reste étant

accessible par navigation. Les entrelacements par navigation sont eux-mêmes divisés

selon des propriétés qu’on peut exprimer sur le type de navigation qu’ils offrent. Par

exemple, certains obligent à accéder de façon séquentielle aux éléments entrelacés.

D’autres ne peuvent rendre qu’un élément à la fois, etc. Les entrelacements sans

navigation peuvent être distingués au niveau CUI selon des critères géométriques. Les

éléments peuvent être placés en ligne, en matrice, en rond ou encore de façon éparpillée.

L’exemple du choix par entrelacement montre que le GDD peut non seulement être

utilisé comme outil de classification des systèmes interactifs mais aussi comme outil

pour l’exploration de nouveaux systèmes. En effet, ce système de choix est composé par

un entrelacement et des marqueurs. En faisant le produit cartésien de toutes les CUI

d’entrelacement et de toutes les CUI de marqueurs (à la ACE), on peut explorer des

possibilités qui n’avaient encore jamais étés mises en œuvre jusqu’ici. Par exemple, un

entrelacement avec navigation séquentielle combiné avec des marqueurs de type cases à

cocher, ou bien un accumulateur composé d’une liste d’éléments à choisir et d’un menu

en fleur des éléments choisis.

La section suivante montre que les COMET peuvent être classées dans le GDD.