VP-SE Research Group (C)

Au-delà de la convivialité: Les logiciels auto-éducatifs

B. Ibrahim;
Département d'Informatique;
Université de Genève;
24, rue du Général Dufour;
1211 Genève 4, SUISSE
Une version Postscript de ce document est disponible ici.

Résumé:

La plupart des logiciels "qui se respectent" bénéficient de nos jours d'une interface utilisateur conviviale et de mécanismes d'aides en-ligne. Pour être utilisées avec efficacité, ces possibilités impliquent toutefois que l'utilisateur sache plus ou moins ce qu'il cherche et ait déjà une idée assez précise de ce qu'il peut et veut faire. Nous décrivons dans cet article une approche qui se veut aux confluents des logiciels d'utilité générale à interfaces conviviales d'une part et des didacticiels d'autre part. Cette approche consiste à intimement combiner utilisation réelle et apprentissage du logiciel, celui-ci prenant l'initiative d'aborder certains concepts que l'utilisateur semble ignorer et dont il pourrait tirer profit dans la situation où il est. Nous présenterons ensuite un exemple concret, qui est en cours de développement dans notre groupe de recherche.

1. Introduction:

L'approche classique de développement de logiciels tel qu'il se pratique de nos jours est le fruit de plusieurs décennies d'expériences et de tâtonnements. Quel que soit le paradigme de programmation choisi (orienté-objet comme en C++, procédural comme en Pascal ou en Ada, fonctionnel comme en Lisp, déclaratif comme en Prolog), le cycle de vie d'un logiciel est maintenant presque toujours le même: évaluation des besoins, spécification générale de l'application, conception des grandes lignes de l'application, conception détaillée de l'interface utilisateur et des différentes fonctions offertes par le logiciel, codage de l'application, tests et maintenance. A cela s'ajoute généralement une activité parallèle portant sur la rédaction d'une documentation (guide de l'utilisateur, manuel de référence) et éventuellement le développement d'un tutoriel d'initiation à l'utilisation du produit. Ce tutoriel est parfois fourni (voire vendu) séparément du logiciel, mais il est de plus en plus commun qu'il soit accessible directement depuis l'application même. Cette combinaison n'est toutefois que superficielle, car le tutoriel ne prend pas en considération les activités passées de l'utilisateur.

Une autre approche visant à aider l'utilisateur débutant consiste à intégrer un mécanisme d'aide en-ligne, que l'utilisateur peut invoquer à tout moment, généralement lorsqu'il éprouve des difficultés. Les simples arborescences de pages d'explications, ou parfois des hypertextes, à travers lesquels l'utilisateur peut naviguer, commencent maintenant à être remplacés par des aides contextuelles qui prennent en compte les dernières actions effectuées. L'utilisateur peut ainsi obtenir des explications complémentaires sur l'erreur qu'il a commise ainsi que des suggestions de "remédiations" [1][5][9]. Encore faut-il, pour que cette information soit pertinente, que l'utilisateur ait utilisé la bonne commande. Un tel mécanisme ne sera, en effet, pas d'une très grande utilité si l'utilisateur ne sait pas ce dont il a besoin ou ne connaît pas tel concept qui pourrait lui être utile dans la situation où il se trouve.

2. Logiciels auto-éducatifs

C'est pour sublimer ces contraintes que le groupe de recherche en EAO et Génie Logiciel du département d'Informatique de l'université de Genève s'est intéressé, en collaboration avec l'équipe du professeur Alfred Bork, de l'université de Californie à Irvine, au concept de logiciel que nous avons baptisé d'auto-éducatif. Ce concept vise le développement de logiciels d'utilité générale pouvant être utilisés potentiellement par des milliers d'utilisateurs qui ne sont pas des informaticiens professionnels, ni même nécessairement des familiers de l'informatique.

Cette approche consiste à ne pas dissocier les fonctions d'apprentissage des fonctions purement opératoires, toute situation d'utilisation devenant alors une situation potentielle d'apprentissage. Ceci a été décrit, par certains auteurs [10], comme des environnements "sans couture" (en anglais, "seamless" environments), c'est-à-dire des environnements de travail dans lesquels il est difficile de distinguer entre les moments où l'on travaille et les moments où l'on apprend.

Appliquée aux logiciels, cette approche consiste à se préoccuper, tout au long du développement d'un logiciel, des différentes catégories d'utilisateurs et d'inclure dans le logiciel tout ce qui est nécessaire pour que les utilisateurs puissent, quels que soient leur bagage et leurs connaissances préalables, utiliser et, le cas échéant, apprendre à utiliser efficacement ce logiciel et les concepts qui le sous-tendent. Le logiciel prend alors un rôle actif: l'utilisateur garde le contrôle du déroulement du programme, mais le logiciel peut prendre des initiatives et faire des suggestions que l'utilisateur peut choisir d'ignorer ou d'accepter. L'ordinateur n'est plus maître ou esclave; il devient un collaborateur.

Cette approche a un intérêt pédagogique indéniable puisqu'elle permet de fournir des explications ou d'introduire de nouveaux concepts "in situ", c'est-à-dire dans une situation où ils ont un sens, au moment où ils sont le plus utiles et, par conséquent, le plus à même d'être compris et assimilés. Cela nécessite de collecter, pour chaque utilisateur, des informations tout au long de l'utilisation du produit afin de déterminer le "profil" de cet utilisateur et d'adapter en conséquence le dialogue homme- machine. Le facteur temps constitue un aspect à prendre aussi en considération car, même lors d'une utilisation fréquente, l'utilisation de certaines fonctions rarement usitées peut comporter des difficultés. On peut ainsi imaginer que les savoirs acquis par un utilisateur se périment s'ils ne sont pas mis en żuvre pendant un certain laps de temps.

Cette notion de profil de l'utilisateur permet aussi de concevoir une interface adaptative qui évolue en fonction de l'évolution de l'utilisateur, au fur et à mesure que celui- ci acquiert de l'expérience dans l'utilisation du logiciel. On peut, par exemple, envisager d'afficher des menus très explicites pour un utilisateur débutant, puis rendre ces menus de plus en plus concis au fur et à mesure que l'utilisateur s'est habitué à les utiliser. Nous manquons toutefois d'expérience pratique sur ce plan et la question reste ouverte quant à savoir si une telle interface "à géométrie variable" constitue réellement une amélioration. Il conviendra, en effet, de vérifier si cette technique n'a pas un effet psychologique déstabilisant allant à l'encontre du but visé.

Notre recherche dans le domaine des logiciels auto- éducatifs comporte deux volets principaux: d'un côté, la recherche de techniques appropriées de description, spécification et implantation de telles applications et, d'un autre côté, la recherche sur les aspects psychologiques et sémiotiques du dialogue homme-machine que ces applications induisent pour déterminer, parmi toutes les possibilités adaptatives de l'interface homme-machine, celles qui ont une incidence positive sur l'efficacité d'apprentissage et d'utilisation.

Notre approche va quelque peu à l'encontre de la tendance actuelle en matière de développement d'interfaces utilisateur qui est reflétée par l'utilisation de plus en plus répandue de générateurs d'interfaces graphiques. La tendance est, en effet, de clairement dissocier la spécification et l'implantation de cette interface de la spécification et de l'implantation des fonctions opératoires que cette interface doit activer. Cette dichotomie franche a pour intérêt de faciliter le développement de l'application ainsi que la standardisation de l'interface de toute une série d'applications partageant alors la même apparence ("look and feel") et permettant ainsi à l'utilisateur de réutiliser, pour de nouvelles applications, certaines connaissances opératoires qu'il aurait acquises précédemment lors de l'utilisation d'autres applications.

A l'opposé, notre approche repose sur une étroite dépendance entre la spécification de l'interface utilisateur et celle les fonctions opératoires et des concepts de l'application. Nous devons donc, pour cela, utiliser une méthodologie de développement différente qui soit mieux appropriée au contexte, les méthodologies et outils classiques de développement d'interfaces n'étant pas adaptés aux considérations d'ordre pédagogique.

3. Le projet "Friendly Mailer"

Il nous a paru impensable de faire de la recherche dans le domaine des logiciels auto-éducatifs sans développer ne serait-ce qu'un prototype d'un tel logiciel. Nous avons choisi pour cela un type de logiciel qui ait un intérêt pour un vaste public et, en particulier, pour des gens n'ayant que peu d'expérience, voire aucune expérience, avec l'informatique. Notre choix s'est donc porté sur le courrier électronique [2][3] car c'est un outil qui est, pour l'instant, principalement utilisé par des informaticiens mais qui est promis à une large diffusion, bien au-delà des cercles d'initiés. Il est donc important qu'un tel outil puisse être à la portée d'à peu près tout le monde.

Un système de courrier électronique est généralement composé de deux principaux sous-systèmes: d'une part, un sous-système chargé d'assurer le transfert, sur le réseau, de messages envoyés par les utilisateurs ainsi que la réception de messages destinés aux utilisateurs du système ("message agent" dans la terminologie anglo-saxonne) et, d'autre part, un sous-système servant d'interface avec l'utilisateur, lui permettant de composer un message à envoyer, de vérifier si de nouveaux messages sont arrivés, d'archiver ou d'imprimer les messages reçus, de gérer des pseudonymes, etc. ("user agent" dans la terminologie anglo-saxonne).

Si la partie "message agent" est, par la force des choses, très standardisée (à défaut de quoi les ordinateurs ne pourraient pas communiquer entre eux pour transférer des messages), un problème majeur que nous devions prendre en considération est le fait qu'il n'existe aucun standard quant à la partie interface avec l'utilisateur ("user agent"). Les solutions les plus diverses ont été choisies par les différents constructeurs de gros ordinateurs et par les fournisseurs de logiciels pour ordinateurs personnels. A cette diversité s'ajoute aussi la diversité des équipements utilisés pour accéder à ces systèmes, allant du simple terminal d'ordinateur ne permettant d'afficher que du texte (du genre terminal VT100) aux puissantes stations de travail graphiques, en passant par les ordinateurs personnels.

C'est pour ces raisons que nous avons choisi de ne pas imiter d'interface existante et de baser notre implantation sur ce qui pouvait constituer un dénominateur commun à l'ensemble des machines susceptibles d'être utilisées pour du courrier électronique: le terminal VT100. Il existe en effet des émulateurs de ce genre de terminal sur quasiment tous les ordinateurs personnels ou stations de travail. Ceci n'est toutefois qu'un choix d'implantation, la spécification décrivant à divers endroits le comportement de l'interface si l'utilisateur disposait d'une souris sur sa machine. Ce choix n'empèche d'ailleurs pas que l'interface comporte, entre autres, des menus jaillissants ou déroulants, des listes à selections multiples ainsi que d'autres "gadgets" qu'il est plus commun de voir dans des interfaces basées sur l'utilisation d'une souris.

Tout utilisateur de courrier électronique, qu'il soit novice ou professionnel, voudra commencer à recevoir et à envoyer des messages aussi rapidement que possible. Bien d'autres fonctions sont disponibles, mais elles sont secondaires en regard de ces deux premières. La question que nous nous sommes posée est donc de savoir s'il était possible de combiner l'apprentissage de l'envoi et de la reception de messages avec l'utilisation de ces mêmes fonctions.

D'une façon plus générale, nous avons essayé de concevoir l'interface-utilisateur de sorte qu'un concept ne soit abordé que lorsque le besoin s'en faisait sentir. Par exemple, la notion de classement des messages dans des "folders" (terme technique utilisé pour désigner quelque chose qui s'apparente à un dossier pouvant contenir plusieurs messages) n'est abordée par le logiciel qu'à partir du moment où l'utilisateur a suffisamment de messages pour qu'un classement se justifie. Il va de soi que l'utilisateur peut invoquer la fonction de classement à tout moment, même si le logiciel ne l'a pas encore considéré comme nécessaire. Tout cela fait partie de notre conception du logiciel comme un assistant "intelligent", c'est-à-dire obéissant, mais pas nécessairement passif pour autant.

Un prototype de ce système est en cours d'achèvement. Sa spécification ainsi que sa réalisation ont été faites à l'aide d'un environnement de développement de didacticiels faisant aussi l'objet de nos activités de recherche [6][7][8][4]. Nous développons en parallèle deux versions: l'une pour station de travail Sun utilisant le système de messagerie EAN et l'autre pour Vax/VMS utilisant Vax- Mail. La réalisation en parallèle de deux implantations nous permet d'assurer un haut niveau de portabilité de l'application ainsi produite.

4. Références:

Site Hosting: Bronco