Le modèle des dispositifs en cascade constitue, nous en sommes certains, une bonne infrastructure pour un outil de configuration à la fois puissant et naturel d'utilisation. Il exploite le concept de connexion logicielle, métaphore qui étend naturellement le paradigme de la connexion physique (section 3.2.1). Les deux entités essentielles pour une application configurable y sont exposées, à savoir les dispositifs physiques et les points d'entrée vers l'application, puis complétées par la notion d'adaptateurs.
L'objectif de l'éditeur interactif d'ICON est d'instrumenter ces concepts par les outils et les techniques d'interaction et de visualisation nécessaires afin d'offrir une configurabilité maximale à un nombre maximum d'utilisateurs. Nous ne nous attendons pas à ce que l'utilisateur moyen soit capable d'employer tous les fonctionnalités d'ICON. En revanche, ICON peut s'adapter à divers degrés d'expertise, et vise non seulement les programmeurs mais un plus large public composé d'utilisateurs avancés. Nous décrivons ce continuum d'utilisateurs dans cette section.
La table 5.7.1 énumère les différentes tâches de configuration qui peuvent être effectuées avec ICON, dans l'ordre croissant de difficulté. Chaque tâche nécessite des pré-requis qui sont spécifiés en deuxième colonne, et qui doivent être cumulés avec les pré-requis des tâches précédentes. Nous donnons également une idée des types d'utilisateurs que nous pensons capables d'effectuer chaque tâche.
La tâche la plus simple (tâche 1.) consiste à choisir parmi plusieurs configurations d'entrée existantes dans une application interactive, par exemple remplacer une configuration standard par une configuration conçue pour des utilisateurs handicapés. Cette tâche peut être effectuée par n'importe quel utilisateur de l'application, pourvu que les configurations disponibles y soient correctement listées et documentées.
Les tâches suivantes, destinées à des catégories particulières d'utilisateurs, sont décrites par la suite.
Comme nous l'avons vu dans le chapitre 4, il est possible d'interrompre temporairement une application pour ouvrir sa configuration d'entrée dans l'éditeur interactif. Cette option est destinée aux utilisateurs avancés, c'est-à-dire à la catégorie des utilisateurs qui sont prêts à consacrer du temps pour personnaliser les outils qu'ils emploient (voir la discussion à ce sujet dans la section 1.4.1). Selon son degré d'expertise, nous pensons qu'un utilisateur avancé peut accomplir une ou plusieurs des tâches qui suivent.
La tâche 2. consiste à personnaliser un dispositif en ajustant ses paramètres. Un exemple consiste à changer le vocabulaire d'un dispositif de commande vocale (voir la configuration-exemple de la figure 4.27). Cela suppose, une fois la configuration d'entrée ouverte dans l'éditeur interactif, que l'utilisateur soit capable de localiser le dispositif à paramétrer dans cette configuration. Cette tâche est facilitée par la labelisation et la documentation des dispositifs, ainsi que par l'utilisation d'infobulles.
La tâche suivante (tâche 3.) consiste à intervertir des dispositifs ou des slots compatibles. Il peut s'agir de remplacer une souris par une tablette graphique pour contrôler le curseur, remplacer une technique d'interaction prédéfinie par une autre, ou encore redéfinir des raccourcis clavier. Les changements de connexion sont aisés à effectuer grâce aux techniques de manipulation directe employées dans l'éditeur interactif.
La tâche 4. consiste à employer un dispositif d'entrée dans une configuration existante en le connectant directement à des dimensions de l'application. Il peut s'agir d'assigner des boutons d'une souris étendue à des commandes, de contrôler le zoom d'un document avec la molette de la souris, ou de connecter la pression d'une tablette à la taille de la brosse dans un logiciel de dessin (configuration de la figure 4.24). Les connexions sont directes, et la seule difficulté ici réside dans les éventuelles incompatibilités de domaines, qui nécessitent l'emploi du dispositif de remise à l'échelle LinearFunc.
La tâche 5. consiste à étendre une configuration d'entrée en ajoutant des traitements de données simples, comme par exemple insérer un filtre passe-bas pour lisser les déplacements du curseur (configuration de la figure 4.30). Ce type de tâche nécessite la connaissance préalable de quelques dispositifs de traitement prédéfinis, et la compréhension du fonctionnement général du flot de données pour être capable d'insérer le dispositif au bon endroit.
Par rapport aux tâches vues précédemment, la tâche 6. est plus complexe. Pour connecter des dispositifs de nature différente, des dispositifs intermédiaires de traitement et de contrôle doivent être employés, ce qui ajoute à la complexité. Par exemple, connecter une dimension continue comme la pression d'un stylet à un canal booléen comme le clic nécessite l'emploi et la paramétrisation d'un seuil. De même, spécifier des valeurs continues avec seulement deux boutons nécessite l'utilisation de techniques d'incrémentation/décrémentation.
Notons que les dispositifs utilitaires de haut niveau fournis par la bibliothèque d'ICON permettent de ramener la difficulté de la plupart des situations courantes à celle d'une tâche de type 4. ou 5.: les dispositifs adaptateurs permettent de relier entre eux des slots ou des dispositifs d'un type particulier, par des techniques génériques simples comme l'incrémentation/décrémentation précédemment évoquée, des techniques plus avancées comme le pointage au clavier (configuration de la figure 4.26), ou encore de véritables techniques d'interaction comme le dispositif QuikWriting (configuration de la figure 4.26).
Néanmoins, les adaptateurs prédéfinis ne répondent pas à toutes les situations, et spécifier de tels mécanismes avec des opérateurs simples peut se révéler extrêmement difficile pour des personnes n'ayant jamais travaillé sur des systèmes à flot de données. La construction d'une configuration d'entrée complète ou la modification de parties importantes d'une configuration existante l'est encore plus (tâche 7). C'est pourquoi ces deux types de tâches sont réservés à des informaticiens sachant programmer ou des scientifiques ayant une expérience des systèmes à flots de données. Dans certains cas, l'utilisation de dispositifs programmables (voir section 4.3.1) peut remplacer avantageusement la composition graphique.
Enfin, il peut se révéler nécessaire lors de la construction d'une configuration d'entrée d'implémenter des dispositifs initialement non présents dans la bibliothèque (tâche 8.). Ce dernier type de tâche est bien évidemment réservé aux développeurs, qui désirent enrichir la bibliothèque de nouveaux adaptateurs et techniques d'interaction ou prendre en charge de nouveaux dispositifs d'entrée.
L'ensemble des tâches que nous avons décrites jusqu'ici sont des tâches de configuration. Cette liste doit être complétée par deux autres tâches: d'abord celle qui consiste à implémenter une application compatible avec ICON (tâche 9.), et qui nécessite une connaissance minimale de la librairie de programmation d'ICON et de ses principaux concepts (une section complète lui sera consacrée). Ensuite, celle qui consiste simplement à utiliser cette application interactive (tâche 0.), et qui ne nécessite absolument aucune connaissance d'ICON. Pour cette dernière tâche, une documentation utilisateur précisant comment utiliser l'application toutefois peut s'avérer nécessaire, en particulier pour des configurations d'entrée qui décrivent des techniques non standard.
Nous avons vu dans cette section comment ICON s'adresse à tout un continuum d'utilisateurs, du développeur d'applications à l'utilisateur final. Nous résumons ici le rôle respectif de chacun.
Le développeur d'applications produit l'application interactive et les dispositifs propres à cette application, et fournit une configuration par défaut, ainsi qu'un ensemble prédéfini de configurations d'entrée destinés à assurer une contrôlabilité et une accessibilité minimales.
L'utilisateur final peut utiliser l'application de manière standard, ou remplacer la configuration par défaut par celle qui lui convient. Il peut également, selon son degré d'expertise, personnaliser de manière plus ou moins poussée des configurations existantes ou en construire de nouvelles, pour éventuellement les partager avec d'autres utilisateurs. Les utilisateurs avancés peuvent également assister des utilisateurs dans la personnalisation de l'interaction.
Enfin, certains développeurs peuvent également de façon indépendante contribuer à enrichir la bibliothèque d'ICON de nouveaux dispositifs, afin de prendre en charge de nouvelles techniques d'interaction ou des dispositifs d'entrée non conventionnels.