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.