SlideShare a Scribd company logo
1 of 40
Download to read offline
Model view controller: un
pattern per l’interaction design
           Stefano Bussolon
            stefano@bussolon.it


             hyperlabs.net




                                  UXCamp: Firenze, 10 2009 – p. 1
Introduzione
In questo intervento si sostiene che il pattern software model
view controller pu` essere applicato alla progettazione di
                    o
artefatti interattivi.
Sommario:
   • i 5 piani di Jesse James Garrett;
   • Cooper, goal directed design, piattaforme e posture;
   • il pattern model view controller;
   • potenziali vantaggi del pattern nella progettazione di
     artefatti interattivi;




                                               UXCamp: Firenze, 10 2009 – p. 2
Jesse James Garrett: 5 piani
Nel suo “The elements of user experience” JJ Garrett
distingue 5 piani:
  1. the strategy plane;
  2. the scope plane;
  3. the structure plane;
  4. the skeleton plane;
  5. the surface plane.




                                              UXCamp: Firenze, 10 2009 – p. 3
The strategy plane
A questo livello si definiscono:
  • i bisogni degli utenti che l’artefatto vuole soddisfare,
    attraverso l’analisi degli utenti attuali e potenziali;
  • gli obiettivi dei committenti:
      • business goals: guadagnare soldi, risparmiare soldi,
         migliorare la produttivit` ...
                                  a
      • branding, advertising: far conoscere il proprio
         marchio, i propri prodotti, i propri servizi a potenziali
         clienti e partner.




                                                 UXCamp: Firenze, 10 2009 – p. 4
The scope plane
A questo livello vengono definiti:
  • le specifiche funzionali; vanno definite:
      • quali funzioni vogliamo sviluppare, in che ordine di
         priorit`, a che iterazione;
                a
      • quali funzioni non vogliamo sviluppare;
  • il dominio informativo (content requirements): quali
    informazioni. Strumenti:
      • contenuti esistenti;
      • analisi competitiva – benchmarking;
      • richieste dei committenti: affinity diagram;
      • coinvolgimento degli utenti: free listing, valutazione
         di importanza.


                                               UXCamp: Firenze, 10 2009 – p. 5
The structure plane
Vengono progettate, secondo JJG:
  • l’interaction design: come il sistema si comporta in
    risposta ai comportamenti dell’utente; definizione dei
    flussi di processo, flussi dei compiti degli utenti
  • l’architettura dell’informazione: la struttura
    dell’informazione nello spazio informativo:
      • la struttura gerarchica – card sorting;
      • le microontologie.




                                             UXCamp: Firenze, 10 2009 – p. 6
The skeleton plane
JJG definisce 3 componenti:
   • l’information design: la presentazione delle
     informazioni all’utente;
   • l’interface design: la progettazione degli elementi
     dell’interfaccia per permettere agli utenti di interagire
     con l’applicazione;
   • la progettazione della navigazione, che permette agli
     utenti di muoversi all’interno della struttura informativa.
Uso di convenzioni, metafore, pattern, linee guida. Vengono
prodotti wireframes.




                                                UXCamp: Firenze, 10 2009 – p. 7
The surface plane
A questo livello si progettano gli aspetti visuali. Gli aspetti di
cui tener conto sono molteplici:
   • estetica;
   • accessibilit`;
                 a
   • branding, identity;
   • consistenza interna ed esterna;
   • colori, tipografia, impaginazione.

Strumenti: linee guida, checklist.




                                                  UXCamp: Firenze, 10 2009 – p. 8
Cooper: goal-directed design
         Se progettiamo e realizziamo prodotti attraverso
     cui gli utenti possono soddisfare i propri scopi,
     quelle persone saranno soddisfatte, efficaci e felici,
     saranno soddisfatte di aver acquistato i nostri
     prodotti, li raccomanderanno agli amici, e questo si
     traduce in un successo di business. – About face 3
Il goal directed design process: tradurre i risultati della fase di
ricerca in soluzioni progettuali.




                                                  UXCamp: Firenze, 10 2009 – p. 9
About face: il processo
1. Research: studiare gli utenti e il dominio
2. Modeling: utenti e contesto d’uso
3. Requirements: definire i bisogni degli utenti, i requisiti
   di business, i requisiti tecnici
4. Framework: definizione della struttura e dell’interazione
5. Refinement: processo iterativo di rifinitura del design,
   es dai wireframes ai prototipi ad alta fedelt`
                                                a
6. Support: collaborazione con gli sviluppatori per venire
   incontro alle loro esigenze salvaguardando l’integrit` del
                                                        a
   progetto.




                                            UXCamp: Firenze, 10 2009 – p. 10
Piattaforme
Mentre JJG si focalizza soltanto sui siti web, About face
ipotizzano lo sviluppo per piattaforme diverse. Per
piattaforma si intende una “combinazione di hardware e
software” che permette al prodotto di funzionare. Cooper e
colleghi identificano molteplici piattaforme:
  1. i siti web e le applicazioni web;
  2. i chioschi interattivi;
  3. sistemi interattivi montati su veicoli e automobili;
  4. handhelds (smartphone, pda, fotocamere);
 5. sistemi di home entertaimnent (console per giochi, TV
    interattive, home theater);
 6. strumenti professionali (scientifici, medicali).


                                               UXCamp: Firenze, 10 2009 – p. 11
Posture
Secondo Cooper i prodotti e le piattaforme si differenziano in
base a quello che definiscono postura, ovvero alla modalit`  a
prevalente di interazione. Cooper identificano tre posture:
  1. la postura sovrana: l’applicazione monopolizza
     l’attenzione dell’utente per un periodo prolungato;
     esempi: word processor, foglio di calcolo, web mail;
  2. la postura transiente: l’applicazione transiente svolge
     un’unica funzione, viene invocata per svolgere quella
     funzione, l’interazione ` generalmente breve, poi torna
                             e
     sullo sfondo; esempi: widgets, controlli multimediali;
  3. la postura del demone: demoni sono quelle applicazioni
     che girano in background, svolgendo funzioni che non
     richiedono l’interazione con l’utente, se non nella fase di
     setup e configurazione.

                                                UXCamp: Firenze, 10 2009 – p. 12
Case history: l’isola dell’Asinara
Contesto: progetto InDEX: Interaction Design Experience:
master di primo livello della regione Sardegna.
Classe Sassari 2.
Scopo: far conoscere l’isola dell’Asinara a visitatori potenziali
e attuali, raccontando la storia, la colonia penale, il carcere di
massima sicurezza, gli aspetti naturalistici e paesaggistici;
promuovere la conoscenza delle regole del parco naturale e
della riserva marina.
Slogan: portare l’Asinara fuori dall’Asinara.




                                                 UXCamp: Firenze, 10 2009 – p. 13
L’Asinara: progetti
La classe ha sviluppato 3 progetti:
 1. una installazione interattiva, finalizzata a far conoscere
     l’isola e a “sedurre” i potenziali visitatori, da installare in
     aereoporti, fiere turistiche, traghetti;
 2. una applicazione per smartphone (iPhone): guida
     all’isola, ai punti di interesse; informazioni storiche e
     naturalistiche, regole del parco;
 3. due installazioni all’interno di un museo nell’isola,
     finalizzati a raccontare la storia e l’organizzazione del
     carcere.
Progetti immaginati ma non sviluppati: il sito internet, gli
opuscoli informativi.



                                                   UXCamp: Firenze, 10 2009 – p. 14
Informazioni condivise




Piattaforme diverse, interazioni differenti, ma informazioni
sostanzialmente condivise. L’idea: progettare una architettura
informativa comune.



                                              UXCamp: Firenze, 10 2009 – p. 15
Model view control
Model view controller ` un pattern di software design che
                        e
separa i contenuti, la presentazione e l’interazione.
Sviluppato allo Xerox Parc PARK di Palo Alto ed
implementato nel linguaggio ad oggetti Smalltalk-80.
MVC was conceived as a general solution to the problem of
users controlling a large and complex data set.
Secondo l’inventore di questo pattern the essential purpose of
MVC is to bridge the gap between the human user’s mental
model and the digital model that exists in the computer.




                                              UXCamp: Firenze, 10 2009 – p. 16
MVC - flusso
1. Il modello codifica le informazioni e le offre attraverso
   delle interfacce.
2. Una vista elabora le informazioni e le presenta all’utente.
3. L’utente interagisce con l’interfaccia offerta dalla vista.
4. Il controller ` in ascolto, in attesa degli eventi generati
                 e
   dall’utente. Quando l’utente genera un evento il
   controller lo gestisce avviando una azione, che
   generalmente aggiorna il modello e-o la vista.
5. La vista interroga il modello per disporre dei dati
   aggiornati in seguito all’input dell’utente.
6. Il controller si rimette in attesa degli input dell’utente.



                                             UXCamp: Firenze, 10 2009 – p. 17
MVC e software design
Questo pattern ` utilizzato estensivamente nei pi` importanti
               e                                 u
framework di sviluppo software:
   • SmallTalk
   • Microsoft Foundation Classes (C++), .Net
  •   Java (Struts, Swing, SpringMVC, Cocoon)
  •   ActionScript
  •   Pyton (Zope, Plone)
  •   Ruby
  •   PHP (Drupal, Joomla!)




                                             UXCamp: Firenze, 10 2009 – p. 18
Model
Il modello codifica le informazioni, privilegiando gli aspetti
implementativi.
`
E il system model di Donald Norman e l’implementation
model di Cooper.
L’informazione viene codificata generalmente sotto forma di:
   • basi di dati
   • documenti che usano linguaggi di markup (es xml)
   • file multimediali: immagini, video, suoni, musica




                                              UXCamp: Firenze, 10 2009 – p. 19
View
La vista ` una delle possibili rappresentazioni delle
         e
informazioni codificate nel modello.
La rappresentazione ` generalmente visiva, anche se con
                      e
software di text to speech pu` essere anche uditiva (es. la
                               o
voce del navigatore satellitare).
La view deve adattarsi al modello mentale dell’utente.
Corrisponde al designer’s model di Norman.
La vista traduce il modello in una forma che permetta
all’utente la comprensione e l’interazione.
Uno degli assunti fondamentali del pattern mvc ` che, per
                                                  e
ogni modello, possono esserci viste differenti.
Esempio classico: una base di dati pu` essere vista in forma
                                       o
di tabella e-o in forma di grafico.



                                              UXCamp: Firenze, 10 2009 – p. 20
Controller
Il controller ` ci` che permette all’utente di agire sul sistema,
              e o
attraverso dei sistemi di input.
Implementa dunque le funzionalit` del sistema, permettendo
                                    a
all’artefatto di interagire con l’utente e di rispondere ai suoi
input.
`
E il collegamento fra l’utente e il sistema. Offre all’utente le
affordances per interagire con l’artefatto. Tecnicamente
l’interazione avviene con il modello, ma l’utente riceve un
feedback attraverso l’aggiornamento della vista.




                                                UXCamp: Firenze, 10 2009 – p. 21
Software e buone pratiche
La separazione del codice deputato al modello, alla vista e al
controllo dell’applicazione costituisce una buona pratica di
progettazione nell’ambito dello sviluppo del software, in
quanto:
   • utilizzano strumenti e linguaggi differenti:
      1. sql, java(pojo,javabeans)-python per il modello;
      2. html, jsp-asp-php per la vista;
      3. javascript, servlet per il controllo;
   • facilita lo sviluppo, il debug, la manutenzione;
   • permette la specializzazione degli sviluppatori;
   • facilita lo sviluppo di applicazioni accessibili.




                                               UXCamp: Firenze, 10 2009 – p. 22
MVC e user experience design
La proposta ` di adattare il pattern MVC al modello di
            e
progettazione di artefatti interattivi.




                                             UXCamp: Firenze, 10 2009 – p. 23
Vantaggi (1) Competenze
Il pattern permette una migliore differenziazione delle
competenze:
    • il modello sarebbe di esclusiva competenza
      dell’architettura dell’informaizione. Anzi, il modello
      rappresenterebbe il core dell’IA
    • il controller sarebbe di competenza dell’interaction
      design (il core dell’ID)
    • la vista sarebbe di competenza prevalente
      dell’information design - visual design, con la
      collaborazione dell’IA per la navigazione e dell’ID per gli
      aspetti legati all’interazione.




                                                UXCamp: Firenze, 10 2009 – p. 24
Vantaggi (2) Sistemi multidevice
una pi` facile progettazione di sistemi informativi multidevice,
      u
ovvero fruibili da web, da smartphone e da altri dispositivi: il
modello rimane, la vista e il controller cambiano.




                                               UXCamp: Firenze, 10 2009 – p. 25
Vantaggi (3) Design creativo
Lo sviluppo di viste differenti pu` permettere al designer di
                                   o
sviluppare, a fianco delle interfacce pi` tradizionali e
                                         u
codificate, soluzioni creative ed innovative. Se gli utenti
hanno la possibilit` di decidere quale fra le differenti
                    a
interfacce usare, protranno scegliere quella che pi` si adatta
                                                     u
alle loro caratteristiche, esigenze, prefrenze, tenuto conto
anche del contesto.




                                               UXCamp: Firenze, 10 2009 – p. 26
Esempio: l’installazione per l’Asinara
 Nel progettare l’installazione finalizzata a pubblicizzare
 l’Asinara, gli studenti hanno esplorato diverse view e
 controller. View:
    • touch screen di varie dimensioni;
    • proiettore o coppia di proiettori per superfici pi` grandi.
                                                       u
 Controller:
    • interazione collocata sul pavimento (physical computing)
    • interazione con il touchscreen;
    • interazione con touchwall (physical computing)
   • interazione con consolle (trackball e pulsanti)
   • scenario futuribile: interazione con movement
     recognition.

                                               UXCamp: Firenze, 10 2009 – p. 27
Scenario 1: Gruppo editoriale
Editore di quotidiani (La Repubblica, Il Corriere, The New
York Times). Attualmente questi gruppi distribuiscono le
informazioni attraverso molteplici canali:
   • il quotidiano cartaceo;
   • il sito web;
   • il sito per il dispositivo mobile / l’applicazione per
     iPhone-Android;
   • broadcast via radio (Radio Capital, Radio24), TV, web
     TV;
   • futuro prossimo: e-readers.

Stesse notizie, livello di approfondimento diverso.
Soluzione: un CMS capace di generare viste e interazioni
diverse per le differenti piattaforme.

                                             UXCamp: Firenze, 10 2009 – p. 28
Scenario 2: Museo d’arte
Scenario: un museo organizza una mostra temporanea. Deve
sviluppare - aggiornare:
   • il sito internet del museo, con una sezione dedicata alla
      mostra;
   • le guide interattive al museo, che utilizzano handhelds
      multimediali;
   • gli opuscoli gratuiti distribuiti all’interno del museo;
   • gli exibit interattivi;
   • il catalogo delle opere.




                                              UXCamp: Firenze, 10 2009 – p. 29
(Museo) modello: ontologie
Lo sviluppo del modello si focalizzer` su due tipologie di unit`
                                     a                         a
informative:
   • gli artisti;
   • le opere.
`
E possibile usare dei microformati per rappresentare queste
informazioni. Esempio, per gli artisti, il microformato foaf
(friend of a friend).
Definizione di faccette di interrogazione: linea del tempo,
nazionalit`, movimento artistico, stile ....
          a
Collocazione dell’opera nello spazio fisico del museo.




                                               UXCamp: Firenze, 10 2009 – p. 30
(Museo) vista: web
Nel sito web possiamo immaginare
  • una pagina per ogni artista, che elenca le informazioni
     bibliografiche e l’elenco delle opere;
  • una pagina per ogni opera, con foto, autore, data,
     collezione, informazioni;
  • una linea del tempo interattiva;
  • una mappa che geotagga il luogo di creazione delle
     opere;
  • una pianta del museo con la collocazione delle opere.




                                             UXCamp: Firenze, 10 2009 – p. 31
(Museo) vista: guida interattiva
La guida interattiva pu` prevedere
                       o
  • una schermata per ogni artista;
  • una schermata per ogni opera, con foto, autore, data,
    collezione, informazioni; descrizione audio dell’opera in
    formato mp3, da ascoltare con cuffie;
  • interazione: possibilit` di riconoscere l’opera via qrcode,
                           a
    rfid, codice numerico, localizzazione wireless.




                                               UXCamp: Firenze, 10 2009 – p. 32
(Museo) vista: exibit interattivo
L’installazione interattiva pu` permettere all’utente di giocare
                                o
con le opere esposte, ad esempio usando un programma di
image editing per ritoccare una copia della fotografia dei
quadri.
Oppure creare dei quiz e questionari sulla conoscenza delle
opere e degli artisti, utilizzando in maniera flessibile le
informazioni presenti a livello del model.
Pu` permettere agli utenti di visualizzare il processo di
   o
restauro di un quadro, visualizzando le differenze fra le
condizioni pre e post restauro e i dettagli dell’intervento.
Anche in questo caso queste stesse attivit` possono essere
                                            a
presentate anche sul sito web.




                                               UXCamp: Firenze, 10 2009 – p. 33
(Museo) vista: catalogo delle opere
 Il catalogo pu` essere generato via pdf, e pu` prevedere
                 o                               o
     • le pagine degli artisti, con descrizione;
     • le pagine per ogni opera, con fotografia ad alta
       risoluzione, scheda, descrizione;
     • linea del tempo;
     • indice degli autori e delle opere.




                                               UXCamp: Firenze, 10 2009 – p. 34
Scenario: orario dell’autobus
Azienda di trasporti pubblici: orario degli autobus. Fruizione:
  • via opuscolo da distribuire nelle biglietterie o scaricare
     via web;
  • via sito web;
  • via applicazione per smartphone, sfruttando l’ora e la
     geolocalizzazione via gps;
  • le paline cartacee o interattive alle fermate.




                                               UXCamp: Firenze, 10 2009 – p. 35
Il processo




Il flusso progettuale. L’approccio ` fortemente iterativo
                                  e




                                              UXCamp: Firenze, 10 2009 – p. 36
Il processo
Il processo prevede di separare, in fase di design, la
progettazione di modello, vista e controllo.
Il processo ` fortemente iterativo. Nella prima iterazione ci si
             e
focalizza, prima e soprattutto, nello sviluppo del modello. Il
modello deve essere abbastanza flessibile da permettere di
essere interrogato da viste molto differenti.
Le diverse viste - interazioni vanno progettate in ordine di
priorit`. Alla prima iterazione la vista / piattaforma pi`
       a                                                 u
semplice, testata e diffusa. Nelle iterazioni successive le viste
/ piattaforme pi` complesse o innovative.
                  u




                                                UXCamp: Firenze, 10 2009 – p. 37
Model, api, feeds
La divisione fra modello, vista e controllo pu` portare allo
                                                o
sviluppo delle diverse funzioni da parte di soggetti differenti.
Se il modello espone i propri dati attraverso delle A.P.I. (soap,
rest, json) permette a sviluppatori esterni di implementare
delle viste differenti e flessibili.
Chi sviluppa il view - controller interroga il server, carica i dati
grezzi e li elabora in modalit` innovative. Se pi` soggetti
                               a                   u
sviluppano viste diverse in base agli stessi dati, gli utenti
potranno scegliere l’interfaccia che riterranno pi` utile,
                                                    u
usabile, piacevole e conveniente, in base anche al contesto
d’uso.




                                                  UXCamp: Firenze, 10 2009 – p. 38
Conclusioni?
L’idea che ho presentato ` quella di mettere assieme due
                         e
metodi consolidati (la metodologia di design, il pattern
software mvc) per formalizzare qualcosa che implicitamente
gi` succede.
  a
Che ne pensate?




                                            UXCamp: Firenze, 10 2009 – p. 39
Grazie
www.bussolon.it
stefano@bussolon.it
http://www.linkedin.com/in/bussolon
http://www.facebook.com/stefano.bussolon




                                           UXCamp: Firenze, 10 2009 – p. 40

More Related Content

What's hot

IAAD_Agile Interaction Design
IAAD_Agile Interaction DesignIAAD_Agile Interaction Design
IAAD_Agile Interaction DesignCultura Digitale
 
lezione interaction design 18 marzo 2009
lezione interaction design 18 marzo 2009lezione interaction design 18 marzo 2009
lezione interaction design 18 marzo 2009Marco Loregian
 
Relazione finale progetto Pedalami
Relazione finale progetto PedalamiRelazione finale progetto Pedalami
Relazione finale progetto PedalamiMelaniaMauri
 
Simone Casagranda - WhatsUp: supporto per sistemi android della piattaforma d...
Simone Casagranda - WhatsUp: supporto per sistemi android della piattaforma d...Simone Casagranda - WhatsUp: supporto per sistemi android della piattaforma d...
Simone Casagranda - WhatsUp: supporto per sistemi android della piattaforma d...Simone Casagranda
 
Iuavcamp presentazione
Iuavcamp presentazioneIuavcamp presentazione
Iuavcamp presentazionelisamiotello
 
MobileDevCamp2012 - Prototipazione
MobileDevCamp2012 - PrototipazioneMobileDevCamp2012 - Prototipazione
MobileDevCamp2012 - Prototipazionemobiledevcamp
 

What's hot (9)

IAAD_Agile Interaction Design
IAAD_Agile Interaction DesignIAAD_Agile Interaction Design
IAAD_Agile Interaction Design
 
lezione interaction design 18 marzo 2009
lezione interaction design 18 marzo 2009lezione interaction design 18 marzo 2009
lezione interaction design 18 marzo 2009
 
Relazione finale progetto Pedalami
Relazione finale progetto PedalamiRelazione finale progetto Pedalami
Relazione finale progetto Pedalami
 
Lezione ID 2010 -3
Lezione ID 2010 -3Lezione ID 2010 -3
Lezione ID 2010 -3
 
Simone Casagranda - WhatsUp: supporto per sistemi android della piattaforma d...
Simone Casagranda - WhatsUp: supporto per sistemi android della piattaforma d...Simone Casagranda - WhatsUp: supporto per sistemi android della piattaforma d...
Simone Casagranda - WhatsUp: supporto per sistemi android della piattaforma d...
 
Iuavcamp presentazione
Iuavcamp presentazioneIuavcamp presentazione
Iuavcamp presentazione
 
MobileDevCamp2012 - Prototipazione
MobileDevCamp2012 - PrototipazioneMobileDevCamp2012 - Prototipazione
MobileDevCamp2012 - Prototipazione
 
Dal bit al simulacro
Dal bit al simulacroDal bit al simulacro
Dal bit al simulacro
 
Dove l’utente è re
Dove l’utente è reDove l’utente è re
Dove l’utente è re
 

Similar to Model view controller: un pattern per l’interaction design

Portfolio ux ui_gellify
Portfolio ux ui_gellifyPortfolio ux ui_gellify
Portfolio ux ui_gellifyGELLIFY
 
Progetto SmartDMO
Progetto SmartDMOProgetto SmartDMO
Progetto SmartDMO_Smartera
 
Progettare e gestire la user experience nel processo di sviluppo del software
Progettare e gestire la user experience nel processo di sviluppo del softwareProgettare e gestire la user experience nel processo di sviluppo del software
Progettare e gestire la user experience nel processo di sviluppo del softwareLuca Mascaro
 
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesiAndrea Lanza
 
Web usability - 2 | WebMaster & WebDesigner
Web usability - 2 | WebMaster & WebDesignerWeb usability - 2 | WebMaster & WebDesigner
Web usability - 2 | WebMaster & WebDesignerMatteo Magni
 
AUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTAUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTMirko Compagno
 
Web Usability - 2 | WebMaster & WebDesigner
Web Usability - 2 | WebMaster & WebDesignerWeb Usability - 2 | WebMaster & WebDesigner
Web Usability - 2 | WebMaster & WebDesignerMatteo Magni
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webDiego La Monica
 
Agile User story mapping (Mokabyte)
Agile User story mapping (Mokabyte)Agile User story mapping (Mokabyte)
Agile User story mapping (Mokabyte)Emiliano Soldi
 
FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLT.lab
 
Define & design apps for success
Define & design apps for successDefine & design apps for success
Define & design apps for successAcrmnet s.r.l.
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione AvanzataStefano Sanna
 
Com pa 05nov2009_7
Com pa 05nov2009_7Com pa 05nov2009_7
Com pa 05nov2009_7Argentea
 

Similar to Model view controller: un pattern per l’interaction design (20)

Portfolio ux ui_gellify
Portfolio ux ui_gellifyPortfolio ux ui_gellify
Portfolio ux ui_gellify
 
pdfPresFeb2014
pdfPresFeb2014pdfPresFeb2014
pdfPresFeb2014
 
Progetto SmartDMO
Progetto SmartDMOProgetto SmartDMO
Progetto SmartDMO
 
Ux activities
Ux activitiesUx activities
Ux activities
 
Progettare e gestire la user experience nel processo di sviluppo del software
Progettare e gestire la user experience nel processo di sviluppo del softwareProgettare e gestire la user experience nel processo di sviluppo del software
Progettare e gestire la user experience nel processo di sviluppo del software
 
Ux scrum e gilde...
Ux scrum e gilde...Ux scrum e gilde...
Ux scrum e gilde...
 
Waz.Up
Waz.UpWaz.Up
Waz.Up
 
Waz.Up
Waz.UpWaz.Up
Waz.Up
 
UX Scrum e... gilde
UX Scrum e... gildeUX Scrum e... gilde
UX Scrum e... gilde
 
Presentazione tesi
Presentazione tesiPresentazione tesi
Presentazione tesi
 
Web usability - 2 | WebMaster & WebDesigner
Web usability - 2 | WebMaster & WebDesignerWeb usability - 2 | WebMaster & WebDesigner
Web usability - 2 | WebMaster & WebDesigner
 
wireframe prototyping
wireframe prototypingwireframe prototyping
wireframe prototyping
 
AUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTAUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERT
 
Web Usability - 2 | WebMaster & WebDesigner
Web Usability - 2 | WebMaster & WebDesignerWeb Usability - 2 | WebMaster & WebDesigner
Web Usability - 2 | WebMaster & WebDesigner
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del web
 
Agile User story mapping (Mokabyte)
Agile User story mapping (Mokabyte)Agile User story mapping (Mokabyte)
Agile User story mapping (Mokabyte)
 
FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLTlab Business Presentation 2012
FLTlab Business Presentation 2012
 
Define & design apps for success
Define & design apps for successDefine & design apps for success
Define & design apps for success
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
Com pa 05nov2009_7
Com pa 05nov2009_7Com pa 05nov2009_7
Com pa 05nov2009_7
 

More from Stefano Bussolon

The experiential utility: how behavioural economics can help hci to define qu...
The experiential utility: how behavioural economics can help hci to define qu...The experiential utility: how behavioural economics can help hci to define qu...
The experiential utility: how behavioural economics can help hci to define qu...Stefano Bussolon
 
La grammatica della user experience
La grammatica della user experienceLa grammatica della user experience
La grammatica della user experienceStefano Bussolon
 
The X factor - defining the concept of Experience
The X factor - defining the concept of ExperienceThe X factor - defining the concept of Experience
The X factor - defining the concept of ExperienceStefano Bussolon
 
The pop-out effect: how to improve choice through information architecture
The pop-out effect: how to improve choice through information architectureThe pop-out effect: how to improve choice through information architecture
The pop-out effect: how to improve choice through information architectureStefano Bussolon
 
Dispensa Interazione Uomo Macchina
Dispensa Interazione Uomo MacchinaDispensa Interazione Uomo Macchina
Dispensa Interazione Uomo MacchinaStefano Bussolon
 
The Grammar of User Experience
The Grammar of User ExperienceThe Grammar of User Experience
The Grammar of User ExperienceStefano Bussolon
 
Bussolon, Betti: Conceptualize once, design anywhere
Bussolon, Betti: Conceptualize once, design anywhereBussolon, Betti: Conceptualize once, design anywhere
Bussolon, Betti: Conceptualize once, design anywhereStefano Bussolon
 
Progettare artefatti cognitivi
Progettare artefatti cognitiviProgettare artefatti cognitivi
Progettare artefatti cognitiviStefano Bussolon
 
Dispensa di analisi dei dati
Dispensa di analisi dei datiDispensa di analisi dei dati
Dispensa di analisi dei datiStefano Bussolon
 
From Clouds to Trees: Clustering Delicious Tags
From Clouds to Trees: Clustering Delicious TagsFrom Clouds to Trees: Clustering Delicious Tags
From Clouds to Trees: Clustering Delicious TagsStefano Bussolon
 

More from Stefano Bussolon (10)

The experiential utility: how behavioural economics can help hci to define qu...
The experiential utility: how behavioural economics can help hci to define qu...The experiential utility: how behavioural economics can help hci to define qu...
The experiential utility: how behavioural economics can help hci to define qu...
 
La grammatica della user experience
La grammatica della user experienceLa grammatica della user experience
La grammatica della user experience
 
The X factor - defining the concept of Experience
The X factor - defining the concept of ExperienceThe X factor - defining the concept of Experience
The X factor - defining the concept of Experience
 
The pop-out effect: how to improve choice through information architecture
The pop-out effect: how to improve choice through information architectureThe pop-out effect: how to improve choice through information architecture
The pop-out effect: how to improve choice through information architecture
 
Dispensa Interazione Uomo Macchina
Dispensa Interazione Uomo MacchinaDispensa Interazione Uomo Macchina
Dispensa Interazione Uomo Macchina
 
The Grammar of User Experience
The Grammar of User ExperienceThe Grammar of User Experience
The Grammar of User Experience
 
Bussolon, Betti: Conceptualize once, design anywhere
Bussolon, Betti: Conceptualize once, design anywhereBussolon, Betti: Conceptualize once, design anywhere
Bussolon, Betti: Conceptualize once, design anywhere
 
Progettare artefatti cognitivi
Progettare artefatti cognitiviProgettare artefatti cognitivi
Progettare artefatti cognitivi
 
Dispensa di analisi dei dati
Dispensa di analisi dei datiDispensa di analisi dei dati
Dispensa di analisi dei dati
 
From Clouds to Trees: Clustering Delicious Tags
From Clouds to Trees: Clustering Delicious TagsFrom Clouds to Trees: Clustering Delicious Tags
From Clouds to Trees: Clustering Delicious Tags
 

Model view controller: un pattern per l’interaction design

  • 1. Model view controller: un pattern per l’interaction design Stefano Bussolon stefano@bussolon.it hyperlabs.net UXCamp: Firenze, 10 2009 – p. 1
  • 2. Introduzione In questo intervento si sostiene che il pattern software model view controller pu` essere applicato alla progettazione di o artefatti interattivi. Sommario: • i 5 piani di Jesse James Garrett; • Cooper, goal directed design, piattaforme e posture; • il pattern model view controller; • potenziali vantaggi del pattern nella progettazione di artefatti interattivi; UXCamp: Firenze, 10 2009 – p. 2
  • 3. Jesse James Garrett: 5 piani Nel suo “The elements of user experience” JJ Garrett distingue 5 piani: 1. the strategy plane; 2. the scope plane; 3. the structure plane; 4. the skeleton plane; 5. the surface plane. UXCamp: Firenze, 10 2009 – p. 3
  • 4. The strategy plane A questo livello si definiscono: • i bisogni degli utenti che l’artefatto vuole soddisfare, attraverso l’analisi degli utenti attuali e potenziali; • gli obiettivi dei committenti: • business goals: guadagnare soldi, risparmiare soldi, migliorare la produttivit` ... a • branding, advertising: far conoscere il proprio marchio, i propri prodotti, i propri servizi a potenziali clienti e partner. UXCamp: Firenze, 10 2009 – p. 4
  • 5. The scope plane A questo livello vengono definiti: • le specifiche funzionali; vanno definite: • quali funzioni vogliamo sviluppare, in che ordine di priorit`, a che iterazione; a • quali funzioni non vogliamo sviluppare; • il dominio informativo (content requirements): quali informazioni. Strumenti: • contenuti esistenti; • analisi competitiva – benchmarking; • richieste dei committenti: affinity diagram; • coinvolgimento degli utenti: free listing, valutazione di importanza. UXCamp: Firenze, 10 2009 – p. 5
  • 6. The structure plane Vengono progettate, secondo JJG: • l’interaction design: come il sistema si comporta in risposta ai comportamenti dell’utente; definizione dei flussi di processo, flussi dei compiti degli utenti • l’architettura dell’informazione: la struttura dell’informazione nello spazio informativo: • la struttura gerarchica – card sorting; • le microontologie. UXCamp: Firenze, 10 2009 – p. 6
  • 7. The skeleton plane JJG definisce 3 componenti: • l’information design: la presentazione delle informazioni all’utente; • l’interface design: la progettazione degli elementi dell’interfaccia per permettere agli utenti di interagire con l’applicazione; • la progettazione della navigazione, che permette agli utenti di muoversi all’interno della struttura informativa. Uso di convenzioni, metafore, pattern, linee guida. Vengono prodotti wireframes. UXCamp: Firenze, 10 2009 – p. 7
  • 8. The surface plane A questo livello si progettano gli aspetti visuali. Gli aspetti di cui tener conto sono molteplici: • estetica; • accessibilit`; a • branding, identity; • consistenza interna ed esterna; • colori, tipografia, impaginazione. Strumenti: linee guida, checklist. UXCamp: Firenze, 10 2009 – p. 8
  • 9. Cooper: goal-directed design Se progettiamo e realizziamo prodotti attraverso cui gli utenti possono soddisfare i propri scopi, quelle persone saranno soddisfatte, efficaci e felici, saranno soddisfatte di aver acquistato i nostri prodotti, li raccomanderanno agli amici, e questo si traduce in un successo di business. – About face 3 Il goal directed design process: tradurre i risultati della fase di ricerca in soluzioni progettuali. UXCamp: Firenze, 10 2009 – p. 9
  • 10. About face: il processo 1. Research: studiare gli utenti e il dominio 2. Modeling: utenti e contesto d’uso 3. Requirements: definire i bisogni degli utenti, i requisiti di business, i requisiti tecnici 4. Framework: definizione della struttura e dell’interazione 5. Refinement: processo iterativo di rifinitura del design, es dai wireframes ai prototipi ad alta fedelt` a 6. Support: collaborazione con gli sviluppatori per venire incontro alle loro esigenze salvaguardando l’integrit` del a progetto. UXCamp: Firenze, 10 2009 – p. 10
  • 11. Piattaforme Mentre JJG si focalizza soltanto sui siti web, About face ipotizzano lo sviluppo per piattaforme diverse. Per piattaforma si intende una “combinazione di hardware e software” che permette al prodotto di funzionare. Cooper e colleghi identificano molteplici piattaforme: 1. i siti web e le applicazioni web; 2. i chioschi interattivi; 3. sistemi interattivi montati su veicoli e automobili; 4. handhelds (smartphone, pda, fotocamere); 5. sistemi di home entertaimnent (console per giochi, TV interattive, home theater); 6. strumenti professionali (scientifici, medicali). UXCamp: Firenze, 10 2009 – p. 11
  • 12. Posture Secondo Cooper i prodotti e le piattaforme si differenziano in base a quello che definiscono postura, ovvero alla modalit` a prevalente di interazione. Cooper identificano tre posture: 1. la postura sovrana: l’applicazione monopolizza l’attenzione dell’utente per un periodo prolungato; esempi: word processor, foglio di calcolo, web mail; 2. la postura transiente: l’applicazione transiente svolge un’unica funzione, viene invocata per svolgere quella funzione, l’interazione ` generalmente breve, poi torna e sullo sfondo; esempi: widgets, controlli multimediali; 3. la postura del demone: demoni sono quelle applicazioni che girano in background, svolgendo funzioni che non richiedono l’interazione con l’utente, se non nella fase di setup e configurazione. UXCamp: Firenze, 10 2009 – p. 12
  • 13. Case history: l’isola dell’Asinara Contesto: progetto InDEX: Interaction Design Experience: master di primo livello della regione Sardegna. Classe Sassari 2. Scopo: far conoscere l’isola dell’Asinara a visitatori potenziali e attuali, raccontando la storia, la colonia penale, il carcere di massima sicurezza, gli aspetti naturalistici e paesaggistici; promuovere la conoscenza delle regole del parco naturale e della riserva marina. Slogan: portare l’Asinara fuori dall’Asinara. UXCamp: Firenze, 10 2009 – p. 13
  • 14. L’Asinara: progetti La classe ha sviluppato 3 progetti: 1. una installazione interattiva, finalizzata a far conoscere l’isola e a “sedurre” i potenziali visitatori, da installare in aereoporti, fiere turistiche, traghetti; 2. una applicazione per smartphone (iPhone): guida all’isola, ai punti di interesse; informazioni storiche e naturalistiche, regole del parco; 3. due installazioni all’interno di un museo nell’isola, finalizzati a raccontare la storia e l’organizzazione del carcere. Progetti immaginati ma non sviluppati: il sito internet, gli opuscoli informativi. UXCamp: Firenze, 10 2009 – p. 14
  • 15. Informazioni condivise Piattaforme diverse, interazioni differenti, ma informazioni sostanzialmente condivise. L’idea: progettare una architettura informativa comune. UXCamp: Firenze, 10 2009 – p. 15
  • 16. Model view control Model view controller ` un pattern di software design che e separa i contenuti, la presentazione e l’interazione. Sviluppato allo Xerox Parc PARK di Palo Alto ed implementato nel linguaggio ad oggetti Smalltalk-80. MVC was conceived as a general solution to the problem of users controlling a large and complex data set. Secondo l’inventore di questo pattern the essential purpose of MVC is to bridge the gap between the human user’s mental model and the digital model that exists in the computer. UXCamp: Firenze, 10 2009 – p. 16
  • 17. MVC - flusso 1. Il modello codifica le informazioni e le offre attraverso delle interfacce. 2. Una vista elabora le informazioni e le presenta all’utente. 3. L’utente interagisce con l’interfaccia offerta dalla vista. 4. Il controller ` in ascolto, in attesa degli eventi generati e dall’utente. Quando l’utente genera un evento il controller lo gestisce avviando una azione, che generalmente aggiorna il modello e-o la vista. 5. La vista interroga il modello per disporre dei dati aggiornati in seguito all’input dell’utente. 6. Il controller si rimette in attesa degli input dell’utente. UXCamp: Firenze, 10 2009 – p. 17
  • 18. MVC e software design Questo pattern ` utilizzato estensivamente nei pi` importanti e u framework di sviluppo software: • SmallTalk • Microsoft Foundation Classes (C++), .Net • Java (Struts, Swing, SpringMVC, Cocoon) • ActionScript • Pyton (Zope, Plone) • Ruby • PHP (Drupal, Joomla!) UXCamp: Firenze, 10 2009 – p. 18
  • 19. Model Il modello codifica le informazioni, privilegiando gli aspetti implementativi. ` E il system model di Donald Norman e l’implementation model di Cooper. L’informazione viene codificata generalmente sotto forma di: • basi di dati • documenti che usano linguaggi di markup (es xml) • file multimediali: immagini, video, suoni, musica UXCamp: Firenze, 10 2009 – p. 19
  • 20. View La vista ` una delle possibili rappresentazioni delle e informazioni codificate nel modello. La rappresentazione ` generalmente visiva, anche se con e software di text to speech pu` essere anche uditiva (es. la o voce del navigatore satellitare). La view deve adattarsi al modello mentale dell’utente. Corrisponde al designer’s model di Norman. La vista traduce il modello in una forma che permetta all’utente la comprensione e l’interazione. Uno degli assunti fondamentali del pattern mvc ` che, per e ogni modello, possono esserci viste differenti. Esempio classico: una base di dati pu` essere vista in forma o di tabella e-o in forma di grafico. UXCamp: Firenze, 10 2009 – p. 20
  • 21. Controller Il controller ` ci` che permette all’utente di agire sul sistema, e o attraverso dei sistemi di input. Implementa dunque le funzionalit` del sistema, permettendo a all’artefatto di interagire con l’utente e di rispondere ai suoi input. ` E il collegamento fra l’utente e il sistema. Offre all’utente le affordances per interagire con l’artefatto. Tecnicamente l’interazione avviene con il modello, ma l’utente riceve un feedback attraverso l’aggiornamento della vista. UXCamp: Firenze, 10 2009 – p. 21
  • 22. Software e buone pratiche La separazione del codice deputato al modello, alla vista e al controllo dell’applicazione costituisce una buona pratica di progettazione nell’ambito dello sviluppo del software, in quanto: • utilizzano strumenti e linguaggi differenti: 1. sql, java(pojo,javabeans)-python per il modello; 2. html, jsp-asp-php per la vista; 3. javascript, servlet per il controllo; • facilita lo sviluppo, il debug, la manutenzione; • permette la specializzazione degli sviluppatori; • facilita lo sviluppo di applicazioni accessibili. UXCamp: Firenze, 10 2009 – p. 22
  • 23. MVC e user experience design La proposta ` di adattare il pattern MVC al modello di e progettazione di artefatti interattivi. UXCamp: Firenze, 10 2009 – p. 23
  • 24. Vantaggi (1) Competenze Il pattern permette una migliore differenziazione delle competenze: • il modello sarebbe di esclusiva competenza dell’architettura dell’informaizione. Anzi, il modello rappresenterebbe il core dell’IA • il controller sarebbe di competenza dell’interaction design (il core dell’ID) • la vista sarebbe di competenza prevalente dell’information design - visual design, con la collaborazione dell’IA per la navigazione e dell’ID per gli aspetti legati all’interazione. UXCamp: Firenze, 10 2009 – p. 24
  • 25. Vantaggi (2) Sistemi multidevice una pi` facile progettazione di sistemi informativi multidevice, u ovvero fruibili da web, da smartphone e da altri dispositivi: il modello rimane, la vista e il controller cambiano. UXCamp: Firenze, 10 2009 – p. 25
  • 26. Vantaggi (3) Design creativo Lo sviluppo di viste differenti pu` permettere al designer di o sviluppare, a fianco delle interfacce pi` tradizionali e u codificate, soluzioni creative ed innovative. Se gli utenti hanno la possibilit` di decidere quale fra le differenti a interfacce usare, protranno scegliere quella che pi` si adatta u alle loro caratteristiche, esigenze, prefrenze, tenuto conto anche del contesto. UXCamp: Firenze, 10 2009 – p. 26
  • 27. Esempio: l’installazione per l’Asinara Nel progettare l’installazione finalizzata a pubblicizzare l’Asinara, gli studenti hanno esplorato diverse view e controller. View: • touch screen di varie dimensioni; • proiettore o coppia di proiettori per superfici pi` grandi. u Controller: • interazione collocata sul pavimento (physical computing) • interazione con il touchscreen; • interazione con touchwall (physical computing) • interazione con consolle (trackball e pulsanti) • scenario futuribile: interazione con movement recognition. UXCamp: Firenze, 10 2009 – p. 27
  • 28. Scenario 1: Gruppo editoriale Editore di quotidiani (La Repubblica, Il Corriere, The New York Times). Attualmente questi gruppi distribuiscono le informazioni attraverso molteplici canali: • il quotidiano cartaceo; • il sito web; • il sito per il dispositivo mobile / l’applicazione per iPhone-Android; • broadcast via radio (Radio Capital, Radio24), TV, web TV; • futuro prossimo: e-readers. Stesse notizie, livello di approfondimento diverso. Soluzione: un CMS capace di generare viste e interazioni diverse per le differenti piattaforme. UXCamp: Firenze, 10 2009 – p. 28
  • 29. Scenario 2: Museo d’arte Scenario: un museo organizza una mostra temporanea. Deve sviluppare - aggiornare: • il sito internet del museo, con una sezione dedicata alla mostra; • le guide interattive al museo, che utilizzano handhelds multimediali; • gli opuscoli gratuiti distribuiti all’interno del museo; • gli exibit interattivi; • il catalogo delle opere. UXCamp: Firenze, 10 2009 – p. 29
  • 30. (Museo) modello: ontologie Lo sviluppo del modello si focalizzer` su due tipologie di unit` a a informative: • gli artisti; • le opere. ` E possibile usare dei microformati per rappresentare queste informazioni. Esempio, per gli artisti, il microformato foaf (friend of a friend). Definizione di faccette di interrogazione: linea del tempo, nazionalit`, movimento artistico, stile .... a Collocazione dell’opera nello spazio fisico del museo. UXCamp: Firenze, 10 2009 – p. 30
  • 31. (Museo) vista: web Nel sito web possiamo immaginare • una pagina per ogni artista, che elenca le informazioni bibliografiche e l’elenco delle opere; • una pagina per ogni opera, con foto, autore, data, collezione, informazioni; • una linea del tempo interattiva; • una mappa che geotagga il luogo di creazione delle opere; • una pianta del museo con la collocazione delle opere. UXCamp: Firenze, 10 2009 – p. 31
  • 32. (Museo) vista: guida interattiva La guida interattiva pu` prevedere o • una schermata per ogni artista; • una schermata per ogni opera, con foto, autore, data, collezione, informazioni; descrizione audio dell’opera in formato mp3, da ascoltare con cuffie; • interazione: possibilit` di riconoscere l’opera via qrcode, a rfid, codice numerico, localizzazione wireless. UXCamp: Firenze, 10 2009 – p. 32
  • 33. (Museo) vista: exibit interattivo L’installazione interattiva pu` permettere all’utente di giocare o con le opere esposte, ad esempio usando un programma di image editing per ritoccare una copia della fotografia dei quadri. Oppure creare dei quiz e questionari sulla conoscenza delle opere e degli artisti, utilizzando in maniera flessibile le informazioni presenti a livello del model. Pu` permettere agli utenti di visualizzare il processo di o restauro di un quadro, visualizzando le differenze fra le condizioni pre e post restauro e i dettagli dell’intervento. Anche in questo caso queste stesse attivit` possono essere a presentate anche sul sito web. UXCamp: Firenze, 10 2009 – p. 33
  • 34. (Museo) vista: catalogo delle opere Il catalogo pu` essere generato via pdf, e pu` prevedere o o • le pagine degli artisti, con descrizione; • le pagine per ogni opera, con fotografia ad alta risoluzione, scheda, descrizione; • linea del tempo; • indice degli autori e delle opere. UXCamp: Firenze, 10 2009 – p. 34
  • 35. Scenario: orario dell’autobus Azienda di trasporti pubblici: orario degli autobus. Fruizione: • via opuscolo da distribuire nelle biglietterie o scaricare via web; • via sito web; • via applicazione per smartphone, sfruttando l’ora e la geolocalizzazione via gps; • le paline cartacee o interattive alle fermate. UXCamp: Firenze, 10 2009 – p. 35
  • 36. Il processo Il flusso progettuale. L’approccio ` fortemente iterativo e UXCamp: Firenze, 10 2009 – p. 36
  • 37. Il processo Il processo prevede di separare, in fase di design, la progettazione di modello, vista e controllo. Il processo ` fortemente iterativo. Nella prima iterazione ci si e focalizza, prima e soprattutto, nello sviluppo del modello. Il modello deve essere abbastanza flessibile da permettere di essere interrogato da viste molto differenti. Le diverse viste - interazioni vanno progettate in ordine di priorit`. Alla prima iterazione la vista / piattaforma pi` a u semplice, testata e diffusa. Nelle iterazioni successive le viste / piattaforme pi` complesse o innovative. u UXCamp: Firenze, 10 2009 – p. 37
  • 38. Model, api, feeds La divisione fra modello, vista e controllo pu` portare allo o sviluppo delle diverse funzioni da parte di soggetti differenti. Se il modello espone i propri dati attraverso delle A.P.I. (soap, rest, json) permette a sviluppatori esterni di implementare delle viste differenti e flessibili. Chi sviluppa il view - controller interroga il server, carica i dati grezzi e li elabora in modalit` innovative. Se pi` soggetti a u sviluppano viste diverse in base agli stessi dati, gli utenti potranno scegliere l’interfaccia che riterranno pi` utile, u usabile, piacevole e conveniente, in base anche al contesto d’uso. UXCamp: Firenze, 10 2009 – p. 38
  • 39. Conclusioni? L’idea che ho presentato ` quella di mettere assieme due e metodi consolidati (la metodologia di design, il pattern software mvc) per formalizzare qualcosa che implicitamente gi` succede. a Che ne pensate? UXCamp: Firenze, 10 2009 – p. 39