Questa calcolatrice ha 20 tasti, il tasto ON non ha alcuna funzione tranne quella di accendere la calcolatrice; il tasto OFF spengerà la calcolatrice.
Premiamo ON: il display mostra uno 0.
Se l'utente preme una cifra (escluso lo 0) tale valore è vine visualizzato sul display; premiamo un altro numero, questo viene accodato al valore precedentemente immesso (come se moltiplicassimo ciascuno valore per una potenza di 10: infatti questa propietà vale anche se premiamo due volte 0: 0+(0*10)=0.
Se viene digitato il punto decimale (secondo bottone da sinistra nella fila di fondo) allora i numeri sono divisi per 10, finché il display non è pieno.
Usare il calcolatore
Cosa accade dopo aver pigiato il punto decimale: le cifre premute oltre la possibilità del calcolatore vengono ignorate (il display mostra sempre lo stesso valore) altrimenti è possibile fare un Reset premendo il tasto C.
Quello che è stato detto fino ad ora è difficile ma comprensibile in quanto sono stati adottate nozioni di rappresentazione e manipolazione del numero comuni a tutti gli utenti.
Capire il calcolatore
Se si preme un tasto con una funzione matematica (+,-,*,/) non si ha alcun effetto visivo ma quando si digita una altra cifra, il diplay mostra un nuovo valore - quello che non è noto (perchè abbiamo un display semplice) è il numero di valori con cui lavoriamo:
1 è il numero digitato dall'utente;
2 rappresenta il calcolo corrente.
Si supponga di avere un valore (risultato parziale) sul display, digitiamo il +, poi un altro numero ed infine il tasto = : otterremo il risultato totale (aggiunta del nuovo numero al valore precedente).
Calcolatore bi-modale
Digitare una cifra: cambio del display (viene mostrato il numero corrente).
Digitare un operatore: cambio del display (viene mostrato il primo valore che partecipa all'operazione selezionata).
Ma i tasti presentano caratteristiche che provocano non pochi problemi all'utente: ho premuto con adeguata forza il tasto? Quante volte ho premuto il tasto? ecc...
A volte l'utente non sa distinguere se il display mostra il valore finale o quello corrente.
Questa calcolatrice presenta duemodalità indistinguibili.
Quanti modi ?
Vi sono calcolatrici che hanno più modi: premere un operatore due volte consente una ripetizione dell'operazione dell'ultimo valore immesso; premendo due volte uno stesso operatore si può associare una funzione diversa (es: /=divisione / /= inverso);combinazioni speciali per avere operatori speciali; ecc...
A volte non c'è alcun modo di capire in che modalità sia la calcolatrice.
Modalità di ritardo
"Non mi imporre il modo" L. Tesler, 1981- i progettisti rimediano a in una maniera del [piecemeal].
In una modalità ritardata è dipendente dal tempo: si clicca su un file eseguibile e mentre quest'ultimo sta per essere visualizzato (ritardo temporale dovuto ad operazioni di caricamento in memoria del kernel del programma) si sottopone un nuovo comando al sistema.
Sorgono incertezze: l'ultimo comando immesso era esatto ? Verrà esguito dal sistema ? Se viene visualizzato l'ultimo comando, che cosa ne eè stato del primo ? Se viene visualizzato il primo comando, quando vedrò il secondo ?.
Modalità di uscita
La diagnostica può essere confusa con del testo ordinario: l'utente digita il comando.
1.elenco di file
2.ed accade che un file contenga "il file non esiste".
Il messaggio è diagnostico o il contenuto di un file?
Non tutti gli spazi possono essere stati sottoposti dall'utente (es.: il comando di formattazione giustificato in Word incrementa gli spazi nel testo).
In tutti questi casi è difficile distinguere l'uscita.
Anche se il numero di simboli presenti è elevato non c'è alcun modo di risolvere il problema di disambiguire il significato dell'output: una soluzione potrebbe essere quella di riservare uno simbolo speciale es.:* ma "*A" può denotare un programma ASCII o il controllo A.
Modalità inerziale
Il sistema può provvedere a fornire dettagli per default, purché tale l'informazione sia ignota per default:
ampiezza della piazza ? 1.2471 enter
Quindi:
ampiezza della piazza ? 1.2471 ? enter
Questo è un meccanismo di richiamo passivo dal sistema che domanderà all'utente- per default- se il valore precedentemente immesso è a quello immesso in un momento successivo (il valore precedente è di default).
Pericoli della modalità inerziale
Fare assunzioni per default non è una buona scelta se il risultato è irreversibile.
Alcuni menu richiedono due azioni: in primo luogo la scelta ed in secondo luogo una conferma, la scorsa scelta è inerziale- la scelta per default è nell'ultimo comando selezionato dall'utente (tipico nei software di posta elettronica).
Lo stesso accade quando si usano molti menú- uno dopo un l'altro- il comando fatto su un menù deve provvedere che vi sia la possibilità di eseguire la stessa scelta che si è fatta in una sessione precedente (questo è il valore di default).
Alcuni moduli non modali possono tornar utili e sono chiamati inerziali (qualche volta l'utente è disorientato o non può fare quello che vuole) per questo abbiamo i modi.
GUEST per modi
input mode:
L'utente premendo il tasto q può intendere molte cose: la lettera q, il comando QUIT o, in alcuni casi ERROR. Il guep corrispondente indica che un buon sistema conversazionale è tale se tutto quello che presenta possa essere usato in modo costante/prevedibile e possa essere usato senza guardare lo schermo.
Se c'è più di un modo l'utente può passare da uno all'altro utilizzando sequenze di comandi fisse indipendenti dal modo in cui si trova ( es: per Windows 95 la combinazione di tasti ALT+TAB) .
Per esempio ESCAPE porterà l'utente a un stato ben-determinato: esterno alla domanda attualmente in gestione, e questo anche se quella azione è sottoposta più volte: Proprietà dell'idempotenza (ESCAPE ESCAPE= ESCAPE).
Modalità pre-svuotata (pre-emptive)
Le modalità possono essere riassunte come segue: "si può fare qualche cosa dovunque."
Usare una caratteristica temporale: ogni comando dell' utente può essere scritto se è premesso da un cursore (! per esempio).
Usare una caratteristica spaziale: con diverse finestre si può cambiare la modalità di lavoro a seconda della parte dello schermo dove si intende lavorare, tipicamente all'interno di una nuova finestra. In Windows 95 è consentito di lavorare in modalità MS-DOS cliccando sull'icona denominata Prompt MS-DOS.
Output modes
La modalità o/p dipende dalla storia,
Nel caso della calcolatrice è stato usato un paradigma imperativo ed erano presenti 2 modalità; se il sistema fosse stato dichiarativo, sarebbe bastata una sola modalità, l'utente poteva essere guidato solo da quello che vedeva sul display,
Una migliore interfaccia per la calcolatrice
In questo modo l'utente può fare somme solamente in base a ciò che vede- un buon progetto mostra tutto ciò che è attinente al calcolo per l'utente.
Nulla è sconosciuto- ogni tasto ha un significato definito che è ben mostrato.
Possono essere percepite solo le entità attinenti al calcolo, senza possibilità di errore (in questo caso, il tasto '=' è ridondante).
Anni fa,nei word processor si disponeva di comandi rigidi (es:CENTRE utilizzato per centrare una linea) ed il solo modo di vedere i risultati era quello di stampare la linea.
WYSIWYG evita i problemi di programmazione "[blindly]" per configurare il testo ma limita il controllo di un programmatore sofisticato.
Un possibile compromesso può essere: avere WW per cose semplici e una programmazione libera per caratteristiche avanzate.
WW spinge sia il progettista che l'utente a condividere concetti riguardanti il sistema conversazionale.
Le buone caratteristiche di una creazione del sistema mediante il WW possono però risultare tediose per un esperto.
WW
Nei sistemi WW si vede sempre il risultato finale, l'utente può concentrarsi sui contenuti e poi sul modulo o viceversa- il sistema è non-determinato, non può vedere la storia, es: l'evoluzione della strutturazione, il processo di migliorare un progetto (per il testo) è quella di proporre l'ultima versione che è stata persa.
Alcuni di questi problemi possono essere risolti con le funzioni di ricupero: UNDO e REDO (vedi dopo).
GUEP per modalità inerziale
Le modalità inerziali possono essere locali o globali; la prima corrisponde ai dati visibili sullo schermo (tutto sta dove è stato lasciato- efficace per l'utente che non ha cambiato nulla nel frattempo- display inerziale); il tipo globale da informazioni su quello che accade dappertutto (tutti i dati vengono abbandonati se, dopo un certo periodo, non si utilizzano).
L'utente potrebbe fare lo scrolling nello schermo ed aspettare di vedere tutti i dati come li avave lasciati.
In WYSIWYG vorremmo conosce/avere più informazioni di quelle che possono essere viste/stampate.
Strategie inerziale
I menu sono buoni esempi per vedere i principi inerziali (selezionare se si usa un mouse, battere un tasto se si devono scegliere dei numeri).
La scelta di un progettista è: quale entrata del menu deve essere accentuata? L'ultima scelta? La prima per default? questa è un altro modo di guardare le gueps inerziali.
Tre generi di inerzialità sono noti: 1) quello usato recentemente, 2) quello con maggiore probabilità di essere usato, 3) quello usato più frequentemente.
Una buona guep è ignorare la domanda quando si crea un modello per l'interfaccia.
In WYSIWYG consideriamo uno stile per sistemi della lavorazione del testo conversazionali ma potrebbe anche valere per il progetto o per mia domanda quale stamperà fuori quello che uno ottiene come un risultato sullo schermo.
Temporizzatore da cucina
Normalmente usato nella cucina per calcorare i tempi di cottura e suggerire come perfezionarli mediante un programma: lavorano come orologi, tanti tempo-cassa , con interruttori per accendere il forno (ON) e come interruttori per spengere il forno (OFF).
Se il sistema è progettato con un sistema WYSIWYG-based avremo bisogno di un display con quattro modalità: 1) tempo, 2) tempo di cottura dell'uovo, 3) tempo di INIZIO cottura, 4) tempo di FINE cottura più 4 manopole di regolazione per posizionarsi sui diversi tempi.
I vecchi temporizzatori - meccanici- avevano solamente diverse manopole di regolazione dei temporizzatori e cursori con un unico display: nessuno controllo attivo (mostrava il tempo corrente), mostrava il tempo di cottura dell'uovo ed infine il tempo corrente, il tempo passato fino all'istante 0 del cronometro, il tempo di accenzione è fissato se quello calcolato non è stato raggiunto, alla fine la freccia del tempo ritorna al 0 cronometra posizione: solo una mostra per tutto 4 funziona.
I display mostra singolarmente qualunque cosa il temporizzatore faccia... se il forno era preparato ad accendersi per le 7 pm ed ora sono le 6 pm e l'utente vuole cucinare un uovo, lo può fare? Modificherà il tempo di accenzione? potrebbe pensare che per cambiare il display debba cambiare anche lo stato del temporizzatore (e perciò i posizionamenti). Sarebbe meglio utilizzare un temporizzatore WYSIWYG.
Menu di sistema
I sistemi a menu sono WYSIWYG- basato, tutte le scelte sono date ma se ne sono disponibili più di quelle mostrate allora non abbiamo più WYSIWYG.
Se digito un numero che non appartiene alle scelte indicate dal menu e viene prodotto un risultato (inaspettato) questo- di nuovo- non è un sistema WYSIWYG.
Tutte scelte dovrebbero essere visibili sullo schermo quando si seleziona una scelta/radice del menu si devono vedere tutti i possibili percorsi/figli.
Modalità elusiva
Essere generale (non dominio indipendente). Si devono esprimere chiaramente i modi e le proprietà dell'interfaccia.
Modi:= comandi delle mappe ai loro significati fra il sistema. Esempio: click del mouse, delete.
Alcuni significati sono difficile da comprendere per l'utente.
Qualche volta una maniera sembra cambiare: l'utente percepisce più modalità di quelle davvero presenti.
Interpretazione dei comandi
La strutturazione del compito è una guida ai modi.
I comandi di un sistema non-modale (unimodale) cambiano ciò che il sistema mostra.
progettano lo stato corrente nel prossimo stato quale può [formally] è scritto come:
I[c]E -> S
ha il seguente significato: c cambia lo stato corrente del sistema al prossimo stato.
Es: premendo i in un word processor il suo significato è:
I[i]E -> S cambia lo stato del microprocessore della parola nel prossimo stato
Nel caso del calcolatore
Si supponga che venga immesso il numero 5 in una calcolatrice: tutto quello che viene mostrato s viene moltiplicato per 10 e si aggiunge 5:
I[5]=s -> 10s + 5.
In generale
I[d]=s -> 10s + val(d).
Ma se il sistema è multi-modale un comando può cambiare sia lo stato del sistema che la sua modalità (es: i significati dei comandi che seguono).
Vedere attraverso i modi
Per le cose dette è opportuno considerare per l'interpretazione di un comando anche la modalità (m appartenente ad M:={insieme delle modalità})
I[c]m appartenente ad S -> (SxM) o equivalentemente
I[c]m appartenente ad (SxM) -> (SxM).
Es: una calcolatrice può operare nella modalità "decimale" o "esadecimale", la cifra in input non altera la modalità di m (10 o 16)
I[d]m = s -> (ms + val(d),m).
Insert or Type?
Un altro esempio: un word processor può usare i come un comando per "inserire" (Insert) o come una lettera da inserire nel testo.
I[i]m= s -> (s'+ val(i), m+1).
i ha un significato che dipende su dove è inserito e può modificare il significato dei comandi seguenti. m può rappresentare il posto dove si trova il cursore.
se abbiamo digitato i, quello che accade è l'inserimento della lettera a destra della posizione del mio cursore cioé in (m+1), s' sarebbe lo stato nuovo basato sullo stato s vecchio ma con la lettera alla posizione m.
Soluzione
La posizione del cursore è sempre visibile all'utente, potremmo includerlo nello stato S (così otterremo una monomodalità come accade nei word processor), in questo caso avremmo:
I'[c]appartiene ad S' -> S' dove S'= SxM questa collezione dello stato nuova cela il modo M ed ora I' ha un modulo unimodale.
Problemi legati ai locate modes
In che modo possiamo estendere i modi per giungere ad una relazione con lo stato del sistema? Lo stato può essere factored in molte vie.
Potremmo definire il modo come una dipendenza su qualche informazione, dati o procedura che non è visibile all'utente (punto di vista dell'usabilità).
I'[c]appartiene ad S' -> S' è unimodale ma se il componente M di S' è celato all'utente allora, il sistema è [modey].
Quello da celare e quello che da mostrare è un piccolo dilemma di Amleto per la progettazione di interfacce.
Modello di sistema effettivo
L'utente ha bisogno di essere aiutato sia da un modello effettivo che essere in grado di interpretare il suo stato- perciò rappresentazioni sofisticate (binario, bitmap, ecc...) non sono utili all'utente.
Consideriamo DELETE come un comando, esso lavora sempre nello stesso modo o no? quando viene digitato, può annullare l'ultima lettera o l'ultima linea o nulla se è messo in posizione alla cima del documento, perciò il suo significato dipende dalla posizione del cursore.
Non ci sarebbe bisogno di più modalità se tutta l'informazione dall'utente fossero i dati e tutto l'informazione dal computer fosse il codice programma, anche se questo non è sempre vero: qualche volta i dati imessi dall'utente modificano il significato dei comandi seguenti e dovrebbe essere trattati come un programma altre volte il computer può dare in output risultati parziale.
Differenze/analogie tra dati e programmi
1) collaudo per uguaglianza distinguere dati da programma. I dati sono uguali se sono identici. I programmi non hanno una unica rappresentazione, possono essere uguali anche con un codice diverso (scrive(3)=scrive(2+1)).
Alcuni programmi possono o non possono arrestarsi e, in genere, non si può dire quando; l'equivalenza del programma è in genere non-computable, [computability] di uguaglianza distingue programma da dati.
L'antecedente scelta di modello della lingua è cruciale (il Pascal presenta una sintassi diversa dal Prolog); alcuni programmi possono essere uguale in una linguaggio ma diversi in un altro.
2) programma e dati può essere distinto perchè la parte del programma è quello che il sistema è.Per un word processor è l'editor di testo elavora perchè ha un programma che gli consente di farlo, i programmi sono parziali mentre i dati sono totali.
L'efficacia di uguaglianza può essere basata sulla concetto di Turing-computabilità o computabilità conoscitiva (macchina o umano).
I colli di bottiglia della Macchina di Von Neumann inducono agli errori; pertanto si impone una distinzione pragmatica tra dati e programma (benchè programmatore dell'assemblatore ottimizzano i loro programmi per evitare tale distinzione) l'utente connette grave ostacolo fa il disegnatore a una distinzione prammatica incoraggiante pensare che maniere sono fissate dal disegno; in pratica sono utente ha citato, quello che una maniera è dipende su quello che l'utente cerca di fare.
EMACS è difficile usare perchè hanno molte modalit`.
La presenza di diverse modalità è inevitabile e sono presenti in molti apparecchi senza causare tribolazione (eccezioni: videoregistratori e/o controlli remoti).
Ultime considerazioni sui modi
La strategia migliore per operare è quella di celare all'utente ciò che può risultargli più oscuro oppure si ricorrerà all'introduzione di altri modi.
L'informazione che non connette l'utente con il computer aumenta l'unimodalità.
WYSIWYG è un guep prototipale.
L'utente è inspirato ad aver fiducia (nessuno trucco ignoto).
Il modello del sistema può essere capito facilmente.
L'utente può generalizzare la sua conoscenza.
"Fuori dalla vista fuori dalla mente": se qualche cosa può essere fatta senza guardare questo vuol dire che l'utente può operare senza pensare.
La differenza principale tra il calcolo conversazionale e quello BATCH stà nella possibilità di reinstradare il calcolo, arrestarlo, valutarlo, ricominciare e, se sono fatti degli errori effettuare un UNDO (sopprimere l'effetto di una modifica).
Gli errori non possono essere evitati; alcuni compiti possono essere complessi; vi possono essere dei difetti nei programmi; vi può essere una comprensione parziale del sistema, ecc...
Inoltre alcuni errori possono far perdere anche l'intero lavoro svolto (es: Se si risponde NO invece di CANCEL).
Alcune regole ragionevoli
Il sistema dovrebbe sottoporre una domanda più chiara- la rappresentazione dovrebbe essere migliorabile.
In linea di principio, il sistema dovrebbe essere consapevole del costo di azioni ed assicurare sicurezza per le usuali azioni fatte dall'utente (un click singolo del mouse non dovrebbe annullare centinaia di azioni compiute dell'utente).
Possono essere aggiunte nuove caratteristiche, si può camuffare un progetto povero per far sembrare l'interfaccia più potente e più appetibile commercialmente.
il sistema dovrebbe provvedere un UNDO meccanismo.
Vantaggi di UNDO
L'interazione può essere vista temporaneamente (ora questo poi quello ecc...) per poi cambiare spazialmente (un diagramma della storia dell'interazione).
La differenza tra utente e progettista si riducono ed entrambi pensano al corso di azioni.
Le proprietà di sistemi conversazionali vengono espresse in termini della storia dell'interazione anche se le proprietà formali sembrano più attinente all'utente.
Con un buon UNDO gli utenti sono incoraggiati a sperimentare, acquistano fiducia e così apprendono il sistema molto più velocemente: UNDO migliora l'interazione.
UNDO può essere usato anche per computer dell'annullamento ed errori del disegnatore non solo [ones] dell'utente.
Caratteristiche di UNDO
Generalmente UNDO è realizzato su un sistema esistente alla fine della sua realizzazione, è allora risulta difficile da usare e/o incompleto (non funziona per tutti i casi).
Se UNDO fosse introdotto dall'inizio del progetto ciò potrebbe influenzare il progetto: se un default è incorretto l'utente può tornare indietro e recuperare.
UNDO può essere anche dannoso in prototipo disegna, per minimizzare le conseguenze di errori che anche diminuisce la motivazione per migliorare il disegno, è veramente difficile da perfezionare UNDO completamente perchè il mondo è pieno di interazioni non disfabili.
Un altro approccio
Prevenire errori introducendo "vigili".
In alcuni esempi UNDO può essere illegale (gioco degli scacchi, sistemi medichi, [etc].).
UNDO: affascinante- sofisticato permette l'utente tornare indietro da qualsiasi errore.
Caso negativo- salvagente dell'utente in questo caso che dovrebbe essere semplice usare anche se lento da operare.
Conferma... non abbastanza
Il computer domanda: è sicuro della sua scelta? Questa è una domanda pre-svuotata, nessuna lascia scelta ed ha un'assunzione e cioé che l'utente abbia potuto fare un errore! Questo dialogo è sopradeterminato.
La risposta dell'utente SI/NO è combinato in un menu ricordare a lui di quello che realmente ha risposto.
Le risposte non sempre sono ovvie: si deve digitare S e poi RETURN o si deve posizionare e 'clikkare' il mouse.
Cosa accade quando finisce?
Si supponga, adesso, che l'utente voglia salvare un file ed è su un dischetto floppy. Il computer risponde:
Vuole finire senza salvare?
offrendo un menu con tre scelte:
1) Si No Annulla
La prima scelta non presenta difficoltà: l'utente abbandona l'applicazione senza salvare il file.
La seconda scelta può significare: 1) l'utente vuole salvare il file su disco 2) l'utente non vuole finire senza salvare il file 3) l'utente non vuole salvare prima di finire.
Domande riformulate
Che senso deve essere associato al comando Annulla? Annulla l'applicazione o l'operazione di salvataggio ?
Una nuova frase ridurrebbe le incomprensioni:
Do you want to save? yes, no or do you want to continue?
cancel = cancel my attempt at quitting
o si potrebbe richiedere un menu come questo:
save and quit
lose changes and quit
don't quit
Valutazioni
Se le domande sono chiare, possiamo parlare di interfaccia sopra-determinate, se il significato della domanda non è chiara all'utente che può preferire queste domande.
Molte volte se sopra determiniamo le domande allora lavorare con tale sistema può risultare essere tedioso, se, invece, si sottodetermina allora possono nascere delle incromprensioni/problemi.