[Estratto dal capitolo 1 del libro di Marcus & C. e dal capitolo 1 del libro di Shneiderman]
Principi di progettazione = cose da tenere in considerazione quando si progetta un'interfaccia utente.
Per il successo di una applicazione e' determinante la sua interfaccia. Una cattiva interfaccia utente puo' rendere l'applicazione non utile o non accettata.
Principi di progettazione possono essere classificati in:
Presentazione = aspetti visivi dell'interfaccia: disposizione, colore, forma e dimensione degli elementi che la compongono.
Conciliare estetica, leggibilita' e facilita' d'uso:
Attenzione a colore, forma, spaziatura, dislocazione ed organizzazione degli elementi sullo schermo.
Armonizzare l'aspetto dei vari elementi in modo da creare un insieme piacevole a vedersi.
Uso opportuno del contrasto per aiutare l'utente a distinguere i singoli elementi tra loro e dallo sfondo. Evitare colori troppo violenti che possono infastidire o distrarre.
L'animazione puo' essere usata per attrarre l'attenzione dell'utente su una particolare area dello schermo. Senza abusare.
Come etichette su elementi di interfaccia (es. bottoni), immagini o simboli possono essere piu' immediati di stringhe.
Il simbolo viene da una metafora = trasposizione di un oggetto
del mondo reale nel contesto dell'interfaccia.
Es: simbolo della casa per tornare alla pagina iniziale su internet.
Il simbolo scelto deve essere chiaro, significativo (evocativo della funzione a cui corrisponde) e visivamente distinguibile da altri.
Puo' aiutare un contorno ben definito che ne limiti l'estensione (per sapere dove cliccare col mouse).
Accompagnare il simbolo con una stringa etichetta se il simbolo puo' non essere abbastanza evocativo.
A volte e' opportuno raggruppare (gerarchicamente) gli elementi di un'interfaccia in classi (es. per affinita' di funzione). Le classi vanno scelte in modo significativo, e deve essere visivamente riconoscibile quali oggetti appartengono a ciascuna classe.
Se in un gruppo di elementi raggruppati esiste un ordine logico, tale ordine va riflesso nella disposizione degli elementi.
Similarita' per apparenza, disposizione, comportamento dei vari
elementi presenti nell'interfaccia.
Esempio: tutti i bottoni di stessa misura, stessa gamma di colori, si
azionano con stesso tasto del mouse...
Similarita' con altre interfacce gia' viste
facilita l'apprendimento dell'utente.
Esempio: menu' "file" presente in applicazioni diverse con stessa
posizione e stesse funzioni.
Consistenza (coerenza) di quanto mostrato dall'interfaccia con
lo stato corrente dell'applicazione sottostante.
E determinismo (stessa azione produce stesso effetto in qualunque
momento sia fatta).
Interazione = modalita' attraverso la quale l'utente controlla l'esecuzione di un'applicazione.
L'interazione consiste in azioni dell'utente sui dispositivi di input (tastiera, mouse) che provocano reazioni (feedback) da parte dell'interfaccia.
Scelta dello stile di interazione primario (a menu', a scheda, linguistico, a manipolazione diretta).
I vari stili si possono combinare tra loro nella stessa interfaccia per ottenere maggior facilita' d'uso. Attenzione pero' a mantenere il tutto consistente.
"Feedback" = controsegnale, risposta, riscontro (segnale che l'interfaccia ha "recepito" l'azione dell'utente).
Importante che l'applicazione mostri di reagire alle azioni
dell'utente.
Che l'utente riceva un risultato immediatamente.
Il feedkack facilita l'apprendimento da parte dell'utente.
L'assenza di feedback disorienta l'utente.
In caso di impossibilita' a compiere un'operazione
fornire messaggio significativo.
In caso di operazioni lunghe dare segnale che elaborazione e'
in corso (es. dare al puntatore forma di orologio o clessidra).
L'interfaccia riceve azioni da parte dell'utente che non sono conformi alle specifiche del sistema (opzioni non sensate, non valide, invocate per errore...) senza conseguenze negative per l'utente (es. perdita di dati).
Tecniche comunemente usate:
Tolleranza a errori facilita l'apprendimento (posso esplorare le funzionalita' dell'interfaccia senza timore di effetti negativi).
Progettare considerando le funzionalita' dell'applicazione e gli utenti.
Identificare e capire le attivita' applicative
che l'utente ha interesse ad effettuare attraverso l'interfaccia.
Tracciare profilo di un insieme di attivita' (task)
su cui valutare l'interfaccia.
Scomporre gerarchicamente ogni attivita' in sotto-attivita' (sub-task) fino ad arrivare alla singola azione da prevedere nell'interfaccia.
Stimare frequenza delle varie attivita'. Le piu' frequenti devono essere piu' facilmente accessibili.
Tracciare profilo dell'utente tipico:
eta', istruzione, cultura, esperienza
(del dominio applicativo e di computer),
frequenza con cui usa lo strumento.
Eventualmente piu' di un profilo se utenza e' eterogenea.
Tenere conto delle capacita', esperienza, limitazioni dell'utente tipico (relativamente a percezione, memoria, attenzione e apprendimento). Nonche' della predisposizione d'animo (ad alcuni computer causa rifiuto o ansieta', altri ne sono attratti).
Stessa applicazione puo' richiedere interfacce diverse per utenze diverse.
Cinque fattori umani nella valutazione di un'interfaccia. Ci riferiamo a un'attivita' (task) applicativa:
In piu' ci sono da considerare i costi economici per progetto e realizzazione dell'interfaccia, strettamente connessi al tempo richiesto (mesi/uomo).
Alcuni obiettivi sono in conflitto fra loro.
Importanza di ciascun fattore dipende dall'applicazione in questione.
Esempi:
Sistemi critici (controllo di traffico aereo,
centrali nucleari, strumentazioni mediche...).
Importante esecuzione rapida e senza errori.
Costi e tempi di apprendimento importano poco.
Soddisfazione importa poco perche' utenti ben motivati.
L'utente deve essere colui che controlla l'interfaccia, decidendo quali funzionalita' dell'applicazione vuole attivare e quando, quali informazioni vuole che gli siano presentate, quando, come, con che aspetto estetico...
Il progetto dell'interfaccia deve essere sufficientemente flessibile per venire incontro ad utenti con diverse necessita' ed abilita'.
Persone hanno diverse preferenze per stile di interazione (linguistico, menu', scheda, manipolazione diretta), per modo di presentare l'informazione (grafica o tabulare, densa o sparsa), per impostazione (visione locale o visione di insieme).
Sistema a livelli per soddisfare tutti. Possibilita' di scegliere densita' dell'informazione presentata e dettaglio del feedback. (da spiegazioni dettagliate a quasi zero).
Interfacce limitate ma semplici e intuitive per persone digiune o spaventate dai computer. Es. schermi sensibili al tatto piuttosto che mouse...
Esempi:
Una persona ha piu' facilita' a riconoscere che a ricordare. Esempio: riconoscere un comando in una lista di opzioni piuttosto che ricordarne il nome a memoria.
Quindi occorre:
Progettare in modo da facilitare la creazione di versioni locali.
E' un problema molto attuale.
Esempio: tenere tutte le etichette in un file cosi' che basti solo tradurre
quel file senza fare modifiche al codice.
Versioni locali possono differire per:
Interfacce per servizi standard progettate in modo da poter essere
usate da disabili.
Interfacce per fornire servizi speciali in aiuto a utenti disabili.
Udito
Computer facilita persone con problemi di udito/parola.
Email, fax... meglio rispetto a telefono.
Sostituire il bip (come segnale di errore) con segnale visivo.
Vista
Possibilita' di ingrandire porzioni di schermo.
Sintesi di voce da testi scritti (text to speech).
Riconoscimento del linguaggio parlato (speech recognition).
Siamo agli inizi...
Disabilita' fisiche
Richiedono misure ad hoc secondo il tipo di disabilita'.
Anziani
Computer puo' facilitare cominicazione a scopo sociale ricreativo
e anche lavorativo.
Di solito anziani hanno paura del computer e di non essere
capaci ad usarlo.
Fare interfacce semplici, che infondano fiducia.