1 Corso Interazione Uomo Macchina Anno Umano Calcolatore Nel Contesto Processo di Sviluppo 1.I sistemi interattivi 2.Modelli dellumano e loro uso nel progetto e validazione del sistema 3.I fenomeni che caratterizzano la comunicazione digitale e il progetto di sistemi interattivi -Ingegneria dellusabilità 1.Stili di interazione 2.Progettazione, test e valutazione
2 Il processo di sviluppo di un sistema interattivo Ogni caso è differente ma i tipi di attività sono costanti Implementazione Analisi del Task/ Analisi Funzionale Valutazione di Usabilità Computationale e di Realizzabilità Specifica dei Requisiti Prototipazione Uso & Manutenzione Progetto Concettuale Formale Fisico Adattato da Hartson&Hix [HH93] in [BBM99b ] Motto: Il meglio è nemico del bene
3 - Apprendibilità. Facilità nellapprendere il comportamento del sistema (lutente lo usa subito per attività utili). Efficienza duso. Il sistema deve essere efficiente da usare, cosicché quando lutente lo ha appreso, sia possibile un alto livello di produttività - Flessibilità. Rispetto alla molteplicità di modalità di interazione; facile da ricordare. Robustezza (Pochi errori). Il sistema deve indurre un basso tasso di errori, facili da correggere con basso impatto sul costo. Soddisfazione. Il sistema deve essere gratificante da usare. [Nie93]. Usabilità di un sistema ha cinque dimensioni (Nielsen )
4 Lutente novizio del sistema impara. Non valida per sistemi walk-up-and-use ed upgrade Curva di apprendimento tempo Abilità duso ed efficienza
5 Lusabilità: è definita e misurata relativamente a certi utenti che svolgono un compito in un ambiente. Lusabilità si misura selezionando rappresentati dellutenza designata e facendo prove (costoso) oppure …..(Il meglio è bnemico del bene!) Per misurare occorre individuare le variabili da misurare: progetto e valutazione partono dalla definizione di un insieme di compiti da svolger in certe situazioni, relativamente a cui vanno stabiliti gli attributi di usabilità da tenere presenti nello sviluppo del progetto e poi da misurare ed eventualmente rivedere in ogni valutazione Misura dellusabilità
6 Conosci lutente Progetta per gli errori Due necessarie premesse
7 Errore Atto, effetto di allontanarsi dalla verità o dalla norma convenuta dizionario Garzanti Il concetto di errore umano è più complesso di quanto non sembri: non esiste una dicotomia semplice fra errore e comportamento corretto
8 La semantizzazione progressiva Ogni interazione uomo-macchina dovrebbe essere trattata come una procedura cooperativa, durante la quale possono nascere fraintendimenti da entrambe le parti. (D.Norman) Designer Designer's SA User User's SA
9 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
10
11 Per unazione corretta molte possibilità di errore cera la consapevolezza di agire? cera intenzione nellazione? NO LAPSUS NO ERRORE DA AZIONE consapevole MA ERRATA NO lazione ha ottenuto leffetto desiderato? SI lazione ha raggiunto il suo scopo? SI AZIONE CORRETTA SI ERRORE INVOLONTARIO NO AZIONE SPONTANEA SI
12 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
13 Lusabilità secondo Nielsen Lingegneria dellusabilità come processo – insieme di attività da adattare da caso a caso. Individua alcune caratteristiche base dei sistemi usabili. Deriva dieci principi, da usare nellanalisi
14 I 10 principi di Nielsen 1. Far vedere lo stato del sistema (feedback) 2. Adeguare il sistema al mondo reale (parla il linguaggio dutente) 3. Controllo dellutente e libertà (uscite indicate con chiarezza) 4. Assicurare consistenza (nellapplicazione, sistema,ambiente) 5. Riconoscimento piuttosto che uso della memoria 6. Assicurare flessibilità ed efficienza duso (acceleratori) 7. Visualizzare tutte e sole le informazioni necessari 8. Prevenire gli errori 9. Permettere allutente di correggere gli errori e non solo rilevarli 10. Fornire aiuto e documentazione
15 1. Far vedere lo stato del sistema (feedback) Sintetizzabilità: lutente capisce leffetto dellazione passata sullo stato presente (sintesi modello mentale) Concreto e nel tempo e per il tempo necessario (osservabilità) Sulle attività sui malfunzionamenti (perché)
16 Un caso: sistema di automazione (cortesia CB&CJB automazione- Brescia) La macchina originale: lo stato non è mostrato Il prototipo proposto: lo stato è esplorabile 2
17 2 Nella macchina originale difficile comprensione segnalazioni (malinteso senso economia)
18 2. Adeguare il sistema al mondo reale (dellutente) (parla il linguaggio dutente) Familiarità: adotta le notazioni di utente: convenzione nomi ( verbal disagreement phenomenon: ridotto x scienza e tecnica) proiezione mondo reale->schermo –metafore (richiede capire lutente ed il contesto : task analysis e modello concettuale. Affordance: legata alla cultura dellutente: le icone microsoft sono poco suggestive per chi usa altri sistemi o nessun sstema Permettere allutente di sfruttare la sua esperienza nellinteragire con il sistema
19 3. Controllo dellutente e libertà Predicibilità: supportare lutente nel prevedere leffetto delle azioni future in base alle interazioni passate. (modello mentale) (vs determinismo) Vie di uscita ben individuate (undo) Meccanismi ben visibili!! e comprensibili lutente compie errori anche con strumenti perfetti
20 Uscita VIE DI USCITA BEN INDIVIDUATE
21 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. (con le presone lundo è spesso impossibile!!)
22 Non tutte le azioni sono disfacibili. 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!
23 Esempi di gestione di UNDO Flip undo Multiple step Checkpoint Registrazione traccia
24 Flip undo FLIP-UNDO: l'ultimo UNDO annulla l'effetto dell'UNDO precedentemente effettuato. 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. La ragione perché UNDO non venga trattato uniformemente è dovuta a scelte fatte dai progettisti che ritengono un UNDO relativo solamente all'ultimo comando immesso sufficiente perché è facile da realizzare. (Influenza nascosta delle tecnologie (grain)!)
25 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.
26 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.
27 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.
28 4. Assicurare consistenza Leccesso può essere controproducente: il caso delle tastiere Generalizzabilità: supportare gli utenti ad estendere la loro esperienza da situazioni note a situazioni mai incontrate -Nellambito di una applicazione, tra applicazioni diverse, -Tra funzionalità di un sistema,tra sistemi diversi. -Nellambito di un compito, tra le aspettazioni dellutente (modello mentale) e le prestazioni del sistema Simiglianza nei pattern di interazione in situazioni simili o perseguendo scopi simili
29 INCONSISTENZA : NEI BOTTONI, NEI TITOLI
30 Garantire la consistenza Definire gli standard con rigore In questo caso si è definito un Linguaggio Visuale fondato sulla metafora dellofficina La definizione dello stile di interazione e della metafora influenza lorganizzazione del sistema informatico soggiacente (modello concettuale)
Riconoscimento piuttosto che uso della memoria Rendere visibili gli elementi del processo -Mostrare elementi del dialogo e permettere allutente di scegliere (menu) -Facilitare la creazione di nuovi elementi mediante modifica di elementi esistenti (nomi, definizioni, programmi) -Usare comandi generici ( overloaded- facilitano trasferimento conoscenza da un sistema ad un altro- facilitano consistenza fra applicazioni) - Mostrare troppi oggetti offusca la scelta
Assicurare flessibilità ed efficienza duso Iniziativa del dialogo Multithreading Migrabilità del compito Sostutività Pari opportunità di I/O Personalizzazione adattabile: è lutente che adatta adattiva è il sistema che adatta
33 Acceleratori tempo Abilità duso ed efficienza -Adattabile in base alla capacità dellutente -Type-ahead
34 7. Visualizzare tutte e sole i dati necessari Presentare linformazione quando lutente la vuole, come lutente la vuole dove lutente la vuole Sia gli oggetti che rappresentano i dati che le azioni di calcolo siano accessibili in sequenze che riflettono i modelli mentali dellutente. Importanza del layout dello schermo (gestalt- meccanismi dellattenzione) predicibilità Less is more –lutente deve leggere tutto -bilanciare il numero di strategie alternative
35 8. Prevenire gli errori Individuare le situazioni di possibile errore e cercare di aiutare lutente Per azioni che possono portare ad errori con gravi conseguenze, chiedere conferma Evitare i modi e se non puoi evitarli indicarli chiaramente Errori dellutente rilevati nelluso portano al riprogetto
36 9. Permettere allutente di correggere gli errori e non solo rilevarli Recoverability: capacità di raggiungere il risultato voluto, dopo aver commesso lerrore. Azioni difficili da correggere dovrebbero essere difficili da fare Buoni messaggi di errore- in linguaggio chiaro e senza codici - indicazioni precise -indicare come risolvere il problema - gentili
Fornire aiuto e documentazione Gli utenti non leggono i manuali Help in linea con documentazione raggiungibile in modo preciso Help minimalista