Cours IHM
Cours IHM
Cours IHM
Enseignant: M. LABENI
1. Introduction
2. Définitions
2.1 Ergonomie
2.2 Programme ergonomique
2.3 Tâche, tâche élémentaire et décorations
2.4 Le modèle de tâches
2.5 Identification d'une tâche
2.6 Du modèle de tâches à l'IHM
2.7 Conception IHM et génie logiciel
3. Obstacles et risques
4. Les étapes du processus de développement et IHM
4.1 L'ancrage de l'ergonomie dans le model en V
4.2 Besoins fonctionnels et cahier des charges
5. Le plan qualité et spécifications externes
5.1 Le plan qualité
5.2 Les spécifications externes
5.3 Le formalisme UAN: User Action Notation
5.4 Le formalisme HTA: Hierarchical Task Analysis
5.5 Le formalisme MAD : Méthode analytique de description de tâches.
5.6 La méthode Diane+
6. Architecture logicielle des IHMs
6.1 Principe
6.2 Les étapes de développement
6.3 Les modèles de référence
7. Les formalismes de validation des IHMs
7.1 Les formalismes à états (diagrammes à états).
7.2 Les formalismes à événements (scénarios).
7.3 Les formalismes hybrides (réseaux de Petri).
1
1. Introduction
La conception des systèmes interactifs telle qu'on la pratique en ergonomie et les processus
de développement du génie logiciel s'effectuent le plus souvent de manière disjointe (une
équipe IHM et une autre pour la conception interne) et lorsque la collaboration existe la
collaboration entre les équipe partenaires soufre de l'absence de support commun (modèles de
la tâche, notations et outils partagés), comme solution à ce problème les hommes du domaine
des IHM ont inventé des nouveaux modèles qui prennent en compte l'aspect interactif des
systèmes (applications) par exemples: La méthode Diane+ (modèle de la tâche), le
formalisme UAN (User Action Notation) et le formalisme HTA (Hierarchical Task Analysis).
Ces solutions sont intégrées aux processus génie logiciel.
2. Définitions:
2.1 Ergonomie: elle consiste à améliorer l'interface homme machine, en rendant l'outil le plus
simple et le plus logique possible aux yeux et aux caractéristiques de l'utilisateur.
2.2 Programme ergonomique: est une application utilisable sans avoir à se référer à l'aide en
ligne et diminue au maximum le nombre d'étapes nécessaires à l'utilisateur pour obtenir le
résultat recherché.
2.3 Tâche, tâche élémentaire et décorations:
Une tâche consiste en :
• un but (état souhaité) ; et
• une procédure pour atteindre ce but.
Une procédure est un ensemble de sous-tâches liées par :
• des relations de composition ; et
• des relations temporelles.
Une tâche abstraite (i.e., un nœud) est une tâche décomposable en sous tâches ou en tâches
élémentaires (atomiques), une tâche élémentaire (une feuille de l'arbre) est une tâche qui
correspond à une action physique.
Une action physique est une opération sur un dispositif d’entrée/sortie qui provoque un
changement d’état du dispositif (clic, mouvement, affichage, etc.)
Les modèles de tâche sont des structures arborescentes dont les nœuds sont les buts et les
sous-arbres sont les procédures pour atteindre ces buts.
Les nœuds peuvent être décorés par :
• les concepts du domaine (objets référencés, i.e. paramètres, variables globales ...) ;
• les pré-conditions et les post-conditions ;
• la fréquence ;
• la complexité ;
• la criticité (niveau de danger, caractère irrévocable) ;
• les contraintes temporelles (durée maximale) ;
• l’acteur responsable de l’exécution de la tâche (utilisateur et/ou système) ;
• toute autre information pertinente (selon le domaine).
2.4 Le modèle de tâches: Les modèles de tâches sont des descriptions logiques des activités à
réaliser pour atteindre les objectifs des utilisateurs. Ils se sont révélés utiles pour concevoir,
analyser et évaluer les applications logicielles interactives. Les modèles de tâches décrivent
2
comment les activités peuvent être rréalisées
éalisées pour atteindre les objectifs des utilisateurs lors de
l’interaction avec l’application considérée.
Ces modèles permettent en général d'exprimer les caractéristiques suivantes:
la décomposition d'une tâche en sous sous-tâches
tâches (avec éventuellement une typologie de tâche)
des relations d'ordonnancement temporel des sous sous-tâches
tâches (séquence, alternative,
parallélisme, etc.)
les objets utilisés pour accomplir une tâche ou une action,
prédire
dire ou expliquer les performances d’un utilisateur dans un environnement donné.
2.5 Identification des tâches
tâches: identifier une tâche consiste à :
Identifier
dentifier l’objectif que cherche à atteindre l’utilisateur llorsqu’il
orsqu’il se sert du système.
Identifier leses informations dont il a besoin.
Connaître la tâche permet donc de structurer l’interface selon le point de vue de
l’utilisateur.
Pour analyser le besoin des utilisateurs, on procède généralement en deux étapes :
Des interviews qui permettent d’identifier la tâche prévue (ce qui doit être fait)
Cette analyse est ensuite consolidée par l’observation des utilisateurs afin de
comprendre l’activité effectivement réalisée (c-à-d, faireaire rédiger des scénarios par
des utilisateurs
rs représentatifs, ou à défaut soi-même, et ça permet d’identifier ses
activités).
Tâche
abstraite
3
2.6 Du modèle de tâches à l'IHM:
Le modèle de tâches représenté par un arbre des tâches est segmenté en espaces de travail
(maquette ou interface abstraite), les relations entre les tâches permettent de déduire les
enchaînements entre les espaces de travail. Et l’interface concrète instancie les espaces de
travail en fenêtres ou canevas et le contenu des espaces en objets d’interactions.
non
4
3. Obstacles et risques
Le premier obstacle est donc d'éliminer les ergonomes des équipes de développement sous
prétexte que l'on dispose des générateurs d'interfaces, en effet ces générateurs d'interfaces ne
font pas du développeur un spécialiste en ergonomie. Le second risque est de croire que
l'exploitation sauvage des technologies modernes va permettre d'améliorer les interfaces, ici
on évoque les systèmes à base des réalités virtuelles, les systèmes multimédias mais aussi les
interfaces multi-modales (systèmes de sécurité).
Malgré que les progrès des systèmes de reconnaissance et de synthèse permettent aujourd'hui
d'augmenter les capacités sensori-motrices et représentationnelles des applications, il
convient aussi de s'interroger sur leur adéquation aux besoins, aux objectifs et aux
caractéristiques de l'utilisateur (On doit respecter l'aspect ergonomique pendant le
développement de ces applications).
5
Figure 3: Les étapes de modèle en V avec l'intégration de l'ergonomie dans le processus de
développent.
La figure 3 montre la structuration du processus de développement du modèle V en étapes,
la pente descendante du V couvre les étapes de transformation progressive du système depuis
la définition des besoins jusqu’à sa production logicielle. Sur la pente ascendante, à
chacune des étapes de réification correspond à un ensemble de tests qui permettent de
vérifier et/ou de valider l’étape en regard du code produit.
L’analyse des besoins permet d’établir, en relation avec le client, les services requis du
système et les contraintes de développement. Cette activité donne lieu à un cahier des
charges qui sert de document contractuel entre l'entreprise et le client.
6
Le codage, il s'agit de l'implémentation des solutions dans un langage de programmation
avant de faire les tests unitaires. Ces derniers permettent de vérifier que les composants
modulaires du système répondent chacun à leurs spécifications.
Les tests d'intégration servent à vérifier que les modules réalisés indépendamment
interagissent correctement.
Les tests du système servent à vérifier que les éléments de la solution exprimés dans la 2ème
étape sont présents. Ici, nous pénétrons à nouveau dans un espace commun à l’ergonome et
au développeur.
Les tests d’acceptation permettent de vérifier que les besoins exprimés dans le cahier des
charges sont couverts. C’est le dernier contrôle avant la livraison du produit.
D’autres contraintes doivent être spécifiées dans le cahier des charges et notamment :
- le guide de style (il convient de ménager les habitudes du client),
- la portabilité de l’IHM sur différentes plates-formes (Linux, Windows , Macintosh, etc.) et
aussi sur différents équipements portables,
- la globalisation du logiciel et sa capacité de localisation, c’est-à-dire son adaptation aux
différentes cultures et langues vernaculaires (le caractère international d’un logiciel va
bien au-delà de la simple traduction linguistique, il doit prendre en considération la culture et
les traditions des peuples).
7
5. Le plan qualité et spécifications externes (pente ascendante)
5.1 Le plan qualité
Le plan qualité, qui fait généralement partie du cahier des charges, englobe les tests
d’évaluation du V. Il précise la qualité requise, les métriques et les moyens de mesure.
McCall était le premier qui caractérise la qualité en termes de facteurs et de critères. Parmi
ces facteurs, nous relevons l’utilisabilité. Cette dernière se mesure au moyen de deux
facteurs: la facilité d'apprentissage (souplesse) et l'opérabilité (robustesse). Ensuite les
spécialistes de l'ergonomie ont orienté la notion de l'utilisabilité vers un ensemble de
propriétés précises (critères précis) telles:
L'observabilité: elle exprime la capacité pour l'user d'explorer l'état interne du système au
moyens de commandes articulatoires (ou passives) (c'est-à-dire qui ne modifient pas l'état du
noyau fonctionnel) telles que zoom, défilement, etc.
Adaptabilité: capacité du système à s'adapter à l'user sans intervention explicite de sa part.
Plasticité: capacité du système à s'adapter aux variations des ressources interactionnelles et
de calcul tout en conservant la continuité ergonomique. Exemple : IHM d'un agenda sur smart
phone ou sur PC.
Révisabilité: Capacité pour l'user de réviser un message avant de l’émettre.
Atteignabilité: Capacité du système à permettre à l'utilisateur de naviguer dans l’ensemble
des états observables du système. Un état q est atteignable à partir d’un état p s’il existe une
suite de commandes { ci } qui font passer de l’état p à l’état q.
Ces propriétés sont pertinentes à la fois pour les tests d’ergonomie et la conception
logicielle. Nous allons voir leur intégration dans les modèles conceptuels d’architecture
tel PAC-Amodeus. Ces modèles, qui concernent l’étape de conception globale du système,
jouent le rôle de charnière entre la conception ergonomique et la conception logicielle (Il est
donc important qu’ils véhiculent les bonnes propriétés).
8
du système et d'augmente la qualité du processus de développement mais exige une
équipe pluridisciplinaire.
Les étapes des méthodes de conception centrées utilisateur sont:
1) Analyser l’activité des utilisateurs
Nominale
Exceptionnelle
2) Identifier les concepts (contexte)
3) Énumérer les opérations (tâches)
4) Organiser ces opérations (hiérarchie de tâches)
5) Décorer les tâches
6) Évaluer la décomposition
7) Si nécessaire, raffinement de cas d’utilisation.
Description de l'UAN:
L'interaction (ensemble de tâches utilisateur) est modélisée par des notations sous
forme de tables.
L'UAN représente le comportement User-Interface comme ils accomplissent une
tâche ensemble.
Basé sur la tâche comme élément primaire d'analyse.
L'interface compète est vue comme une hiérarchie des tâches non ordonnées.
Le niveau le plus bas d'une description UAN représente :
o L'action utilisateur (User Actions)
o La réaction du système (Interface FeedBack)
o Le changement d'état (Interface State)
À tous les niveaux, les actions et les tâches utilisateur sont contraintes par les relations
temporelles suivantes: Ordonnancement, imbrication et simultanéité (tâches parallèles) et
complétées par des scénarios (séquence d'images écrans) plus des diagrammes de transitions
d'états.
Syntaxe UAN: les tâches sont décrites sous forme tabulaire comme suit:
Task: <Name>
User Actions Interface FeedBack Interface State
Éléments d'UAN:
Les objets et les actions:
: Bouton de la souris.
9
⋀
: En haut.
⋁
: En bas.
[ ]: Contexte d'un objet.
∼: Déplacer le curseur.
: Saisie des caractères (Keyboard).
" ": Commande littérale (ligne de commande).
( ): Saisie du nom d'un fichier.
( = [ , ]|[ , − 0, 9] ): Expression régulière pour contrôler la saisie.
[ ]
∼ , : Un nombre arbitraire de répétitions (inclut 0), exemple: déplacer un objet.
∗
Exemples:
a) Actions utilisateur:
Imagine a supposed description in a user manual for the task of selecting a file icon. (For
purposes of introduction, only the user action portion of task descriptions are described
in this section, this task might be described in prose as:
The ∼ denotes moving the cursor, in this case into the context of the file icon.
The second line represents depressing ∨ and releasing ∧ the mouse button (M). Even
this simple example illustrates the brevity and readability of UAN.
Let us describe another task, moving a file icon, which can be stated in prose as :
(1) move the cursor to the file icon. Depress and hold down the mouse button.
Depressing the mouse button selects the file, indicated by the highlighting of its icon.
(2) with the button held down, move the cursor. An outline of the icon follows the
cursor as you move it around.
10
(3) release the mouse button. The display of the icon is now moved to where you
released the button.
The user action portion of the corresponding UAN description is shown below:
(1) ~ [ ile_icon]M ∨
(2) ~ [x, y]∗ ~ [x , y′]
(3) M ∧
Reading this task description, we again note moving the cursor into the context of the
icon and depressing the mouse button. In the second line, ~ [x, y]∗ indicates movement
of the cursor to an arbitrary point x, y on the screen. The * (iterations in regular
expressions) means to perform, zero or more times, the task to which it is attached.
Thus, ~ [x, y]∗ ~ [x , y′] means to move the cursor to a succession of zero or more
arbitrary points about the screen, ending at the point x’, y’. Finally, in the third line
the mouse button is released.
b) Sélectionner un fichier:
c) Supprimer un fichier:
11
Les énoncés disponibles pour les plans d'une HTA sont:
Dans le formalisme HTA les tâches sont numérotées hiérarchiquement. En général, les analystes
adoptent les conventions suivantes :
La racine porte le numéro « 0 ».
Les sous-tâches de la racine portent un nombre entier (« 1 » pour le plus à gauche et
successivement en allant vers la droite).
Les sous-tâches de tous les autres nœuds portent un numéro qui résulte de la concaténation
du numéro du parent, d’un point et d’un nombre entier (« 1 » pour le plus à gauche et
successivement en allant vers la droite).
L'exemple suivant représente l'activité «faire du café» suivant la notation graphique de HTA. Il est
claire dans cet exemple l'enchainement des tâches par exemple mettre le café et en suite de l’eau et
en fin pousser ON:
12
HTA suivante représente la tâche "Envoyer un courriel":
Au besoin
Comme tout arbre, une HTA peut être représentée sous la forme d’un tableau. La forme
tabulaire (HTA en représentation textuelle) de l'exemple précédent, on peut noter que, par l’ajout
de colonnes supplémentaires audit tableau, il est facile de montrer autant de propriétés que souhaité.
13
5.5 Le formalisme MAD: Méthode analytique de description de tâches
MAD comme HTA est une méthode basée sur une décomposition hiérarchique de la tâche.
Dans sa forme, MAD diffère de l’HTA par la description de chaque nœud de l’arbre
d’analyse qui implique la quantité d’information à fournir pour chaque but ou tâche identifiés
dans la décomposition hiérarchique.
Dans MAD et pour chaque nœud (but ou tâche) il faut entrer les informations suivantes
(indiquées dans la figure 4):
Des informations identifiant la tâche, incluant :
o un nom et un numéro;
o son but (en langue naturelle).
Différentes informations spécifiant les conditions d’exécution de la tâche, incluant :
o l’état initial, soit l’ensemble des objets représentant le monde dans lequel la tâche va
s’exécuter et qu’elle pourra ou non modifier;
o les préconditions, soit un ensemble de prédicats exprimant des contraintes sur les objets
de l’état initial qui doivent être réalisés pour que la tâche puisse commencer;
o le corps de la tâche, qui est une tâche élémentaire (donc, simple, indécomposable ou
dont l’analyse est jugée suffisante) ou alors un ensemble de sous-tâches avec une
14
structure indiquant comment exécuter lesdites sous-tâches. Cette structure devant être
l’une des valeurs suivantes :
o l’état final, soit l’ensemble des objets qui pourraient avoir été créés ou modifiés par la
tâche, ainsi que ceux qui doivent exister après son exécution;
o le résultat, soit un sous-ensemble strict de l’état final qui contient tout ce que la tâche a
créé ou modifié;
o les postconditions, soit un ensemble de prédicats exprimant des contraintes sur les
objets de l’état final qui sont assurément réalisés lorsque la tâche se termine.
Divers attributs affectant l’exécution de la tâche, incluant :
o FAC : lorsque la tâche est facultative;
o @ : lorsque la tâche peut être répétée;
o PRIOR et INTER : les paramètres définissant l’interruptibilité d’une tâche (en
spécifiant une priorité d’exécution qui sera comparée à celle des autres tâches voulant
15
l’interrompre, ainsi que la manière dont l’exécution devra reprendre, s’il y a lieu, après
l’interruption).
La Figure 5 montre comment la tâche « Envoyer courriel » pourrait être documentée selon
MAD.
16
Exemple: La représentation MAD de l'activité " Gestion des ressources"
17
La planification hiérarchique consiste à établir une sorte de plan d'action pour atteindre un
objectif. Exemple pour la tâche "Enregistrer client":
Enregistrer Vérifier OK
Code Client Code Client
Annuler
Vérifier Ok
Enregistrer Enregistrer Nom Client
Annuler
Client Renseignements
Ok
Vérifier
Email Client
Annuler
Taux de Clic 7%
Remise
Clic 10%
Planification hiérarchique de la tâche ''Enregistrer un client"
- la Tâche est l’ensemble des traitements devant être exécutés pour atteindre un but.
-la Tâche Prévue est l’ensemble des traitements permettant un déroulement normal de la tâche (ce
que doit être fait). Dans le cas de la commande de livre, la Tâche Prévue pour un bibliothécaire serait
par exemple : chercher la référence du livre, puis remplir le bon de commande.
-Procédure prévue : elle englobe l'ensemble de tâches prévues, elle est surtout utile pour l’aide et
l’apprentissage, elle fournit la liste ordonnée des opérations à réaliser pour mener à bien une tâche,
et permet de libérer l’utilisateur du problème du choix de l’ordre d’exécution des opérations.
18
-la Tâche Effective est l’ensemble des traitements exécutés lors d’une session de travail (exécution
de l'application). Dans l’exemple de la commande, la Tâche Effective pour un bibliothécaire
serait par exemple : vérifier la disponibilité du livre, remplir le bon de commande, et envoyer le bon
de commande.
-Procédure effective (pour une exécution particulière): elle englobe l'ensemble de tâches effectives,
elle est utile pour optimiser les sessions de travail, un utilisateur régulier exécute généralement la
même séquence d’opérations et afin de gagner du temps et de réduire sa charge de travail, il
peut souhaiter enregistrer cette séquence où ce type d’enregistrement s’appelle une macro (Ceci
se produit déjà dans des logiciels tels qu'Excel ou Word). Avec Diane+, il est tout à fait possible
de recréer ces macros soit à la demande de l’utilisateur (celui-ci construit lui-même ses macros
de la même façon qu’avec Excel) soit de manière automatique (le système est capable de déduire
qu’un utilisateur exécute toujours les mêmes enchaînements).
Le noyau dur de l’ensemble de ces tâches donne naissance aux procédures minimales.
-Procédure minimale: elle correspond au noyau dur des procédures effectives et prévues. Elle est en
général extraite de ces dernières car il est rare que les utilisateurs ou les responsables du
futur système soient capables de la donner immédiatement. La procédure minimale contient d’une
part le contrôle minimum obligatoire sur les opérations et d’autre part le maximum d’opérations
dont l’utilisateur dispose pour le but associé. Elle fait apparaître les précédences correspondant
aux règles de gestion et d’organisation, contrairement aux procédures prévues et effectives qui
utilisent également les précédences pour augmenter l’utilisabilité de l’application
-l’Activité est l’occurrence d’une tâche pour un contexte donné (ici le livre Python 3).
Il faut différencier la notion de tâche de la notion d’activité. La tâche est statique; elle décrit les
traitements à exécuter et éventuellement les enchaînements qui lient ces traitements. L’activité est
dynamique ; elle décrit l’exécution d’une tâche dans un contexte donné. Ainsi la tâche Commander
un livre est statique (remplir le bon de commande, envoyer le bon de commande, etc.) alors
que l’activité Commander le livre Python3 correspond à l’occurrence de la tâche Commander
un livre pour le livre Python 3.
Python 3
19
5.6.1.4 Représentation des opérations
a) Description d’une opération
Une opération est un ensemble de traitements qui permettent de faire passer le système d’un état à un
autre. Ainsi la saisie d’un code client se décomposera en une opération qui récupère le code entré
par l’utilisateur et une opération qui contrôle la validité de ce code.
Une opération Diane+ possède des attributs qui lui donnent différents statuts (Figure 5.2):
o
f
Le troisième attribut concerne le déclenchement des opérations. Celui-ci peut être soit
l’utilisateur soit l’ordinateur. Pour préciser qu’une opération est déclenchée par l’utilisateur, on
lui ajoute ce que nous appelons un déclenchement utilisateur (ou encore un déclencheur) que
nous représentons de la manière suivante (Figure 5.4) :
Par exemple pour l’impression, bien que cette opération soit automatique, elle demande à être
déclenchée par l’utilisateur. De même une consultation doit être déclenchée par l’utilisateur (Figure
5.5) :
Opération
par default
20
Le déclencheur est donc synonyme de boucle sur une opération. La figure 5.6 représente deux
opérations en cascade et avec des déclencheurs, ainsi les séquences ( ) sont autorisées:
(Modifier) Aide
f f
Relation de précédence
Indicative
Permanente
Calculer Impôt
(Enregistrer) f
Sur la figure 5.11, l’opération “A” ne sera considérée terminée que lorsque toutes ses sous-
opérations (“A.1”, “A.2” et “A.3”) le seront également. Or “A.2” contient également des
sous-opérations. Le même processus doit être appliqué pour “A.2”. Donc le processus dans
lequel elles devront se dérouler est : “A” (début), “A.1” (début-fin), “A.2” (début), “A.2.1”
(début-fin), “A.2.2” (début-fin), “A.2” (fin), “A.3” (début-fin), “A” (fin).
Remarque: pour appliquer des contraintes sur les sous-opérations (filles) ces dernières doivent être
facultatives.
Pour représenter une opération mère avec une contrainte sur ses filles, nous employons un cadre
double contenant la contrainte dans sa partie supérieure. Le chiffre de gauche indique le nombre
minimum de filles facultatives à exécuter, le chiffre de droite le nombre maximum. Dans la
figure 5.13, l’opération “A” possède des sous-opérations avec la contrainte “une et une
seule” alors que l’opération “B” a la contrainte “au moins une”.
21
Exemples:
La représentation d’une opération subissant des contraintes sur ses filles ou sur elle-même est:
(Figure 5.17) :
Exemple:
L’opération “A” de la figure 5.16 comporte trois sous-opérations avec la contrainte “au plus une”.
Elle subit également la contrainte de n’être déclenchable qu’une seule fois. Cela signifie que si
22
l’utilisateur la déclenche, il ne pourra exécuter ensuite que “A.1” ou “A.2” ou “A.3” (les deux
“ou” sont exclusifs). Dans les deux premiers cas, il n’aura qu’une seule exécution possible de
l’opération fille, alors qu’avec “A.3” il aura droit à autant d’exécutions qu’il veut (0,n).
Il est donc possible d’utiliser l’une ou l’autre de ces représentations ou bien encore de passer de
l’une à l’autre. Les figures suivantes (Figure 5.20.a, b et c) donnent les représentations pour le ET,
le OU et le OU EXCLUSIF.
23
6. Architecture logicielle des IHMs:
6.1 Principe:
Bien que les modèles d’architecture diffèrent, ils répondent tous au même principe de base de Figure
1 : la distinction entre les services d'une application et les fonctions chargées d'assurer l'interaction
avec l'utilisateur. L'application, appelée aussi Noyau Fonctionnel (NF), regroupe les tâches du
domaine et les opérations qui leur sont applicables. L'interface a la charge de présenter à l’utilisateur
tâches et fonctions et de lui permettre de les manipuler selon un enchaînement défini par le modèle
de tâches (Exemple: Procédure minimale).
24
Par conséquence, un modèle d'architecture pour systèmes interactifs :
• définit une décomposition modulaire ou stratégie de répartition des services du système
interactif
• préconise la séparation entre les services du noyau fonctionnel et ceux de l'interface.
Le Modèle Arch :
Le modèle Arch (UIMS, 1992) s’appuie sur les notions de noyau fonctionnel et de contrôleur de
dialogue.
25
Les pieds de l’arche constituent les composants imposés par la réalité : le noyau fonctionnel réalise
les différentes tâches du domaine (l'application); le composant d’interaction physique, en contact
direct avec l’utilisateur, est mis en œuvre au moyen des objets d’interaction d’une facette (boite de
dialogue). Le contrôleur de dialogue gère l’enchaînement des tâches ainsi que les liens entre les
objets regroupés dans les deux composants voisins : l'adaptateur de noyau fonctionnel et le
composant d’interaction logique. L’adaptateur de noyau fonctionnel sert, pour l’essentiel, à ajuster
les différences de modélisation des objets conceptuels entre le noyau fonctionnel et le contrôleur de
dialogue. Le composant d'interaction logique joue un rôle similaire : il permet au contrôleur de
dialogue de s’affranchir du fonctionnement de la boîte à outils du niveau interaction physique. Le
composant d'interaction logique peut se voir comme une boîte à outils virtuelle qui implémente des
objets d'interaction logique concrétisés par une boîte à outil. La Figure 7 présente un exemple
d'architecture Arch pour un système interactif simple d'interrogation d'une base de données distante :
l'utilisateur spécifie une requête dans un formulaire et obtient les résultats à l'écran sous la forme d'un
tableau.
26
6.3.2 Modèles multi-agent
Les modèles multi-agent, comme PAC (Coutaz, 1987) ou MVC (Krasner et Pope, 1988), structurent
un système interactif en un ensemble d'agents spécialisés réactifs. Ces modèles se caractérisent par
une organisation fortement modulaire, des traitements exécutés en parallèle et une communication
par événements (des stimuli).
Définitions
Un agent est un système de traitement de l'information : il possède des récepteurs et des émetteurs
pour acquérir et produire des événements ; il dispose d'une mémoire pour mémoriser un état. Il
comprend un processeur spécialisé dans le traitement d'une ou plusieurs classes d'événements. Le
résultat d'un traitement se traduit généralement par un changement d'état de l'agent et par l'émission
de nouveaux événements.
Le modèle multi-agent se caractérise par une organisation fortement modulaire, des traitements
exécutés en parallèle et une communication par événements. Ce modèle abstrait est à rapprocher des
modèles à objets pour lesquels il existe des outils de réalisation.
Le modèle PAC:
Comme le montre la Figure 10, PAC (Coutaz, 1987) structure récursivement un système sous forme
d'une hiérarchie d'agents. La hiérarchie permet d'exprimer des relations entre agents et reflète un
continuum de niveaux d'abstraction depuis l'application jusqu'aux éléments fins de l'interaction. Un
agent PAC définit une compétence à un niveau d'abstraction donné. C'est un acteur à trois facettes :
la Présentation définit le comportement perceptible de l'agent, l'Abstraction représente son expertise,
et le Contrôle a un double rôle : (1) il sert de lien entre les facettes Présentation et Abstraction de
l'agent et (2) il gère des relations avec d'autres agents PAC de la hiérarchie. A la Figure 10,
l'Abstraction du niveau le plus haut correspond à la notion d'Application du modèle Seeheim:
27
Et le Contrôle du niveau le plus haut remplit des fonctions similaires au Contrôleur de dialogue:
PAC-Amodeus :
28
Les composants Le Noyau Fonctionnel (NF) et l'utilisateur sont les deux extrêmes du modèle. A
gauche de la Figure 13, le NF réalise les concepts du domaine en ignorant la façon dont ces concepts
sont rendus perceptibles à l’utilisateur. Les autres composants du système, l’Adaptateur de Noyau
Fonctionnel (ANF), le Contrôleur de Dialogue (CD) et les composants d’Interaction Logique (IL) et
Physique (IP), constituent l’IHM du système. L’utilisateur et le NF produisent et consomment des
informations par l’intermédiaire de l'IHM. Ce fonctionnement symétrique laisse libre le choix du
contrôle de l’interaction en fonction du cas à traiter : contrôle par l'utilisateur ou par le NF. Le NF
échange des concepts du domaine ou objet du domaine avec son voisin immédiat : l’adaptateur de
noyau fonctionnel.
L'ANF est une interface conçue pour absorber les changements entre ses voisins directs. Comme
toute frontière, il implémente un protocole. Un protocole comprend généralement trois dimensions :
stratégies temporelles, nature des informations échangées, et mécanisme de liaison. Les stratégies
temporelles instaurent par exemple une communication synchrone ou asynchrone.
On peut vérifier par exemple qu'un automate est vivant ou qu'il ne possède pas de puits.
Un ensemble fini d'états, un ensemble fini d'entrées, un ensemble fini de sorties, une fonction qui
permet de passer à l'état suivant en fonction de l'état précédent et de l'entrée, et une fonction de sortie
29
qui renvoie le résultat en fonction de ces mêmes paramètres, pour représenter plus clairement ces
deux fonctions , on représente la plupart du temps les états finis avec leurs relations sous forme de
diagrammes (Figure 2.15). Il existe toujours un état initial (représenté sur la figure par l'état 0
doublement cerclé), mais il peut exister plusieurs états finals (ici le 1 et le 4). On remarquera
également qu'un état peut s'appeler lui-même une ou plusieurs fois en fonction de certaines entrées.
D'autres formalismes à états : Les grammaires, Les graphes d'enchaînements, Les contraintes, Les
langages visuels…..
L'approche événementielle
La programmation par événements est issue de la réflexion des ergonomes sur la
manipulation des programmes. Cette réflexion avait pour but d’obtenir des logiciels qui soient
dirigés par les utilisateurs et non des programmes qui dirigent les utilisateurs. Les actions de
l'utilisateur sur l’application génèrent des stimuli qui entraînent des changements d'état qui peuvent,
à leur tour, générer de nouveaux événements. L'insertion d'un flash disk, une demande de formatage
ou d'ouverture de fichier, une impression, la saisie d'un mot de passe, l'agrandissement d'une fenêtre,
un scrolling, sont des exemples de stimuli. Le système ERS [HILL 87b], par exemple, est basé sur ce
principe.
Les scénarios:
Les scénarios que nous présentons ici sont utilisés dans la méthode Grai [BERARD 90]. Ils
permettent de représenter non seulement les actions de l'utilisateur et celle de la machine, mais
également de dire qui pilote qui et à quelle occasion. Les scénarios se rapprochent en cela de la
30
méthode Diane+. Nous donnons ci-dessous deux exemples de scénarios. Dans le premier cas,
l’utilisateur agit sur le système à la suite d’un événement (Evt 1) produit par ce dernier. L’action
(A_U 1) de l’utilisateur entraîne une réaction du système (A_M 1).
Dans le même temps, l’utilisateur a eu la possibilité d’agir de nouveau sur le système (A_U
2) ce qui a provoqué une autre réaction du système (A_M 2) ainsi que la production d’un événement
(Evt 2). Dans le second cas, l’utilisateur agit sur le système (A_U 1), ce qui produit un événement
qui déclenche une action machine (A_M 1). Celle-ci achevée, l’utilisateur peut de nouveau agir sur
le système afin de produire de nouveau des événements, etc.
Dialogue modal, c’est-à-dire que l’utilisateur doit attendre que la machine termine le traitement
concernant la dernière action de l’utilisateur avant de pouvoir agir de nouveau.
Chaque élément composite de l'interface (par exemple une fenêtre, mais pas un bouton) est relié à un
de ces graphes. En fait chaque graphe est un Réseau de Petri. La figure 2.18.a représente un
exemple de fenêtre de saisie de mot de passe associée à une fenêtre d'aide, la figure 2.18.b représente
le réseau Rdp associé.
31
D'autres formalismes hybrides : Les objets, Les règles.
32