Paola Magillo, Univestita' di Genova, Corso di Interfacce Utente per Informatica, a.a. 2002-2003.

PRINCIPI DI PROGETTAZIONE DI UNA INTERFACCIA UTENTE

[Estratto dal capitolo 1 del libro di Marcus & C. e dal capitolo 1 del libro di Shneiderman]

Di che cosa parliamo

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

Presentazione = aspetti visivi dell'interfaccia: disposizione, colore, forma e dimensione degli elementi che la compongono.

Conciliare estetica, leggibilita' e facilita' d'uso:

Aspetto attraente

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.

Rappresentazioni significative e riconoscibili

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.

Strutturazione

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.

Consistenza

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

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.

Stile di interazione

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 immediato

"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).

Tolleranza agli errori

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).

Fattori umani

Progettare considerando le funzionalita' dell'applicazione e gli utenti.

Funzionalita'

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.

Utenti

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.

Fattori chiave

Cinque fattori umani nella valutazione di un'interfaccia. Ci riferiamo a un'attivita' (task) applicativa:

  1. Tempo di apprendimento: quanto tempo impiega utente ad imparare a svolgere l'attivita'
  2. Velocita' di esecuzione: quanto tempo impiega utente a svolgere l'attivita' (dopo avere imparato)
  3. Frequenza di errori: quanti e quali errori utente tende a fare nello svolgere l'attivita'
  4. Persistenza nel tempo: quanto tempo utente impiega a dimenticare come si fa (dipende anche da frequenza d'uso)
  5. Soddisfazione soggettiva

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:

Indicazioni generali

Il controllo all'utente

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:

Ridurre la quantita' di informazione da ricordare

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:

Problematiche piu' avanzate

Internazionalizzazione

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:

Es: back/forward con frecce verso sx/dx presuppongono ordine di lettura da sx a dx.

Utenti con disabilita'

Interfacce per servizi standard progettate in modo da poter essere usate da disabili.
Interfacce per fornire servizi speciali in aiuto a utenti disabili.