IHM Cours22
IHM Cours22
IHM Cours22
Enseignant: M. LABENI
1. Introduction
2. Obstacles et risques
3. Définitions
3.1 Ergonomie
3.2 Programme ergonomique
3.3 Tâche, tâche élémentaire et décorations
3.4 Le modèle de tâches
3.5 Identification d'une tâche
3.6 Du modèle de tâches à l'IHM
3.7 Conception IHM et génie logiciel
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.2.1 Le modèle UAN: User Action Notation
5.2.2 Le modèle HTA: Hierarchical Task Analysis
5.2.3 Le modèle MAD : Méthode analytique de description de tâches.
5.2.4 Le modèle CTT : Concur Task Trees
5.2.5 La méthode Diane+
6. Architecture logicielle des IHMs
6.1 Principe
6.2 Les étapes de développement des architectures logicielles
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 entre
les équipes partenaires elle souffre 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 et méthodes 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)
pour le modèle de tâches et les méthodes Seeheim, H4, MVC, PAC-Amodeus, ..Etc. pour
modéliser l’architecture des systèmes interactifs. Ces solutions sont intégrées aux processus
génie logiciel.
2. 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 (e.g., 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).
2
3. Définitions
3.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.
3.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é.
3.3 Tâche, tâche élémentaire et décorations:
Une tâche consiste en (voir figure 1) :
• 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.
3
3.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
comment les activités peuvent être réalisées pour atteindre les objectifs des utilisateurs lors de
l’interaction avec l’application considérée.
Tâche
abstraite
4
La connaissance de l’utilisateur permet d’analyser son activité (ce qu’il fait indépendamment
du système). Ces résultats sont consignés sous la forme d’un graphe appelé modèle de tâches.
Le modèle de tâches représenté par un arbre de 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.
5
2) La maquette pour des écrans de petite taille
3.7 Conception IHM et génie logiciel: La conception IHM est basée sur l'aspect ergonomique
de l'application par contre la conception génie logiciel est basée sur son aspect fonctionnel:
6
Comme méthodes de modélisation IHM on cite : Diane+, les formalismes UAN et HTA
(permettant d'élaborer le modèle de tâches de notre IHM) et Seeheim, Arch, H4, PAC, etc
(permettant d’élaborer l’architecture logicielle de notre IHM).
7
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.
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.
8
centrent l’analyse sur l’utilisateur et ses activités, alors que les méthodes adoptées par les
informaticiens ignorent ce côté pour ne modéliser que les services et les fonctions internes du
système (noyau fonctionnel). Il convient de ne pas sauter cette étape : il faut au préalable
représenter explicitement l’ensemble des tâches à réaliser, puis dans un second temps,
identifier celles qui devront migrer vers le système (ajouter, modifier, etc.), et celles dont la
migration sera négociée dynamiquement à l’exécution du système par l’utilisateur c à d,
représentant un changement dynamique de l’acteur responsable de l’accomplissement de la
tâche par exemple : les valeurs par défaut, la détection de tâches répétitives puis prise en
charge, la sauvegarde automatique de fichiers … etc.
Figure 4: Modèle en V avec des exemples des modèles IHM conçus pour chacune de ses
étapes.
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à simple traduction linguistique, il doit prendre en considération la culture et les
traditions des peuples).
9
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é de l’IHM en termes de facteurs et de
critères. Parmi ces facteurs, nous relevons l’utilisabilité. Cette dernière est évaluée au
moyen de deux mesures: le guidage (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é (Rob.): 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é (Soup.): capacité du système à s'adapter à l'user sans intervention explicite de sa
part.
Plasticité (Soup.): 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é (Rob.): Capacité pour l'user de réviser un message avant de l’émettre.
Atteignabilité (Soup.): 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).
10
du système et d'augmenter la qualité du processus de développement mais il exige une
équipe pluridisciplinaire.
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 actions:
11
Table 1 : Les symboles modélisant les actions de l’utilisateur
Plus de formalisme:
݇: Saisie des caractères (Keyboard).
݇"ܿ"ݕ: Commande littérale (ligne de commande).
12
݇(݂݈݅݁݊ܽ݉݁): 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.
∼ ሾݔ, ݕሿା : Un ou plusieurs, on peut spécifier.
Exemples:
a) Actions utilisateur:
La description de la tâche ‘Sélectionner un fichier’ (dans cet exemple seulement la partie des
actions est considérée), cette tâche peut être décrite informellement par:
(1) ~ [file_icon]M ∨
(2) ~ [x, y]∗ ~ [x ᇱ , y′]
(3) M ∧
b) Sélectionner un fichier:
13
c) Supprimer un fichier:
Le modèle HTA est l’une des premières notations utilisées pour la collecte d’informations
sur les activités de l’utilisateur. Sa capacité d’abstraction (représentation des taches
abstraites) est réalisée par la décomposition hiérarchique des tâches en sous tâches, HTA est
une notation qui admet une description graphique (et une autre textuelle) de la représentation
des informations liées aux activités de l’utilisateur. En HTA, l’ordonnancement de taches et
sous taches est connu sous le nom de « plan ». Ce plan, requis pour tout nœud possédant des
sous-tâches (sous-buts), il montre comment il faut utiliser lesdites sous-tâches pour réaliser le
but ou la tâche du nœud associé. Ces plans, dont le langage n’est qu'une partie formelle,
permettent d'expliquer les instructions nécessaires, mais peut rendre difficile l’utilisation
d’outils de validation ou de simulation.
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).
14
Table 3 : Les opérateurs HTA
L'exemple suivant représente l'activité «faire du café» selon la notation graphique de HTA. Dans cet
exemple l'enchainement des tâches est claire : mettre le café, ensuite de l’eau et en fin pousser ON:
15
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 (ou textuelle) de l'exemple précédent, on peut noter que, par l’ajout de colonnes
supplémentaires au dit tableau, il est facile de montrer autant de propriétés que souhaité.
16
5.2.3 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 tâches.
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é 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 5):
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
17
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
18
l’interrompre, ainsi que la manière dont l’exécution devra reprendre, s’il y a lieu, après
l’interruption).
La figure 6 montre comment la tâche « Envoyer courriel » pourrait être documentée selon
MAD.
19
Exemple: La représentation MAD de l'activité " Gestion des ressources"
sur l’activité de l’utilisateur en classant les tâches utilisateurs en quatre types (abstraite ,
20
CTT utilise une représentation graphique et propose un outil constituant un environnement d’édition,
de simulation, et génération de scenarios de tâches, appelé CTTE (CTTEnvironment) [Paternò et al.,
2001].
Exemple :
La figure 7 représente le modèle de tâche d’un distributeur automatique de billet (DAB). Dans ce
modèle l’utilisateur doit insérer sa carte, ensuite (>>) saisir son code PIN pour avoir l’autorisation
d’accéder à son compte. La tâche Accès peut être effectuée plusieurs fois (*) et désactivée ([>) à tout
moment par la tâche Terminer Accès. L’utilisateur choisit ([]) ensuite de retirer de l’argent (Retirer
Argent), de déposer de l’argent (Déposer Argent) ou bien de consulter son compte (Interrogation
Compte). Seule la tâche Retirer Argent est détaillée sur cette figure.
21
composées d’opérations (qui peuvent elles-mêmes se décomposer en sous-opérations) qui font
appels aux services du noyau fonctionnel. Contrairement à l'UAN, Diane ne décrit pas formellement
les traitements à réaliser.
La planification hiérarchique consiste à établir une sorte de plan d'actions pour atteindre un
objectif. Un exemple pour la tâche "Enregistrer client" est montré à la figure 9:
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%
22
La planification hiérarchique est basée sur la notion de buts, un but étant un état désiré que l’on
cherche à réaliser. À ce but correspond également la notion de tâche, c’est-à-dire un ensemble de
traitements qui doivent être exécutés pour atteindre le but correspondant. Ainsi on peut écrire:
- 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.
-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. La recherche de la référence du livre peut être ignorée car on peut supposer que
le bibliothécaire connaît suffisamment les livres qu’il commande. La Tâche Effective dépend donc
fortement du poste de travail et du niveau de l’utilisateur.
-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 minimal 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.
23
On peut différencier la tâche de l’activité de la façon suivante (voir Figure 10) :
Python 3
Une opération Diane+ possède des attributs qui lui donnent différents statuts (voir Figure 11):
o
f
Le cinquiè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 12) :
24
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
13) :
Opération
par default
Le déclencheur est donc synonyme de boucle sur une opération. La figure 14 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
25
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 16, 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”.
La figure 17 montre deux cas d’exclusion mutuelle gérés par la contrainte « une et une seule »
Exemples:
La représentation d’une opération subissant des contraintes sur ses filles ou sur elle-même est:
(Figure 18) :
26
Figure 18 : Contraintes sur une opération et sur ses filles
Exemple:
L’opération “A” de la figure 19 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
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 donnent les représentations pour le ET, le OU et le OU
EXCLUSIF.
27
Sur la figure 20.a, le dessin de gauche montre une synchronisation avec un ET. Dans le dessin de
droite (qui est équivalent à celui de gauche), une opération “A” contient les deux opérations filles
“A.1” et “A.2”. Elle ne possède pas de contrainte et son type obligatoire implique l’exécution des
deux opérations filles pour que l’opération mère soit considérée comme terminée.
Sur la figure 20.b, le dessin de droite donne l’équivalent du “OU” représenté à gauche. L’opération
“A” contient les deux opérations filles dont le type a été changé pour que l’on puisse appliquer une
contrainte sur “A”. Cette contrainte (“au moins une” opération fille) doit être validée pour que “A”
soit considérée comme terminée.
Sur la figure 20.c, le dessin de droite donne l’équivalent du “OU EXCLUSIF” représenté à gauche.
L’opération “A” contient les deux opérations filles dont le type a été changé pour que l’on puisse
appliquer une contrainte sur “A”. Cette contrainte (“une et une seule” opération fille) doit être
validée pour que “A” soit considérée comme terminée.
28
• du mode d’interaction des opérations. Si on précise qu’une opération est interactive, cela
implique que l’utilisateur devra intervenir au cours de l’exécution pour que l’opération
puisse se dérouler. Au contraire, si une opération est automatique, cela signifie qu’on
interdit à l’utilisateur d’intervenir au cours de l’exécution.
• du type des opérations. Si une opération est facultative, on laisse à l’utilisateur le choix de
l’exécuter ou non (aux contraintes près). Les opérations facultatives augmentent donc la
latitude décisionnelle alors que les opérations obligatoires la restreignent. Là encore les deux
types sont nécessaires pour exprimer l’intégration de l’utilisateur en explicitant le permis
et l’interdit.
• des liens de précédence sur les opérations. Relier deux opérations obligatoires par un lien
de précédence permanente implique que l’utilisateur devra impérativement exécuter ces
opérations dans l’ordre donné par le lien. A l’inverse si deux opérations obligatoires ne sont
pas liées par une précédence, cela implique que l’utilisateur choisit l’ordre de déclenchement.
Par ailleurs nous avons vu qu’il est possible de lier des opérations obligatoires avec des
opérations facultatives. Ceci constitue une restriction La méthode Diane+ pour les opérations
facultatives qui ne peuvent alors être déclenchées qu’entre les deux opérations qui l’encadrent.
La présence de liens de précédence est donc synonyme de restriction de la latitude
décisionnelle alors que l’absence de liens implique une large latitude décisionnelle.
• des contraintes qui peuvent s’exprimer sur le nombre de déclenchements autorisés et sur
le nombre de sous-opérations facultatives à exécuter. L’absence de contraintes signifie
que l’utilisateur a un choix total sur ces deux plans, donc forte latitude décisionnelle.
Au contraire la présence de contraintes restreint de manière explicite la latitude décisionnelle.
29
Figure 21: Distinction entre le Noyau Fonctionnel et l’interface
30
6.3.1 Structures fonctionnelles : Seeheim et Arch
Le Modèle Seeheim :
Le modèle Seeheim est structuré en trois unités fonctionnelles :
– La Présentation est chargée de rendre perceptible l'état pertinent des concepts du domaine (la
propriété d'observabilité) et d'en permettre la manipulation par l'utilisateur,
Le Modèle Arch :
Le modèle Arch (UIMS, 1992) s’appuie sur le modèle Seeheim ainsi il utilise les notions de noyau
fonctionnel et de contrôleur de dialogue.
Les pieds de l’arche constituent les composants imposés par la réalité (voir figure 24): 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.
31
Figure 24 : Le modèle Arch
32
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 MVC:
Un agent MVC est composé de trois facettes réalisées par des objets (voir figure 26) :
Les communications entre la vue et le contrôleur ne peuvent normalement se faire sans passer par le
modèle qui est garant de la cohérence de l’état de l’agent.
33
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. Sur la Figure 27,
l'Abstraction du niveau le plus haut correspond à la notion d'Application du modèle Seeheim et le
Contrôle du niveau le plus haut remplit des fonctions similaires au Contrôleur de dialogue:
34
6.3.3 Modèle hybride PAC-Amodeus
Le modèle hybride PAC-Amodeus (Nigay, 1994) préconise la décomposition fonctionnelle d'Arch et
intègre les capacités d’affinement et de prise en compte du parallélisme de PAC. La Figure 29 en
présente les composants. Dans ses grandes lignes, PAC-Amodeus reprend les composants du modèle
Arch dont il affine le contrôleur de dialogue, composant principal, en agents PAC.
PAC-Amodeus :
Les composants Le Noyau Fonctionnel (NF) et l'utilisateur sont les deux extrêmes du modèle. À
gauche de la Figure 29, 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.
Règle 1 : Une fenêtre qui sert de support à un espace de travail est modélisée par un agent.
Règle 2 : Les vues multiples d’un même concept sont gérées par un agent “vue multiple” chargé de
maintenir la cohérence entre les vues.
35
Figure 30 : Motif "Vue multiple d'un même concept", un agent Père gère la cohérence
Règle 7 : Si une fenêtre “espace de travail” permet d’ouvrir une autre fenêtre “espace de travail” sur
une autre instance du même concept, ces deux agents sont modélisés comme fils d’un même père.
Règle 8 : Si la nouvelle fenêtre représente plus de détails sur l’un des concepts, l’agent qui modélise
cette fenêtre est fils de l’agent source.
Règle 9 : Si la spécification d’une commande implique des actions distribuées sur plusieurs agents,
ceux-ci doivent être placés sous le contrôle d’un agent qui cimente les actions réparties en une
commande
36
Règle 10 : Un agent PAC et son fils unique peuvent être regroupés en un seul agent.
Règle 11 : Un agent dont le rôle peut être encapsulé par un objet de présentation ou d’interaction
peut être éliminé et apparaître comme un composant de la présentation de son agent père.
On peut vérifier par exemple qu'un automate est vivant ou qu'il ne possède pas de puits.
Les états finis constituent un des formalismes les mieux maîtrisés pour les IHM étant donné
leur capacité à être traduits sous forme de grammaires (équivalence automate/grammaire). Un
système basé sur ce formalisme (par exemple Rapid/Use [WASSERMAN 85] [WASSERMAN 86]
ou les Statecharts qui autorisent également le parallélisme [HAREL 88] [HAREL 90] [VAN ZIJL
91]) manipule cinq éléments :
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
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 32). 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.
37
Figure 32 : Un exemple de diagramme d’états finis
D'autres formalismes à états : Les grammaires, Les graphes d'enchaînements, Les contraintes, Les
langages visuels…..
L'approche événementielle
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
méthode Diane+. Nous donnons ci-dessous (figure 33) 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
38
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.
Les formalismes hybrides sont des formalismes qui utilisent à la fois les états et les
événements. Certains sont issus de formalismes basés sur les états auxquels on a ajouté la notion
d'événement (par exemple les règles), d'autres ont été entièrement bâtis dans le but d'une utilisation
conjointe des états et des événements (par exemple les langages tels que Esterel [BOUSSINOT 91]).
Leur représentation peut être graphique ou textuelle, mais elle fait toujours ressortir la
correspondance entre les états et les événements.
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 34.a représente un exemple
de fenêtre de saisie de mot de passe associée à une fenêtre d'aide, la figure 34.b représente le réseau
Rdp associé.
39
Figure 34.a : Une fenêtre de saisie de mot de passe et sa fenêtre d’aide associée
Références
Loé Sanou, Patrick Girard, Laurent Guittet, (2007) « Validation directe de la conformité d’une
application interactive à son modèle de tâches » Laboratoire d’Informatique Scientifique et
Industrielle (LISI / ENSMA) Téléport 2 – 1, avenue Clément Ader BP 40109 86961, Futuroscope
Chasseneuil, France. DOI: 10.1145/1541436.1541485.
40