IFT2905 Interfaces personne-machine 10. Undo
S´ebastien Roy
D´epartement d’Informatique et de recherche op´erationnelle Universit´e de Montr´eal
12 mars 2007 Universit´e de Montr´eal
Horreur oiu splendeur?
1800flowers (suggestion de Ryan Damico)
Le but du formulaire est de composer une carte de souhait pour accompagner des fleurs.
Horreur oiu splendeur?
(majeur) Limite de 210 caract`eres: bien justifi´e mais on n’a aucun moyen de compterA. Suugestion: une bar de
poucentage. (pr´evention des erreurs, flexibilit´e et efficacit´e) (majeur) special symbols like & est tr`es vague. Il serait mieux de les d´etecter et d’avertir pendant qu’on tape.
(pr´evention des erreurs)
(cosm´etique) les soulign´es dans le menu. Donne une fausse perception des choix. (connecter avec le monde)
(majeur) Comment est-ce que le Greeting typeaffecte la carte finale? (visibilit´e, aide et documentation)
(mineur) Les ´etiquettesto,from,message n’aligneront probablement pas avec ce qui est entr´e, donc ne servent `a rien. (esth´etique et minimalisme)
Au programme
Undo
Les principes de design du Undo Visualisation de l’historique Undo s´electif
objets de commande Pourquoi le Undo?
El´´ement incontournable de l’utilisabilit´e
La manipulation directe implique la reversibilit´e Le Undo encourage l’exploration et l’exp´erimentation (important pour apprendre)
R´eduit l’impact des erreurs
Donne un sentiment de s´ecurit´e de de contrˆole
Mais le Undo n’est pas si simple `a implanter...
Mod` ele conceptuel du Undo
Le Undo inverse l’effet d’une action Quelques question sans r´eponses...
Quelles s´equences d’actions peut ˆetre renvers´ees?
Comment diviser les actions en unit´es r´eversibles?
Quelles actions sont r´eversibles?
Lors d’un Undo, combien de l’´etat pr´ec´edent est r´ecup´er´e?
Jusqu’o`u peut-on reculer?
Undo agit de facon myst´erieuse et souvent impr´evisible.
S´ equence d’actions
Il n’existe pas deUndo global.
Chaque application ou widget propose son propre Undo.
Quelle s´equence d’action sera invers´ee?
Actions dans la fenˆetre courante
Microsoft Word: un Undo par texte ouvert Actions dans un champs de formulaire web
chaque champs supporte Undo, un `a la fois Mes actions, ou celles de tous les usagers?
calendriers partag´es, ...
Actions d´eclench´ee par l’ordinateur correction automatique, ...
Unit´ es d’action
La s´equence d’actions est s´epar´ee en unit´es indivisibles pour le Undo.
Niveau lexical
Clic de souris, touche au clavier, mouvement de souris
→ (aucun Undo ne fonctionne `a ce niveau) Niveau syntaxique
Commandes et activation de boutons Niveau s´emantique
Changement aux structures de donn´ees (ex: r´esulats d’un dialogue)
→ (le Undo fonctionne g´en´eralement `a ce niveau) Entr´ee texte consid´er´ee comme une action unique Que faire d’un macro d´efini par l’usager?
Undo du macro comme un tout, ou chaque commande individuelle?
Quelles actions sont reversibles?
Les actions d’un usagers peuvent inclure des actions ignor´ees par le Undo...
S´election Focus du clavier
Changement de point de vue (scroll, zoom) Gestion de l’interface
palettes, panneaux, barres, ajout de boutons taille et position des fenˆetres
Quelles actions doivent ˆetre invers´ees?
En g´en´eral...
Les changement de vue sont ignor´es
Les changement aubackend (mod`ele) sont inversibles ...
Le dernier mot revient `a l’application...
Undo et ´ etat
Quelle partie de l’´etat est r´ecup´er´ee lors d’un Undo?
S´electioner du texte, l’effacer, puis faire Undo.
Le texte est restaur´e
La s´election est-elle restaur´ee? et la position du curseur?
Mˆeme si la vuen’est pas prise en charge par le undo, un Undo sur lemod`ele peut avoir un impact sur la vue.
Jusqu’o` u reculer?
Limite sur la taille de l’historique pass´e lointain: 1 seule action maintenant: 100, 1000,∞
Est-ce que la s´equence d’action persiste entre les sessions?
si oui, il faut sauvegarder les actions dans un fichier Est-ce que la s´equence persiste apr`es une sauvegarde?
g´en´eralement pas...
on doit donc sauvegarder moins souvent... (!?)
Principes de design pour le Undo
Principe de base: Il est difficile de pr´edire l’effet d’un Undo.
En g´en´eral, on presse Undo jusqu’`a l’obtention de l’effet d´esir´e (o`u on est all´e trop loin).
Visibilit´e
S’assurer que l’effet d’un Undo est visibles Aggr´egation
Les unit´es devraient ˆetre coh´erentes: chaˆıne de texte, dialogue, macros.
Undo r´eversible
Permettre un Redo
Revenir dans un ´etat o`u la commande peut ˆetre
imm´ediatement ´ex´ecut´ee de nouveau, avec le mˆeme effet.
Principes de design pour le Undo
Autres principes...
Undo du mod`ele, pas de la vue
Pour plus de coh´erence avec les autres applications, le Undo s’applique aux changements de mod`ele, pas de vue.
Autres m´ethodes de r´eversibilit´e Touche d’effacement pour le texte
Document r´ecent pour un fichier sauvegard´e
Bouton de d´efilement (scrollbar) permet de revenir `a une vue pr´ec´edente
Undo est une forme deR´ecup´eration d’erreur par marche arri`ere, alors qu’on peut aussi r´ecup´erer par marche avant (une commande peut en inverser une autre). La r´ecup´eration par marche avant est pr´ef´erable.
Visualisation de l’historique
Gros probl`eme d’utilisabilit´e
L’usager ne voit pas l’historique du Undo.
G´en´eralement, on visionne l’historique en faisant Undo, puis Redo.
(pas id´eal...)
On peut essayer une repr´esentation visuelle explicite
Menu de retour des navigateurs web Affichage graphique des commandes
Listes de Undo et Redo
Une repr´esentation utilis´ee pour Undo/Redo est laliste d’actions Liste des actions sous forme d’un script
L’´ex´ecution du script transforme un ´etat de d´epart en ´etat courant
L’´etat de d´epart est g´en´eralement celui d’un fichier sur disque
→ Dans ce cas, l’historique s’arrˆete `a la sauvegarde Undo/Redo modifient le script
Undo enl`eve une commande `a la fin du script et la place dans le script Redo
Redo replace une commande de son script vers le script Undo.
Certains actions ne sont pas conserv´ees dans le script
Historique Redo
Manipulation de l’historique
Une nouvelle commande est ajout´ee `a la l’historique
→ et vide la liste du Redo
Historique Redo
Une nouvelle commande fait un branchement exp´erimental
requiert une visualisation explicite de l’historique peu d’avantage en pratique
Gestion de l’historique
Undo s´electif
Permet d’´eliminer une commande de l’historique, pas n´ecessairement la derni`ere.
Redo s´electif
Permet de r´e-´ex´ecuter une action de la liste Redo, mais pas n´ecessairement la premi`ere.
On doit pouvoir visualiser l’historique pour choisir l’action Essentiel pour les applications multi-usagers collaboratives Attention `a l’interd´ependance des commandes!
Exemples: tic-tac-toe, othello, ´echecs, ... (pas toujours aussi simple)
Implantation du Undo
L’historique est une liste d’objets de commande m´ethodesundo()etredo()
L’objet de commande doit stocker des donn´ees. Les donn´ees servent `a remettre l’´etat du mod`ele `a jour.
Point de sauvegarde partielle de l’´etat d´eplace cercle de (0,0) `a (100,100) Change police de Times vers Helvetica
Changement local ou global d’une image dans gimp R´ef´erences aux objets VS localisation
Ins`ere ”abcd” `a la position 33 o`u au marqueur #55393 Diff´erences relatives VS valeurs absolues avant et apr`es
d´eplace cercle de (+5,-10) VS d´eplace de (10,10) `a (15,0)
D´ efis d’implantation
Parfois un changement global impose de conserver trop d’information d’´etat
filtre sur une image dans gimp
Redo d’une cr´eation d’objet va produire une r´ef´erence nouvelle cette r´ef´erence doit ˆetre utilis´ee par les Redo subs´equents Cr´ee cercle #123, Change couleur cercle #123, Undo, Undo, Redo Redo
Comment retrouver la r´ef´erence originale?
Conserver des r´ef´erences dans l’historique inhibe legarbage collection
on peut limiter la longueur de l’historique