IUM20048 lezione 26 marzo LERRORE UMANO
IUM20048 lezione 26 marzo Errore Atto, effetto di allontanarsi dalla verità o dalla norma convenuta dizionario Garzanti
IUM20048 lezione 26 marzo L errore umano riconsiderato Il concetto di errore umano è più complesso di quanto non sembri: non esiste una dicotomia semplice fra errore e comportamento corretto Ogni interazione uomo-macchina dovrebbe essere trattata come una procedura cooperativa, durante la quale possono nascere fraintendimenti da entrambe le parti (D.Norman)
IUM20048 lezione 26 marzo 20034
IUM20048 lezione 26 marzo Tolleranza degli errori Un dialogo è error-tolerant nella misura in cui, a dispetto di evidenti errori nellinput, i risultati desiderati possono essere ottenuti senza (o con minime) azioni correttive. ISO
IUM20048 lezione 26 marzo Classificare gli errori cera la intenzione di agire? cera intenzione nellazione? NO LAPSUS NO AZIONE INTENZIONALE MA ERRATA NO lazione è proceduta come desiderato? SI lazione ha ottenuto il suo scopo? SI AZIONE CORRETTA SI AZIONE INVOLONTARIA NO AZIONE SPONTANEA SI
IUM20048 lezione 26 marzo Progettare per lerrore 1. Comprendere le cause di errore, e minimizzarle (prevenzione) 2. Facilitare la scoperta degli errori che comunque accadono, e facilitarne la correzione 3. Rendere ogni azione reversibile, o rendere difficili le azioni irreversibili (undo) 4. Cambiare atteggiamento verso lerrore: non giusto/sbagliato, ma approssimazioni verso lobbiettivo
IUM20048 lezione 26 marzo Prevenzione dellerrore Amodalità Funzioni obbliganti Avvertimenti e richieste di conferma Default inoffensivi Bypass sicuri
IUM20048 lezione 26 marzo Amodalità Comportamento modale: il sistema si comporta diversamente a seconda dello stato (o modalità) corrente evitare comportamenti modali, oppure evidenziare chiaramente la modalità corrente
IUM20048 lezione 26 marzo cursore modale : indica che sono in modalità matita
IUM20048 lezione 26 marzo Funzioni obbliganti Progettare le varie funzioni in modo da rendere impossibili le azioni non lecite nel contesto corrente Esempio: La portiera dellauto può essere chiusa solo con la chiave, non con la sicura… … in tal modo è impossibile restare chiusi fuori per errore
IUM20048 lezione 26 marzo Azioni prive di senso nel contesto corrente sono disattivate
IUM20048 lezione 26 marzo Avvertimenti e richieste di conferma Livelli di allerta: Tieni presente che… E proprio questo che vuoi? Fermo!
IUM20048 lezione 26 marzo Note alert box (Livello 1) Caution alert box (Livello 2) Stop alert box (Livello 3)
IUM20048 lezione 26 marzo Richieste di conferma Chiedere sempre conferma prima di effettuare azioni irreversibili o comunque pericolose… … ma senza esagerare! DANNAZIONE, SI !
IUM20048 lezione 26 marzo Da: AKMail
IUM20048 lezione 26 marzo Da: Microsoft Access 95
IUM20048 lezione 26 marzo Ed ora?
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo Default Usare per quanto è possibile default inoffensivi
IUM20048 lezione 26 marzo Bypass sicuri Suggerire unazione sicura in alternativa ad azioni che possono condurre ad errori
IUM20048 lezione 26 marzo BYPASS SICURO
IUM20048 lezione 26 marzo In caso di errore ALERT qualcosa non va 2. IDENTIFY è questo che non va 3. DIRECT ora devi fare questo
IUM20048 lezione 26 marzo ALERT IDENTIFY DIRECT
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo ALERT IDENTIFY
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo Granularità dei messaggi di errore Un messaggio di errore alla volta, appena ho commesso lerrore…. … oppure tutti i messaggi di errore insieme, alla fine?
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo Cambiare atteggiamento verso l errore Il progettista non deve concepire una semplice dicotomia fra errori e comporta- mento corretto: al contrario, tutta linterazione uomo-macchina deve essere trattata come una procedura cooperativa fra i due, dove gli equivoci possono nascere da ambo le parti. Donald Norman
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo
IUM20048 lezione 26 marzo non tutte le azioni sono disfabili. Alcuni comandi sono molto difficili da recuperare : es nelle dopo una SEND per l'invio della posta elettronica, l'utente non può più recuperare lo stato precedente a tale comando i comandi tempo-dipendenti, in particolare, hanno SIDE EFFECTS: non si può tornare indietro nel tempo!
IUM20048 lezione 26 marzo Undo Lutente deve sempre, per quanto è possibile, poter ripristinare lo stato precedente… … e così via, allindietro, senza limitazioni - non sempre si individuano gli errori immediatamente - il numero di funzioni di UNDO possibili deve essere almeno pari a quello dei comandi presenti.
IUM20048 lezione 26 marzo Esempi di gestione di UNDO Flip undo Multiple step Checkpoint Registrazione traccia Il copione (ACR Archer, Conway, Schneider, 1984)
IUM20048 lezione 26 marzo Flip undo Un FLIP UNDO ha senso se "tutti i comandi devono essere trattati in maniera uguale". Tutti i comandi devono essere recuperati compreso l'UNDO stesso. FLIP-UNDO: l'ultimo UNDO annulla l'effetto dell'UNDO precedentemente effettuato. La ragione perché UNDO non venga trattato uniformemente è dovuta a scelte fatte dai progettisti che ritengono un UNDO relativo solamente all'ultimo comando immesso.
IUM20048 lezione 26 marzo Multiple step I meccanismi di UNDO del tipo MULTIPLE-STEP (al contrario del FLIP-UNDO) consentono di eseguire UNDO un numero indefinito di volte, o almeno fino a che il sistema ha informazioni disponibili sullinterazione passata. Per poter correggere eventuali errori nellutilizzo di UNDO viene inserito il comando REDO che consente di ripristinare lazione annullata dallultimo comando di UNDO.
IUM20048 lezione 26 marzo CHECKPOINT Alcuni sistemi utilizzano CHECKPOINT o VIGILI che consentono allutente di riportare il sistema in una condizione precedente. Il numero di checkpoint e la scelta del momento in cui salvare un nuovo stato dipende molto dal tipo di sistema e dalle scelte dei progettisti. Esempio di un programma di elaborazione delle immagini: - si può pensare di salvare solo la situazione iniziale dellimmagine in questione, - oppure di fare un checkpoint prima di eseguire una azione non disfabile (ad esempio lapplicazione di un filtro non reversibile), - oppure ancora di eseguire un checkpoint dopo un intervallo di tempo prestabilito.
IUM20048 lezione 26 marzo Registrazione traccia La traccia è una sequenza di comandi registrati nel modo in cui sono stati emessi - possiamo compilare tale sequenza e fare degli UNDO su alcune componenti della sequenza. Per una interfaccia grafica la traccia può essere di tipo testuale o grafico a seconda degli oggetti considerati. Incrementa la sicurezza: se il sistema cade in crash, la sequenza registrata viene rieseguita ottenendo gli stessi risultati raggiunti. Ovviamente l'ultimo comando, che ha provocato il crash, non deve essere eseguito.
IUM20048 lezione 26 marzo Copione ACR Archer, Conway e Schneider nel 1984, suggerirono un modello di copione che considera l'utente come un "costruttore/autore del copione" ed il sistema come un "interprete della scrittura. L'utente esegue dei comandi, ogni azione viene scritta nel copione, ed in seguito viene sottoposta per l'esecuzione. La sequenza di comandi può essere manipolabile.
IUM20048 lezione 26 marzo Esempio di copione L'utente sottopone il comando c 1 poi c 2 poi c 3 ; l'utente ricorderà che la sua storia dell'interazione è: "... c 1 c 2 c 3. -se si esegue il comando c 3 e poi lo si vuole togliere, si potrà utilizzare un UNDO e si ritornerà "come se" la sequenza fosse c 1 c 2 (la sequenza reale è: c 1 c 2 c 3 undo).
IUM20048 lezione 26 marzo Storia: nota completa di quello che l'utente ha fatto (c1 c2 c3 undo). Copione: nota di interazione che il sistema tratta come la sua storia effettiva. La scrittura dipende dal sistema e può essere più semplice o più complessa della Storia. Stato: l'equivalenza classificata di scritture (es: c1 c2 c3 undo è equivalente ad undo c2; la storia ed il copione sono diversi ma lo stato finale è lo stesso). L'interfaccia ruota tra l'editing e l'interpretazione del copione: il primo generalmente termina con ENTER mentre il secondo termina quando il controllo ritorna all'utente.
IUM20048 lezione 26 marzo UNDO Simbolico e Manipolativo L'UNDO può essere simbolico: l'utente specifica un UNDO di molti comandi; oppure manipolativo: viene manipolato il copione Si può mostrare il nome del comando fino al quale l'utente vuole fare un UNDO oppure mostrare contemporaneamente tutto l'iter dei comandi immessi. Si può mostrare una versione della sessione sia per l'UNDO (indietro di un comando) che per il REDO (avanti di un comando).
IUM20048 lezione 26 marzo Difetti Il modello del copione proposto da A.C.S. non è adeguato per un completo utilizzo di UNDO/REDO. Consideriamo il copione: c 1 c 2 c 3 facciamo un UNDO dei comandi c 3 e c 2 (salvati in uno stack tampone atto per eventuali REDO) e quindi sottoponiamo i comandi c 4 e REDO c 2 c 3 il risultato è un copione come:c 1 c 4 c 2 c 3 Si supponga, ora, di voler tornare a c 1 c 2. Il modello ACS consentirà di fare i passi descritti nella seguente figura :
IUM20048 lezione 26 marzo Lo stato precedente c 1 c 2 non può essere raggiunto mediante UNDO e REDO. Il modello ACS non soddisfa queste caratteristiche in quanto propone un copione "lineare".
IUM20048 lezione 26 marzo NOTA: Undo Skip Redo Il problema è stato risolto nel 1984 da Vitter introducendo le funzioni UNDO, SKIP e REDO (USR). Un particolare comando può essere rieseguito in tempi diversi. I comandi sono visti come nodi di un grafo e la successione dei comandi viene registrata nei percorsi del grafo.
IUM20048 lezione 26 marzo Vitter utilizza un grafo aciclico diretto (DAG). Il copione di Vitter risulta essere un DAG che rappresenta solamente il percorso dei comandi successivi che vogliono essere eseguiti e non la storia completa. L'utente sceglie quale figlio aggiungere ad un nodo padre, evitando di immagazzinare tutte le scelte possibili. Si può mostrare che il modello di Vitter può risolvere lincongruenza c1c2 precedente (
IUM20048 lezione 26 marzo Proprietà di Undo Skip Redo Le scelte offerte all'utente sfruttano le modalità inerziali: il redo di solito è in relazione all'ultimo undo eseguito. Effettuare n undo ed in seguito n redos porterà il sistema allo stesso stato. Gli utenti possono ovviare facilmente ai propri errori. I redo non scompaiono dal copione (altra proprietà inerziale). Il copione non si restinge mai.