* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ESERCITAZIONE DI INTERFACCE GRAFICHE A.A.1997-98 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ----------------------------------------------------------------------- SPIEGAZIONE DEGLI ERRORI PIU' FREQUENTI RISCONTRATI NELLE ESERCITAZIONI ----------------------------------------------------------------------- NOTA BENE: e' una lista non esaustiva, per cose particolari bisogna parlare gruppo per gruppo 1) ABILITAZIONI/DISABILITAZIONI I dispositivi di input che si riferiscono ad operazioni non valide nello stato attuale del programma devono essere disabilitati. Non va bene lasciarli attivi, e semplicemente far si' che la richiesta di un'operazione attualmente non valida non produca alcun effetto (ovvero gestire la cosa a livello di callback del dispositivo anziche' a livello di attivazione/disattivazione del dispositivo stesso). L'utente quando agisce su un dispositivo si aspetta un risultato, se non succede nulla rimane disorientato ed e' portato a pensare che "il programma non funzioni". E' ancora peggio lasciare la cosa totalmente non gestita (ovvero niente controlli neanche nella callback) fidandosi del fatto che l'utente sappia che in un determinato stato non deve invocare una certa operazione, altrimenti il programma si pianta, o succede qualche altro effetto indesiderato/incontrollato/disastroso. 2) FACILITA' DI LETTURA E' importante che l'utente possa capire facilmente la funzione dei vari dispositivi presenti nell'interfaccia. In diverse interfacce realizzate non era percepibile la distinzione fra operazioni che agiscono sull'intera scena e operazioni che agiscono sul singolo oggetto selezionato. Esempio: si chiedeva di permettere la rotazione della scena, e la traslazione di un signolo oggetto nella scena. Se l'interfaccia contiene un dispositivo etichettato "rotazione" e uno etichettato "traslazione", l'utente capisce soltanto dopo aver provato ad usarli che il primo dispositivo opera su tutta la scena e il secondo solo su un oggetto. Meglio dunque etichettarli per esempio "rotazione della scena" e "traslazione dell'oggetto selezionato". Alcuni hanno usato etichette poco intuitive per i dispositivi, in alcuni non e' facile capire da che parte crescono i valori per gli slider (se non azionando lo slider e guardando che succede), ... 3) PRESENZA / CONSISTENZA FEEDBACK E' importante comunicare all'utente in maniera visiva informazioni (rilevati per l'utente) sullo stato del programma: - evidenziare in qualche modo l'oggetto selezionato - far capire all'utente, quando sta selezionando per es. una traslazione lungo l'asse x, in quale direzione si muovera' l'oggetto (es. mostrare gli assi cartesiani in modo che possa vedere quale e' la direzione dell'asse x) - ... E' importante che lo stato interno del programma e cio' che l'interfaccia presenta visivamente all'utente siano consistenti: - quando cambio oggetto selezionato, le posizioni degli slider del colore devono automaticamente spostarsi sui valori RGB del nuovo oggetto, e non restare sui valori RGB dell'oggetto precedente - se al caricamento della scena viene anche automaticamente selezionato un oggetto, tale oggetto deve essere evidenziato in qualche modo in modo che l'utente possa rendersi conto che e' selezionato - ... 4) EFFETTI COLLATERALI DI OPERAZIONI E' buona norma evitare che un'operazione produca effetti collaterali inaspettati/indesiderati. Riporto qui alcuni casi riscontrati: - la selezione di un oggetto fa si' che l'oggetto passi in solid, e il resto della scena in wireframe. questo va bene se fatto temporaneamente, come feedback della selezione, ristabilendo la situazione originale dopo un tot di secondi, ma non va bene se l'effetto e' permanente, perche' "disfa" operazioni fatte precedentemente dall'utente. - la selezione di "tutti gli oggetti" (funzionalita' peraltro non richiesta nel testo dell'esercitazione) provoca il loro ritorno al colore di default (stesse osservazioni come sopra) - selezionare la visualizzazione degli assi elimina la visualizzazione dell'anchor e viceversa - ... 5) ALTRI ERRORI Un gruppo dimentica di reinizializzare il menu' degli oggetti selezionabili quando carica una nuova scena. Un gruppo ha capito male come andavano fatte le proiezioni sui tre piani. ...