vuoi
o PayPal
tutte le volte che vuoi
Relativamente alle varie fasi del ciclo di vita di un prodottosoftware, che cosa si intende con
"validazione e verifica"?Quali sono le differenze tra queste due attività? In tutte le fasi del ciclo di vita, il
progetto deve essere controllato per garantire che soddisfi i requisiti di alto livello concordati con il
committente, e che mantenga coerenza interna e completezza. Questi controlli prendono il nome
rispettivamente di validazione e verifica. La validazione cerca di dimostrare che nelle varie attività progettuali
i requisiti dei committenti vengono soddisfatti. Nel progetto dei sistemi interattivi la validazione rispetto ai
requisiti relativi all'interfaccia tra utente e sistema prende a volte il nome di valutazione e può essere
effettuata sia dagli sviluppatori in modo isolato, sia con il coinvolgimento di utenti pilota. La verifica della
completezza e della coerenza interna di un progetto viene spesso effettuata all'interno di ogni singola attività
del ciclo di vita, o al più tra due attività adiacenti. Ad esempio, nel progetto di dettaglio di un componente gli
sviluppatori verificheranno la correttezza degli algoritmi adottati per implementare le funzionalità offerte dal
componente. Il progetto dell'architettura avrà prodotto una specifica generale delle operazioni e dei dati in
ingresso e in uscita dal componente, e questa verrà ulteriormente raffinata nel progetto di dettaglio: qualora
la specifica di dettaglio introduca nuove informazioni, o riorganizzi la struttura delle operazioni, sarà
necessario verificare che sia mantenuta la completezza e la coerenza interna (non sono state introdotte
inconsistenze) della specifica di dettaglio.
Relativamente alle tecniche di sviluppo di un prototipo,descrivi le caratteristiche di una storyboard.
Uno storyboard è probabilmente il tipo più semplice di prototipo; è in genere costituito da una serie di
snapshots (istantanee, o schizzi, dello stato dello schermo), che catturano l'aspetto esteriore del sistema
desiderato: le varie configurazioni dell'interfaccia utente in momenti particolari dell'interazione.La stesura di
uno storyboard può essere effettuata con carta e matita, ma in genere prevale l'uso di un editor grafico, È
anche possibile realizzare animazioni che mostrano una sequenza di snapshots, e che si rivelano efficaci
per illustrare gli aspetti dinamici dell'interazione. Le tecniche di sviluppo partono dalla simulazione, viene
costruito un prototipo,costituito da oggetti interattivi grafici e testuali che consentono una valutazione rapida
ed uno studio sull'interazione con gli utenti.Una tecnica particolare di simulazione che non richiede
significative risorse informatiche è denominata Wizard of Oz (Il Mago di Oz).Con tale tecnica i progettisti
possono sviluppare un prototipo con funzionalità inizialmente limitate, e poi migliorarle ed aumentarle in fase
di valutazione. L'utente che partecipa alla valutazione del prototipo non ha in genere competenze
informatiche: gli viene richiesto di provare a svolgere qualche compito a lui familiare usando il sistema nelle
modalità che gli sembrano più naturali. In tempo reale, il progettista osserva il comportamento dell'utente e lo
traduce in comandi appropriati per il prototipo.Interponendosi tra utente e sistema il progettista può
migliorare la funzionalità percepita: la valutazione mette a fuoco le modalità con cui l'utente reagisce al
sistema completo, e guida i prototipi successivi.
Relativamente alle tecniche di sviluppo di prototipi, descrivi le caratteristiche delle simulazioni con
funzionalità limitate.Gli storyboards e le tecniche di animazione non sono sufficienti per dimostrare il lavoro
che l'applicazione effettuerà, ne' sono in grado di rappresentare adeguatamente gli aspetti interattivi del
sistema: bisogna introdurre nel prototipo almeno alcune funzionalità.Poter programmare delle simulazioni
consente ai progettisti di costruire rapidamente oggetti interattivi grafici e testuali, e associare a questi
oggetti dei comportamenti che imitino le funzionalità del sistema.Il prototipo dotato di simulazioni può essere
valutato e modificato rapidamente per riflettere i risultati dello studio di valutazione condotto col
coinvolgimento di vari utenti.Esistono numerosi strumenti di prototipazione rapida che consentono lo
sviluppo di queste simulazioni, il cui comportamento interattivo è realizzato mediante scripts associati agli
oggetti grafici dell'interfaccia. La maggior parte dei prototipi basati su simulazioni sono throw-away, perché
costituiscono implementazioni inefficienti e incomplete delle funzionalità.Una tecnica particolare di
simulazione che non richiede significative risorse informatiche è denominata Wizard of Oz (Il Mago di
Oz).Con tale tecnica i progettisti possono sviluppare un prototipo con funzionalità inizialmente limitate, e poi
migliorarle ed aumentarle in fase di valutazione. L'utente che partecipa alla valutazione del prototipo non ha
in genere competenze informatiche, ma conosce bene il dominio applicativo del sistema: gli viene richiesto
di provare a svolgere qualche compito a lui familiare usando il sistema nelle modalità che gli sembrano più
naturali. In tempo reale, il progettista osserva il comportamento dell'utente e lo traduce in comandi
appropriati per il prototipo.Interponendosi tra utente e sistema il progettista può migliorare la funzionalità
percepita: la valutazione mette a fuoco le modalità con cui l'utente reagisce al sistema completo, e guida i
prototipi successivi.
Relativamente alle tecniche di sviluppo di prototipi, descrivi le caratteristiche degli ambienti di
programmazione ipertestuali. Macromedia Flash, Adobe Director sono solo alcuni esempi di linguaggi di
programmazione specializzati e ad alto livello che consentono al progettista di programmare facilmente le
caratteristiche di un sistema interattivo. Ciò avviene a spese di altre caratteristiche, come la velocità di
risposta o lo spazio di memoria richiesto. Questi linguaggi consentono al programmatore di associare
comportamento funzionale agli oggetti dell'interfaccia utente .Il programmatore può quindi astrarsi dalle
specifiche della piattaforma, e concentrarsi sulle modalità con cui i dispositivi di input e output vengono
percepiti dall'utente come dispositivi interattivi. Il supporto di alto livello alla programmazione di prototipi può
anche essere fornito da uno User Interface Management System (UIMS). Il modello concettuale proposto da
questi ambienti è teso a separare le funzionalità dell'applicazione dalla loro presentazione. Il ruolo dell'UIMS
è di permettere al programmatore di connettere le funzionalità agli oggetti dell'interfaccia utente, favorendo la
definizione di protocolli di comunicazione tra le due parti del sistema. La separazione tra funzionalità e
presentazione favorisce le pratiche di riuso: se il sistema sottostante è già stato sviluppato, si possono
realizzare rapidamente vari prototipi alternativi dell'interfaccia, e far scegliere all'utente quello che appare
ottimale.
Relativamente agli strumenti per lo sviluppo di prototipi, descrivi le caratteristiche dei design
patterns. Un design pattern (struttura di progettazione) è "una soluzione progettuale generale a un problema
ricorrente". Esso non è una funzione di libreria o un componente riusabile, ma piuttosto una descrizione o un
modello da applicare per risolvere un problema che può presentarsi in diverse situazioni durante la
progettazione e lo sviluppo del software. Vedremo di seguito due design patterns che promuovono la
separazione tra gli oggetti dell'interfaccia utente e quelli che realizzano le funzionalità di business logic
facilitano le pratiche di riuso nella prototipazione evolutiva.
Relativamente agli strumenti per lo sviluppo di prototipi, descrivi le caratteristiche del pattern Model-
View-Controller (MVC). Una generalizzazione del pattern Observer è costituita da MVC, che viene
considerato un esempio di stile architetturale. Le entità coinvolte sono tre:a) Model corrisponde a subject, è
l'oggetto che detiene la rappresentazione dello stato e fornisce i metodi per accedere ai dati
dell'applicazione.b) View corrisponde ad observer, è l'oggetto che gestisce l'interazione con l'utentec)
Controller è un oggetto che media tra i due precedenti: riceve i comandi dall'utente e li esegue modificando
lo stato delle altre due componenti.
Relativamente agli strumenti per lo sviluppo di prototipi, descrivi le caratteristiche del pattern
Observer.Lo scopo di Observer è definire una dipendenza uno-a-molti tra oggetti, in cui quando un oggetto
che contribuisce all'implementazione di una funzionalità cambia stato tutti gli oggetti dell'interfaccia utente
che dipendono da lui sono automaticamente aggiornati. Il pattern descrive come stabilire queste relazioni di
dipendenza multipla: un subject può essere "osservato" da un numero qualsiasi di observers; ad ogni
observer viene notificato il cambiamento di stato del subject; in risposta a ciò, ogni observer interroga il
subject per sincronizzare il proprio stato.Subject :conosce i suoi observers; qualunque numero di observer
può osservare un subject. Observer :definisce un'interfaccia Update() attraverso la quale un subject può
notificare l'avvenuto cambiamento del proprio stato e la conseguente necessità di aggiornamento.
ConcreteSubject : memorizza lo stato a cui i ConcreteObservers sono interessati e manda una notifica ai
propri observers. ConcreteObserver :mantiene un riferimento al ConcreteSubject ,memorizza una copia dello
stato del ConcreteSubject, implementa il metodo Update() per mantenere il proprio stato. Quando lo stato
cambia, aConcreteSubject chiama il metodo Notify() che, per ogni observer chiama il relativo metodo
Update(). In risposta, l'observer chiama il metodo GetState() del subject per aggiornare il proprio stato.
Uno degli stili dell'interazione considerati nell'ambito della lezione 15 è costituito dalle interfacce
basate sul linguaggio (pseudo)naturale. Descrivi questo stile, e gli effetti che esso hasull'interazione.
Sebbene sia una modalità di interazione molto diretta ed accattivante, la possibilità di comunicare col
computer usando il linguaggio di tutti i giorni (italiano, inglese, ecc.) incontra notevoli difficoltà.Il linguaggio
naturale è per molti versi ambiguo e ridondante, e fa uso frequente di riferimenti ellittici (uso dei pronomi) e a
conoscenze generiche che il computer non ha."Il cane dello zio, che ieri ha morso un passante, oggi è dal
veterinario". Noi sappiamo che in genere gli zii non mordono i passanti, ma in termini strettamente linguistici
la frase è ambigua."Cer