vuoi
o PayPal
tutte le volte che vuoi
Manipolazione diretta
(Si fa l’esempio del mouse e del video che hanno permesso la nascita delle GUI = graphical user
interface, e dello stile a manipolazione diretta)
La manipolazione diretta è uno stile di interazione in cui agiscono direttamente su oggetti virtuali
usando strumenti virtuali mostrati sullo schermo ma l’utente deve percepire la loro esistenza e
capirne il significato e l’uso. L’ambiente virtuale è una metafora di un ambiente reale con
adattamenti ed estensioni con determinate caratteristiche:
• Visibilità ed affordance (mi devono suggerire quello che fanno) degli oggetti di interesse
• Azioni rapide, reversibili ed incrementali
• Azioni fisiche (non con comandi)
In sostanza è event-driven programming.
Linee guida per progettare Interfacce a Manipolazione diretta:
• Scegliere una metafora che assicuri un rapido e facile sviluppo di un accurato modello
mentale
• Creare rappresentazioni visuali dei compiti dell’utente
• Fornire azioni rapide, incrementali, reversibili
• Sostituire scrittura con puntamento/selezione
• Presentare un layout visualmente piacevole
• Rendere i risultati delle azioni immediatamente visibili – fornire un veloce feedback visuale
o uditivo.
I primi 2 punti riguardano la progettazione del modello concettuale (come le funzionalità sarà per
l’utente), gli altri sono per scelte di più bassi livelli, facilitati dagli ambienti di sviluppo.
Come progettare interfacce e manipolazione diretta? L’idea è di creare rappresentazioni visuali dei
compiti dell’utente fornendo azioni rapide, incrementali e reversibili. Deve essere presentato un
layout piacevole rendendo i risultati delle operazioni subito visibili all’utente con dei feedback di
tipo audio/video. 49
Il ciclo di Norman in questo caso è il seguente:
• Formare un goal = le differenti azioni suggerite dall’interfaccia dovrebbero essere una guida
per i vari goal che possono essere raggiunti
• Formulare un’intenzione = anche qui, le azioni disponibili forniscono una guida
• Pianificare la sequenza di azioni = immediato in quanto le azioni sono visibili
• Eseguire le azioni = attraverso la manipolazione diretta degli oggetti del compito
• Percepire cosa è successo = l’effetto delle azioni è immediatamente visibile
• Interpretare cosa è successo = non ci dovrebbe essere problema, l’immagine sullo schermo
rappresenta lo stato del sistema
• Valutare rispetto al goal = dovrebbe essere ovvio dalla rappresentazione visuale se il goal è
stato raggiunto o meno
Menù
Il menù è una lista di opzioni presentate in forma di testo, icone visuali, sonore (earcon) o tattili.
Metafora: il menu del ristorante. Nasce dall’evoluzione del linguaggio a comandi: trasferisce il carico
cognitivo dall’uomo alla macchina. La macchina mostra possibilità, l’uomo riconosce situazioni e
possibilità di azione ed effettua una o più selezioni. Esistono vari tipi di menù.
Come progettare un menù? Dare titoli ai menù
che riflettano le loro funzioni raggruppando le
voci di menù in maniera significativa (non
troppo lunghi), ordinandoli in maniera
significativa, utilizzare la terminologia e layout
consistenti. Fornire help contestuale.
Linee guida per progettare Menu:
• Usare la semantica del compito per
organizzare i menu
• Dare titoli ai menu che riflettano le loro
funzioni
• Raggruppare le voci di menu in maniera significativa
• Evitare menu troppo lunghi: considerare l’ampiezza dello schermo quando si deve decidere
il numero delle voci di menu
• Ordinare le voci di menu in maniera significativa
• Usare nomi brevi per le voci di menu
• Usare terminologia e layout consistenti
• Fornire help contestuale
Ciclo di Norman per i menù:
• Formare un goal = l’utente può non sapere quale obiettivo perseguire col sistema, ma
questo, tramite i menu, può far venire in mente qualche obiettivo.
• Formulare un’intenzione = le voci di menu forniscono una guida su come raggiungere il goal
• Pianificare la sequenza di azioni = identificare le azioni appropriate dipende da quanto bene
la gerarchia di menu è organizzata. Idealmente l’utente dovrebbe essere capace di
50
indovinare dove si trova una certa voce di menu nella gerarchiaàpiù o meno complicata e
dipende se comprende molti livelli (potrebbe essere dispendioso capirli)
• Eseguire le azioni = dipende ancora dalla struttura dei menu, può essere necessario
muoversi nella gerarchia per completare il compito (può diventare lungo e noioso)
• Percepire cosa è successo = una qualche forma di conferma visualeànon ci dovrebbe
essere problema, l’immagine sullo schermo rappresenta lo stato del sistema
• Interpretare cosa è successo = dipende dalla qualità del feedback
• Valutare rispetto al goal = dipende dalla qualità del feedbackàdovrebbe essere ovvio dalla
rappresentazione visuale se il goal è stato raggiunto o meno
Moduli (Fill-in-form)
I moduli / Fill-in-form sono dei moduli elettronici il cui uso mima la compilazione del modulo
cartaceo (Metafora: il modulo cartaceo). Evoluzione del linguaggio a comandi che trasferisce il
carico cognitivo dall’uomo alla macchina: la macchina mostra possibilità e predispone il cursore sul
campo da riempire, l’uomo risponde scrivendo il dato richiesto nel campo (secondo una strategia
prefissata)
Vengono fornite delle linee guida per la corretta progettazione dei moduli:
• Indicare chiaramente i campi richiesti
• Dare titoli o etichette significative ai campi
• Fornire istruzioni comprensibili
• Fornire raggruppamento logico e chiara sequenza ai campi
• Presentare con un layout piacevole
• Usare terminologia e abbreviazioni consistenti
• Restringere i caratteri che possono essere inseriti
• Dare default qualora sia possibile
• Permettere un facile spostamento del cursore
• Fornire correzione errori di caratteri singoli o interi campi
• Fornire messaggi di errore per valori non accettabili e indicare gli errori prima possibile
Ciclo di Norman per i moduli:
• Formare un goal = completare un form è generalmente l’unico task necessario per il
raggiungimento del goal
• Formulare un’intenzione = l’utente formula l’intenzione di compilare il form
• Pianificare la sequenza di azioni = i campi del form indicano le azioni necessarie
• Eseguire le azioni = dipende dall’implementazione (scrivere nei campi, selezionare da liste)
• Percepire cosa è successo = si può vedere immediatamente cosa è stato inserito nel campo
• Interpretare cosa è successo = si può controllare se il dato è inserito correttamente
• Valutare rispetto al goal = se il dato è stato inserito correttamente si è vicini al
completamento del compito per raggiungere il goal
• in questo caso la distanza semantica non esiste
à
Stili antropomorfici (sfruttano le capacità di comunicazioni già esistenti): Le interfacce
antropomorfiche mirano a interagire con gli utenti nello stesso modo con cui gli umani interagiscono
fra di loro. Interfacce basate sul linguaggio naturale. Interfacce basate sul riconoscimento di
51
espressioni facciali, gesti (collegati alla cultura degli utentiàgesto corna), movimento occhi.
Occorre comprendere non solo l’hardware e il software ma anche come gli umani comunicano
attraverso linguaggio (gesti, espressioni, etc.). Il segnale va separato dal rumore, il significato va
identificato nei messaggi ambigui.
Linguaggio naturale: Scritto (fin dai primi sistemi esperti agli attuali chatbots) Parlato (Voice User
Interface – VUI).
VUI studiato fin dagli anni ’50, oggi molto diffuse nel mercato consumer. Vantaggi di una VUI:
• Veloce: usare la voce è 5/10 volte più veloce rispetto a digitare una query
• Intuitiva: non sono necessarie particolari competenze
• Non richiede l’uso delle mani: elimina il bisogno di touchscreen
• Personale: vicina a interazione umano-umano
Algoritmi di Natural Language Processing (NLP)
Conversare con la macchina in forma scritta Chatbot: software progettato per simulare una
conversazione con un essere umano Da Eliza (1966) Parodia di una psicoterapeuta. Risponde alle
domande riformulando le affermazioni dell’utente. L’autore scelse la psicoterapia "per evitare il
problema di dare al programma una vera conoscenza" … a ChatGPT (2022)
Smart speaker… e i loro virtual assistant Software che interpreta il linguaggio naturale e può
à
dialogare con interlocutori umani per fornire informazioni o compiere determinate operazioni. Le
risposte possono essere date in forma scritta, attraverso voci sintetizzate oppure in forma multi-
modale.
Caratteristiche della conversazione Orientamento agli obiettivi Turni Cortesia Chiarezza e velocità
Tratti umani (voce, avatar, …) Tolleranza agli errori Conferma dell’input Consapevolezza del
contesto Latenza Disambiguazione.
Conferma dell’input: Dare troppe conferme può assicurare l’accuratezza ma diventa fastidioso per
l’utente. Domande da porsi per scegliere come progettare: Quali sono le conseguenze se il dato in
input viene frainteso? Qual è il rischio? Quali modalità ha il sistema per fornire un feedback? Audio?
Luci? Il sistema avrà uno schermo? Qual è il tipo di conferma più appropriato per la conversazione
che si sta progettando? Esplicita? Implicita? Ibrida?
Tenere traccia del contesto: Importante per anticipare le richieste dell’utente. Domande successive
su uno stesso argomento non devono ripetere tutti i dettagli già forniti esplicitamente nei turni
precedenti. Latenza: Intervallo di tempo che intercorre tra l’input al sistema e il momento in cui
l’output è disponibile. Generalmente causata da: Problemi di connettività Elaborazione dati Accesso
52
a databse. Se si è a conoscenza a priori di un tempo di latenza bisogna fornire dei segnali verbali (es.
«attendere prego») o non verbali (es. suoni, led, …). Disambiguazione: Se non sono disponibili
informazioni contestuali il sistema dovrà chiedere all’utente di chiarire meglio quello che vuole
Esempio: «Che tempo fa a Springfield?» Negli USA ci sono 33 città che si chiamano Springfield Quale
prenderà in considerazione un virtual assistant?
Riconoscimento espressioni facciali:
Riconoscimento gesti da telecamere(gesto statico o dinamico):
&