De l’analyse des tâches à l’ingénierie
des Modèles de Tâches
À partir d’un cours de Philippe Palanque Lui-même tiré d’un tutorial de Fabio Paternò (HCI 2000)
Plan
Introduction des approches basées-modèles
État de l’art pour les modèles de tâche (UAN, GOMS, …)
La notation ConcurTaskTrees
Limites des approches courantes en conception d’IHM
UML est dirigé uniquement vers la modélisation des composants du systèmes
Peu d’outils disponibles
Pas d’outils permettant d’exécuter les modèles pour comprendre leur fonctionnement
Pourquoi les approches basées modèles ?
Pour mettre en avant les informations abstraites
Pour mettre en avant les informations importantes
Pour aider à gérer la complexité Un élément important de la plupart
des méthodes de conceptionLa possibilité de raisonner sur des
modèles
Des modèles importants en IHM
Modèles de tâcheArchitectures cognitive Modèles de l’utilisateurModèles du domaineModèles du contexteModèles de présentationModèles de dialogue
UML et IHM
Approche à base de modèleNeuf notationsPas de prise en compte de l’interface
utilisateur (un peu à partir des Use Cases)
Comment améliorer cela ?
Raffiner les Use Cases en modèles de tâches ?
Définitions
TâchesButsTâches élémentairesAnalyse de tâches (task analysis)Modélisation des tâches (task
model)Activité (analyse, modélisation, …)
Recueil d’information
Procédure prévue
Procédure effective
Procédure minimale
Logique de fonctionnement / d’utilisation
Exemple d’un système informatique On dispose d’une base de données
conçue suivant le schéma suivant :
Proposer une arborescence de menu permettant de manipuler les informations de cette base
ClientClient VisiteVisite Représentant
Représentant1,1 1,n
Logique de fonctionnement
Vision de l’informaticienL’arborescence de
menus reflète les fonctions internes de la base de données
Client
Représentant
AjouterSupprimerModifierConsulter
AjouterSupprimerModifierConsulter
Exemple de tâche
« Je passe mon temps à saisir des nouveaux clients dans la base de données, et je dois leur affecter le représentant le mieux adapté (en fonction de différents critères) … Parfois je reçois un bon de commande envoyé par un représentant nouvellement recruté, je dois alors saisir à la fois le nouveau client et le nouveau représentant … Il arrive que des représentants quittent la société, en général ils partent avec leurs clients, il faut faire du ménage dans la base de données … »
Proposez une arborescence de menus adaptée à cette tâche.
Logique d’utilisation
Organiser le système d’après l’analyse de la tâcheGestion commerciale
Ajouter
Supprimer Client
Modifier
Consulter
Ajouter représentant
Supprimer représentant
Consulter représentant
Ajouter représentantConsulter représentant
Ingénierie des modèles de tâche
Notation modifiable et concise Approche systématique capable
d’indiquer comment réutiliser les informations des modèles de tâche
Outils automatiques pour utiliser efficacement ces informations
Les différents modèles de tâche
Système existant
Système futur
Activité de l’utilisateur
Utilisation des modèles de tâche
Améliorer la compréhension de l’application (et en particulier son utilisation)
Enregistrer les résultats de discussions multidisciplinaires
Aider à la conception Aider à l’évaluation de l’utilisabilité Aider à l’évaluation de l’efficacité Aider l’utilisateur durant son travail (aide
contextuelle) Documentation (contenu + structure)
Représentation des modèles de tâche
Hierarchical task analysis (HTA) GOMS (famille de notation) UAN (User Action Notation) MAD (INRIA) Différentes syntaxes (textuel vs
graphique) Différents niveaux de formalisme Différents opérateurs pour la
décomposition des tâches
GOMS
Goal, Operators, Methods, Selection Rules (Card 83) Goal : ce que l’utilisateur doit accomplir Operators : action effectuée en service
d’un but Method : séquence d’opérateurs qui
accomplissent un but Selection Rule
GOMS : un exemple
GOAL: EDIT-MANUSCRIPT GOAL: EDIT-UNIT-Task repeat until no more unit tasks GOAL: ACQUIRE-UNIT-TASK GET-NEXT-PAGE if at end of manuscript GET-NEXT-TASK GOAL: EXECUTE-UNIT-TASK GOAL:LOCATE-LINE [select: USE-QS-METHOD USE-LF-METHOD] GOAL: MODIFY-TEXT [select: USE-S-METHOD USE-M-METHOD] VERIFY-EDIT
Limitations de GOMS
Ne prend pas en compte les erreurs utilisateur
Ne prend pas en compte les interruptions de tâches
Ne considère que les tâches séquentielles
Inadéquat pour les systèmes distribués (notamment les applications web)
UAN - User Action Notation
2 représentations complémentaires Une hiérarchie de tâches utilisant les
opérateurs LOTOS (proche de CTT) Les actions de l’utilisateur et le feedback
des utilisateurs sont spécifiés sous forme tabulaire (et à bas niveau)
Notation textuelle Introduit en 1992 (Hix & Hartson grand
succès Developing user interfaces Ensuring, Usability Through Product & Process)
Exemple de description UAN
Task: Obtain_cash
( ( ( Insert_card
Enter_code )
& ( Request_cash
Select_amount ) )
&
(Withdraw_card
Withdraw_cash ) )
Insert_cardEnter_code
( Request_cash
Select_amount
(Withdraw_card
&Withdraw_cash ) )
Task: SelApplication User Action Interface Feedback Interface State ~[x,y in AppICON] (t<tdoubleClick)
w’!: w’-! UnMap(PrevAppliMenu) Map(AppMenu) UnMap(AppICON)
CurAppli=App CurMenu=AppMenu
MAD : Model for Activity Description
MAD (Sebillote, 94) Aide au recueil de données
(interviews, questionnaires,entretiens)
Lien : http://kmade.sourceforge.net/
CCT : ConcurTaskTrees
Met l’accent sur les activités de l’utilisateur
Structure hiérarchique Syntaxe graphique Ensemble de plusieurs opérateurs
temporels (qualitatifs uniquement) Allocation des tâches aux opérateurs Objets et attributs pour les tâches
http://giove.cnuce.cnr.it/ctte.html
Modèles de tâches versus Scénarios
Les scénarios contiennent des descriptions précises d’utilisation dans un contexte précis et en fonction d’un système donné
Les modèles de tâche décrivent les activités possibles théoriques et leurs relations
Les scénarios ont une couverture moindre et sont plus précis
Les scénarios peuvent aider à la modélisation des tâches
Les modèles de tâches peuvent aider à l’identification de scénarios intéressants
Des scénarios aux tâches
Opérateurs temporels
Enabling/Activation T1 >> T2 ou T1 [ ]>> T2
Disabling/Désactivation T1 [> T2
Interruption/Interruption T1 |> T2
Choice/Choix T1 [ ] T2
Concurrency/Concurrence T1 ||| T2 or T1 |[]| T2
Iteration/Itération T1* or T1{n}
Optionality/Facultative[T]
Opérateurs temporels
T1|||T2 : les actions de T1 et T2 peuvent être effectuées dans n’importe quel ordre
T1|[]|T2 : T1 et T2 doivent se synchroniser sur certaines actions pour échanger des informations
T1>>T2 : quand T1 est terminée T2 devient active
T1 []>>T2 : quand T1 se termine elle fournit des informations à T2 et l’active
T1[>T2 : quand une action de T2 se produit, la tâche T1 est désactivée
Caractéristique des tâches
[T1] : T1 est facultative pour atteindre le but (la tâche de niveau supérieur)
T1* : T1 peut être répétée autant de fois que possible pour atteindre le but
T1n : T1 doit être répétée n fois pour atteindre le but
Priorité des opérateurs
Ambiguïté dans la signification
Ambiguïté levée
Priorité: [], |||, [>, >>
Types de tâches
Interaction tasks
Selection
Edit
Control
…
Application task
Computing
Comparison
Locate
Printing
...
Hiérarchie et relations temporelles
Relations tâches / sous-tâches
Tâches facultatives
CTTE
Édition interactive de modèles de tâches Utilisation de descriptions informelles Vérification de la complétude de la
spécification Enregistrement des modèles dans plusieurs
formats Simulation des modèles de tâches Comparaison de modèles de tâches Exécution de scénarios Disponible à
http://giove.cnuce.cnr.it/ctte.html
Editeur de modèle de tâches
Simulation
Comparaison de modèles
Conception
1. Analyse des opérateurs au travers des tâches
Identification de la structure des dialogues
2. Analyse de chaque tâche (objets, attributs, ...)
Choix d’une bonne présentation
Conception
Relations temporelles entre les tâches
Frequence des tâches uniques et “patrons de tâches”
Interaction et techniques de présentation conformes aux types de tâches et aux données manipulées
Représentations multiple consistantes
...
Aller plus loin
TERESA : Transformation Environment for inteRactivE Systems representAtions
http://giove.cnuce.cnr.it/teresa.html
Exercice : DAB
Modéliser les tâches d’un utilisateur d’un distributeur de billets automatique
Exercice : contraintes du DAB
Insérer_Carte, Entrer_Code, Retirer_Carte
Demander_Cash, Select_Montant, Retirer_CashRequest_Cash Select_Amountbefore
Insert_Card Withdraw_Cardbefore
Enter_Code Insert_Cardjust after
andSelect_Amount
Insert_CardWithdraw_Cashbefore
DAB : tâches
But : obtenir de l’argent Pré-requis :
Avoir une carte Connaître le montant que l’on veut
retirer Connaître le code secret
Résultats Prendre l’argent Prendre la carte
DAB : Modèle de tâches
DAB : Modèle de tâches
DAB : Modèle de tâches
DAB : Modèle de tâches
GBLS : Erreurs utilisateur
DAB : Scénarios
DAB : Vérification
DAB : Création du modèle de tâche à partir d’interviews