Corso di Interazione Uomo-Macchinaium1/Presentazioni/Lezione13P... · Lezione 13 Progettare per...

Post on 15-Aug-2020

6 views 0 download

Transcript of Corso di Interazione Uomo-Macchinaium1/Presentazioni/Lezione13P... · Lezione 13 Progettare per...

Corso di Interazione Uomo-Macchina

Paolo Bottoni

Lezione 13: Progettare per l'errore

Corso di Interazione Uomo Macchina AA 2010-2011

Roberto Polillo

Corso di laurea in Informatica Università di Milano Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione

PROGETTARE PER L’ERRORE

2 R.Polillo - Ottobre 2010

Scopo di questa lezione

3

Discutere nozione di errore umano, presentare

alcune linee guida per trattamento errori in

interazione uomo-macchina

R.Polillo - Ottobre 2010

Lezione 13 Scelte Progetto IUM 4

Errare è umano

• Rapporti da incidenti

– Disastri aerei, incidenti industriali, errori in ospedale

– Inchiesta incolpa "errore umano"

• ma …

– Architrave di cemento si spezza sotto peso eccessivo

– Si incolpa ‘errore di architrave’ ? … no – errore di progetto

– Sappiamo come si comporta cemento sotto sforzo

• "errore" umano è normale

• Sappiamo come si comportano umani sotto tensione

– Quindi progettare tenendone conto

• Trattare umani almeno altrettanto bene che materiali fisici!

Errore

R.Polillo - Ottobre 2010 5

Il concetto di errore umano è più complesso di quanto non sembri a prima vista: infatti non esiste dicotomia semplice fra “errore” e comportamento “corretto”

“Errore” sarà inteso come termine generico per comprendere tutti quei casi in cui una sequenza pianificata di attività fisiche o mentali fallisce il suo scopo, e quando questo fallimento non possa essere attribuito all’intervento di qualche agente casuale

James Reason, Human Error

Classificare l’errore umano

6

AZIONE NON

INTENZIONALE

(“SLIP” o “LAPSUS”)

NO

AZIONE

INTENZIONALE

MA ERRATA

(“MISTAKE”)

NO

c’era

l’intenzione

di agire?

l’azione è

proceduta come

pianificato?

SI

l’azione

ha ottenuto lo scopo

desiderato?

SI

AZIONE CORRETTA

SI

c’era intenzione

nell’azione?

NO

AZIONE

NON INTENZIONALE Es Urto il tavolo e

rovescio un bicchiere

NO

AZIONE SPONTANEA Es Mi lanciano una palla

di neve e mi proteggo SI

Da: J.Reason, Human Error, 1990

R.Polillo - Ottobre 2010 6

Slip (o lapsus)

R.Polillo - Ottobre 2010 7

Letteralmente: “scivolata”

Sostituzione involontaria di lettera, suono, parola al posto di altra

Generalizzando, sostituzione di azioni o comportamenti al posto di altre

Esempi: – lapsus linguae

– lapsus calami

Error handling

Error diagnosis

Error recovery

Progettare per l’errore: temi

R.Polillo - Ottobre 2010 8

Error prevention

Error detection

Error explanation

Progettare per l’errore

Prevenire l’errore

Gestire l’errore

Diagnosticare l’errore

Rilevare l’errore

Spiegare l’errore

Correggere l’errore

Backward

recovery

Forward recovery

Progettare per l’errore: temi

R.Polillo - Ottobre 2010 9

Prevenzione

10

• Degli slip: di solito è abbastanza facile

Esempio: “giusta” distanza fra pulsanti, allontanare

pulsanti di uso frequente da pulsanti “pericolosi”

• Dei mistake: più difficile

Esempio: formazione utenti, riprogettazione sistema

R.Polillo - Ottobre 2010

Prevenzione degli slip: esempio

R.Polillo - Ottobre 2010 11

Prevenzione dell’errore: alcune

indicazioni

R.Polillo - Ottobre 2010 12

• Diversificare azioni utente

• Evitare comportamenti “modali”

• Usare “funzioni obbliganti”

• Imporre input vincolati

• Non sovraccaricare memoria a breve termine utente

• Richiedere conferme

• Usare default inoffensivi

• Fornire alternative sicure

Comportamenti modali

13

Sistema si comporta diversamente a seconda dello stato (o modalità) in cui si trova.

Problema se stato non facilmente riconoscibile da utente

Se utente non conosce stato, non prevede come

sistema risponderà a sue azioni

R.Polillo - Ottobre 2010

Comportamento modale: esempio

R.Polillo - Ottobre 2010 14

Quando eseguo copy o cut, oggetto copiato o tagliato viene

inserito in clipboard, ma non è visibile: sistema cambia stato

ma utente non lo vede

NB: A volte clipboard resa visibile

Office

2007

Comportamento modale:(PowerPoint)

2 1

3 quale figura sto

per disegnare?

Quando selezionato figura

in (1) PowerPoint entra in

stato che non mi fa vedere

15 R.Polillo - Ottobre 2010

La forma del cursore

indica che sono in

modalità “matita”

MacPaint, 1984

16 R.Polillo - Ottobre 2010

MacPaint, 1984

17 R.Polillo - Ottobre 2010

Il cursore indica che sono

in modalità “cammina”

Wrath of the Gods (Luminaria, 1994)

18 R.Polillo - Ottobre 2010

Funzioni obbliganti

19

Situazioni con azioni vincolate in modo tale che mancata

esecuzione di passaggio impedisca successivo

(D.Norman)

Spesso ci danno noia, ma ci proteggono…

Esempio:

L’auto emette un segnale d’allarme quando si apre la

porta con la chiave inserita nel cruscotto…

… in tal modo è impossibile chiudersi fuori per errore

R.Polillo - Ottobre 2010

Funzioni obbliganti: esercizio

20

In un sistema desktop quale delle seguenti due soluzioni è preferibile?

1. Selezione azione selezione oggetto

2. Selezione oggetto selezione azione

R.Polillo - Ottobre 2010

Finder Macintosh, 1974

21 R.Polillo - Ottobre 2010

Input vincolati

R.Polillo - Ottobre 2010 22

• Permettere a utente di effettuare solo azioni

lecite in contesto corrente

• (Generalizza nozione di funzione obbligante)

Input vincolati: esercizio

23

1)

2)

3)

4)

Quale fra le seguenti soluzioni è la

migliore per prevenire errori di input?

R.Polillo - Ottobre 2010

Richiedere conferme

R.Polillo - Ottobre 2010 24

Chiedere sempre conferma prima di effettuare

azioni irreversibili o pericolose…

…spiegando con chiarezza alternative possibili

e loro conseguenze

Richieste di conferma: esempi da

discutere

R.Polillo - Ottobre 2010 25

Richieste di conferma: esempi da

discutere

R.Polillo - Ottobre 2010 26

Da www.bravenet.com

Da: Microsoft Access 95

27

Menu

xxx

yyy

zzz

R.Polillo - Ottobre 2010

Richieste di conferma: esempi da

discutere

Esci

XXX mvcbc bvbnv Sei sicuro di

voler uscire?

sì no Esci

XXX mvcbc bvbnv

Usare default inoffensivi: esempio

R.Polillo - Ottobre 2010 28

(da Photoshop)

Error handling

Error diagnosis

Error recovery

Progettare per l’errore: temi

R.Polillo - Ottobre 2010 29

Error prevention

Error detection

Error explanation

Un buon messaggio di errore deve…

30

1. Allertare

“attenzione: qualcosa non va”

2. Identificare l’errore

“è questo che non va”

3. Dirigere l’utente

“ora devi fare questo”

R.Polillo - Ottobre 2010

Messaggi di errore: linee guida

32

• Spiegare esplicitamente che cosa non va…

• dare indicazioni costruttive su come risolvere

problema ...

• usando linguaggio utente …

• in modo educato, esauriente e preciso

R.Polillo - Ottobre 2010

Esempi da discutere

R.Polillo - Ottobre 2010 33

R.Polillo - Ottobre 2010 34

Esempi da discutere

R.Polillo - Ottobre 2010 35

Esempi da discutere

Linee guida per il web

36

• Messaggi di errore chiaramente visibili e espressi

in linguaggio chiaro, comprensibile a tutti

• Cercare di preservare per quanto possibile lavoro

già fatto da utente

• Cercare di ridurre al massimo lavoro necessario

per correggere errore

R.Polillo - Ottobre 2010

37 R.Polillo - Ottobre 2010

38 R.Polillo - Ottobre 2010

R.Polillo - Ottobre 2010 39

R.Polillo - Ottobre 2010 40

R.Polillo - Ottobre 2010

R.Polillo - Ottobre 2010

HTTP 404 - File not found

R.Polillo - Ottobre 2010 43

R.Polillo - Ottobre 2010 44

Esempio dal sito

di Jakob Nielsen

R.Polillo - Ottobre 2010 45

Error handling

Error diagnosis

Error recovery

Progettare per l’errore: temi

R.Polillo - Ottobre 2010 46

Error prevention

Error detection

Error explanation

AZIONE CORRETTA Stato

iniziale Stato

finale

Stato di

errore

FORWARD

RECOVERY

BACKWARD

RECOVERY

Error recovery (ripristino)

47

Error

tolerance

R.Polillo - Ottobre 2010

Tolleranza verso gli errori

48

“Un dialogo è tollerante verso l’errore quando, a dispetto di evidenti errori nell’input, i risultati desiderati possono essere ottenuti senza (o con minime) azioni correttive.”

ISO 9241 - 10

R.Polillo - Ottobre 2010

Esempio

49 R.Polillo - Ottobre 2010

R.Polillo - Ottobre 2010

Esempio di backward recovery:

undo

51 PowerPoint 2007 Photoshop CS3 R.Polillo - Ottobre 2010

AZIONE CORRETTA

Stato

iniziale

Stato

finale

Stato di

errore

Stato finale

approssimato

Stato

iniziale

approssimato

FORWARD

RECOVERY

BACKWARD

RECOVERY

Recovery imperfetta

52 R.Polillo - Ottobre 2010

da Francis Jambon,

1998

Modellare errore in termini di risorse

• Risorse mancanti, in stati non previsti,

percepite in modo incorretto

• Utente pensa di potere realizzare azione, ma

non potrà completarla correttamente

• Utente pensa di non potere realizzare azione,

ma essa potrebbe svilupparsi in altro modo

Lezione 13 Errore IUM 53

54

Errori e Risorse

• Cause di errore

– Assenza di risorse richieste / desiderate

– Presenza di risorse che permettono esecuzione di

processi in contrasto con piano

– Discrepanza fra risorse percepite e effettive

IUM Lezione 13 Progettare per errore

55

Tipi di risorse

• Fisiche – Dispositivi di ingresso e uscita, spazio su schermo

– Mediate da sensori logici o fisici

• Computazionali – Dati

• Ingressi utente, generati da calcolatore, modelli di utente

– Di controllo

• Aspetti espliciti, stati, transizioni

– Politiche

• Da attività di modellazione dei compiti, assicurano sincronizzazione, sequenzializzazione, o concorrenza

• Percettive – Strutture osservate o percepite

IUM Lezione 13 Progettare per errore

56

Risorse nel linguaggio

• rectangle (id = R1; x = 2, y = 2; w = 6, h = 3)

• circle (id = C1; x = 30, y = 15, r = 2)

__________________________________

• button (id = B1; action = “r-c_arrow”)

• button (id = B2; action = “rectangle”)

• button (id = B3; action = “c-r_arrow”)

• button (id = B4; action = “circle”)

IUM Lezione 13 Progettare per errore

57

Risorse nel processo

• holder(id= H1; token = true)

• holder(id= H2; token = false)

• holder(id= H3; token = true)

• holder(id= H4; token = false)

Lezione 13 Progettare per errore IUM

IUM 58

Tassonomia di errori

• Sintattico - viola regola linguaggio

– Crea una freccia pendente

• Semantico - produce discrepanza tra

interpretazione umano e calcolatore

– Differenza tra ordine di selezione e direzione freccia

• Pragmatico – viola regola da pratiche migliori

– Creazione di un modello scorretto

Lezione 13 Progettare per errore

IUM 59

Errori legati al linguaggio

In editor guidato da sintassi, che permetta

creazione di soprainsieme linguaggio visivo

richiesto, utente crea sentenza non in linguaggio.

Lezione 13 Progettare per errore

IUM 60

Errori connessi al compito

• Tentare di stampare documento con drag & drop

mentre stampante è sconnessa

• Tentare di aprire documento in rete senza avere a

disposizione applicazione corretta

• Stampare pagina maggiore di spazio di stampa

Lezione 13 Progettare per errore

IUM 61

Progettare per l’errore

• Linguaggi visivi e linguaggi di compito

• Definizione sentenze corrette

• Derivazione dell’interazione

• Gestione degli errori

Lezione 13 Progettare per errore

IUM 62

Sulla recuperabilità

• recuperabile: si può procedere a produrre

sentenza visiva corretta da stato corrente

(sfruttando regole linguaggio)

• irrecuperabile: si deve tornare indietro per

procedere verso sentenza visiva corretta

Lezione 13 Progettare per errore

IUM 63

Alfabeti visivi

Lezione 13 Progettare per errore

IUM 64

Regole visive

Lezione 13 Progettare per errore

IUM 65

Derivazione di ambienti di interazione

Lezione 13 Progettare per errore

IUM 66

Derivazione dell’interazione

Lezione 13 Progettare per errore

IUM 67

Il nucleo di controllo completo

Lezione 13 Progettare per errore

IUM 68

Aggiunta di sottomacchine standard

Lezione 13 Progettare per errore

IUM 69

Stili di interazione alternativi

Lezione 13 Progettare per errore

IUM 70

Stili di interazione alternativi

Lezione 13 Progettare per errore

IUM 71

Da alfabeti a interazione

• Azioni ad alto livello per tipo

– Statiche

• Creazione

– Di istanza

• Selezione / Deselezione

• Modifica / Trasferimento

• Cancellazione

• Interrogazione

• Sequenze di azioni a basso livello

– movePointer* click

– drag* click

• Produzione risorse corrispondenti

Lezione 13 Progettare per errore

IUM 72

Risorse di interazione

Lezione 13 Progettare per errore

Queste slides…

… si basano sul libro “Facile da usare”, dell’autore, dove si trovano

tutte le necessarie spiegazioni. Vedi www.rpolillo.it

Queste slide sono disponibili con licenza Creative Commons

(attribuzione, non commerciale, condividi allo stesso modo) a

chiunque desiderasse utilizzarle, per esempio a scopo didattico,

senza necessità di preventiva autorizzazione.

La licenza non si estende alle immagini fotografiche e alle screen

shots, i cui diritti restano in capo ai rispettivi proprietari, che sono

stati indicati, ove possibile, nelle didascalie del libro. L’autore si

scusa per eventuali omissioni, e resta a disposizione per

correggerle.