# Interface design

Interface design, letteralmente progettazione delle interfacce, è comunemente intesa come l'attività di progettazione dell'interfaccia utente (in inglese UI, User Interface) di un qualsiasi sistema informatico e software che dialoga con l'utente attraverso uno schermo.
In realtà l'interfaccia uomo/macchina (nell'accezione più comune la "macchina" è il computer) non è composta solo dall'interfaccia grafica che si visualizza virtualmente su uno schermo, ma comprende anche il sistema delle interfacce fisiche con cui l'utente interagisce, come tastiere, mouse, pulsanti, joystick, manopole, pannelli di controllo, segnalatori, indicatori e altri controlli fisici.
Per cui la progettazione delle interfacce intesa in modo più completo è la progettazione del sistema di interfacce hardware e software con cui l'utente interagisce durante l'uso di un sistema informatico, di un macchinario o di un dispositivo elettronico. È importante notare che ogni interfaccia è un sistema complesso che a sua volta può contenere altre interfacce e sistemi di interazione, ciascuno dotato di una propria logica di funzionamento e di interazione.

## Web design

Nel caso del Web design si studia l'aspetto grafico finale del prodotto in questione, affinché lo stesso possa ben apparire e catturare l'attenzione dell'utente che lo visita. Ciò dipende fortemente dal target del sito web, la tematica trattata e l'individuo, l'azienda, l'associazione, o la società che pubblicizza.

## Processi

La progettazione dell'interfaccia utente richiede una buona comprensione delle esigenze dell'utente. Si concentra principalmente sulle esigenze della piattaforma e sulle aspettative degli utenti. Ci sono diverse fasi e processi nella progettazione dell'interfaccia utente, alcuni dei quali sono più richiesti di altri, a seconda del progetto.
* Raccolta dei requisiti di funzionalità: raccolta di un elenco delle funzionalità richieste dal sistema per raggiungere gli obiettivi del progetto e le potenziali esigenze degli utenti.
* Analisi degli utenti e dei compiti: una forma di ricerca sul campo è l'analisi dei potenziali utenti del sistema studiando come eseguono i compiti che il progetto deve supportare e conducendo interviste per elaborare i loro obiettivi. Le domande tipiche riguardano:
** Cosa il sistema vorrebbe che l'utente faccia?
** Come si adatterebbe il sistema al normale flusso di lavoro o alle attività quotidiane dell'utente?
** Quanto è tecnicamente esperto l'utente e quali sistemi simili utilizza già l'utente?
** Quali stili di aspetto dell'interfaccia attraggono l'utente?
* Architettura dell'informazione - sviluppo del processo e / o del flusso di informazioni del sistema (cioè per i sistemi ad albero del telefono, questo sarebbe un diagramma di flusso ad albero delle opzioni e per i siti web sarebbe un flusso del sito che mostra la gerarchia delle pagine).
* Prototipazione: sviluppo di wireframe, sotto forma di prototipi cartacei o semplici schermi interattivi. Questi prototipi sono privati di tutti gli elementi di look & feel e della maggior parte dei contenuti per concentrarsi sull'interfaccia.
* Ispezione dell'usabilità: consente a un valutatore di ispezionare un'interfaccia utente. Questo è generalmente considerato più economico da implementare rispetto ai test di usabilità (vedere il passaggio di seguito) e può essere utilizzato nelle prime fasi del processo di sviluppo poiché può essere utilizzato per valutare prototipi o specifiche per il sistema, che di solito non possono essere testati sugli utenti. Alcuni metodi comuni di ispezione dell'usabilità includono il walkthrough cognitivo, che si concentra sulla semplicità di eseguire attività con il sistema per i nuovi utenti, la valutazione euristica, in cui una serie di euristiche viene utilizzata per identificare i problemi di usabilità nella progettazione dell'interfaccia utente e la procedura dettagliata pluralistica, in cui un gruppo selezionato di persone attraversa uno scenario di attività e discute i problemi di usabilità.
* Test di usabilità (test dei prototipi su un utente reale) spesso utilizzando una tecnica chiamata protocollo think ad alta voce in cui si chiede all'utente di parlare dei propri pensieri durante l'esperienza. Il test di progettazione dell'interfaccia utente consente al progettista di comprendere la ricezione del progetto dal punto di vista dello spettatore e quindi facilita la creazione di applicazioni di successo.
* Progettazione grafica dell'interfaccia utente. Questi sono i pannelli di controllo e le facce del design; Le interfacce a comando vocale implicano l'interazione orale-uditiva, mentre le interfacce basate sui gesti testimoniano che gli utenti interagiscono con gli spazi di progettazione 3D tramite movimenti corporei. Può essere basato sui risultati sviluppati durante la ricerca dell'utente e perfezionati per risolvere eventuali problemi di usabilità riscontrati attraverso i risultati dei test. A seconda del tipo di interfaccia che si sta creando, questo processo richiede in genere un pezzo di programmazione per computer per convalidare moduli, stabilire collegamenti o eseguire un'azione desiderata.
* Manutenzione del software: dopo l'implementazione di una nuova interfaccia, potrebbe essere necessaria una manutenzione occasionale per correggere bug del software, modificare le funzionalità o aggiornare completamente il sistema. Una volta presa la decisione di aggiornare l'interfaccia, il sistema legacy subirà un'altra versione del processo di progettazione e inizierà a ripetere le fasi del ciclo di vita dell'interfaccia.

## Requisiti

Le caratteristiche dinamiche di un sistema sono descritte in termini di requisiti di dialogo contenuti in sette principi della parte 10 della norma sull'ergonomia, la ISO 9241. Questo standard stabilisce un quadro di "principi" ergonomici per le tecniche di dialogo con definizioni di alto livello e applicazioni illustrative ed esempi dei principi. I principi del dialogo rappresentano gli aspetti dinamici dell'interfaccia e possono essere per lo più considerati come la "sensazione" dell'interfaccia. I sette principi del dialogo sono:
* Idoneità per l'attività: il dialogo è adatto per un'attività quando supporta l'utente nel completamento efficace ed efficiente dell'attività.
* Auto-descrittività: il dialogo è auto-descrittivo quando ogni fase del dialogo è immediatamente comprensibile tramite feedback dal sistema o viene spiegato all'utente su richiesta.
* Controllabilità: il dialogo è controllabile quando l'utente è in grado di avviare e controllare la direzione e il ritmo dell'interazione fino al punto in cui l'obiettivo è stato raggiunto.
* Conformità con le aspettative dell'utente: il dialogo è conforme alle aspettative dell'utente quando è coerente e corrisponde alle caratteristiche dell'utente, come la conoscenza del compito, l'istruzione, l'esperienza e le convenzioni comunemente accettate.
* Tolleranza agli errori: il dialogo è tollerante agli errori se, nonostante evidenti errori di input, il risultato desiderato può essere raggiunto con nessuna o minima azione da parte dell'utente.
* Idoneità all'individualizzazione: il dialogo è capace di individualizzazione quando il software dell'interfaccia può essere modificato in base alle esigenze del compito, alle preferenze individuali e alle abilità dell'utente.
* Idoneità all'apprendimento: il dialogo è adatto all'apprendimento quando supporta e guida l'utente nell'apprendimento dell'uso del sistema.
Il concetto di usabilità è definito dallo standard ISO 9241 in base a efficacia, efficienza e soddisfazione dell'utente. La parte 11 fornisce la seguente definizione di usabilità:
* L'usabilità è misurata dalla misura in cui vengono raggiunti gli obiettivi di utilizzo previsti del sistema complessivo (efficacia).
* Le risorse che devono essere spese per raggiungere gli obiettivi prefissati (efficienza).
* La misura in cui l'utente trova accettabile il sistema complessivo (soddisfazione).
Efficacia, efficienza e soddisfazione possono essere viste come fattori di qualità dell'usabilità. Per valutare questi fattori, è necessario scomporli in sotto-fattori e, infine, in misure di usabilità.

## Ricerca

Il design dell'interfaccia utente è stato un argomento di considerevole ricerca, anche sulla sua estetica. Gli standard sono stati sviluppati già negli anni '80 per definire l'usabilità dei prodotti software. Una delle basi strutturali è diventata il modello di riferimento dell'interfaccia utente IFIP. Il modello propone quattro dimensioni per strutturare l'interfaccia utente:
* La dimensione di input/output (l'aspetto)
* La dimensione del dialogo (la sensazione)
* La dimensione tecnica o funzionale (l'accesso a strumenti e servizi)
* La dimensione organizzativa (il supporto alla comunicazione e alla cooperazione)
Questo modello ha notevolmente influenzato lo sviluppo dello standard internazionale ISO 9241 che descrive i requisiti di progettazione dell'interfaccia per l'usabilità. Il desiderio di comprendere i problemi dell'interfaccia utente specifici dell'applicazione nelle prime fasi dello sviluppo del software, anche se un'applicazione veniva sviluppata, ha portato alla ricerca sugli strumenti di prototipazione rapida della GUI che potrebbero offrire simulazioni convincenti di come un'applicazione reale potrebbe comportarsi nell'uso di produzione. Alcune di queste ricerche hanno dimostrato che un'ampia varietà di attività di programmazione per software basato su GUI può, infatti, essere specificata attraverso mezzi diversi dalla scrittura di codice di programma.
La ricerca è fortemente motivata dalla crescente varietà di dispositivi che possono, in virtù della legge di Moore, ospitare interfacce molto complesse.