Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica...
-
Upload
eustorgio-sala -
Category
Documents
-
view
216 -
download
1
Transcript of Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica...
![Page 1: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/1.jpg)
Introduzione alla modellazione di sistemi interattivi
Paolo Bottoni
Dipartimento di Informatica
Università "La Sapienza" - Roma
![Page 2: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/2.jpg)
Sommario
• Motivazioni
• Elementi di definizione di un sistema interattivo
• Modellazione orientata agli oggetti
• Viste sul modello
• Lo strumento UML
![Page 3: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/3.jpg)
Modellare per progettare
• Identificare i confini del sistema
• Identificare le possibili condizioni in cui si può trovare il sistema
• Identificare le possibili risposte a stimoli esterni
• Prevedere le possibili evoluzioni
Modellare è porsi delle domandeProgettare è tentare delle risposte
![Page 4: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/4.jpg)
Perché modellare il software
• Necessità di identificare componenti del progetto
• Necessità di valutare la rispondenza del progetto ai requisiti
• Necessità di mantenere il software nel tempo
![Page 5: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/5.jpg)
Perché modellare il software interattivo
• Diversi livelli di definizione da mantenere coerenti
• Identificazione dei linguaggi dell’utente e valutazione della loro corrispondenza con i linguaggi dell’interazione
• Generazione automatica di codice• Valutazione della corrispondenza degli
strumenti di interazione con le logiche di applicazione
![Page 6: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/6.jpg)
Un punto di vista su sistemi interattivi visivi
Mondo dei supporti
Mondo delle logiche di applicazione
Rappresentazione Attivazione
UtenteInterazione
Calcolatore
![Page 7: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/7.jpg)
Problemi
• Relazione fra supporto di rappresentazione e supporto di interazione
• Corrispondenze fra logiche di applicazione e logiche dell’interazione
• Gestione dei processi di rappresentazione e di attivazione
![Page 8: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/8.jpg)
Un’interfaccia per un dominio specifico
![Page 9: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/9.jpg)
Un'interfaccia per funzionalità generica
![Page 10: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/10.jpg)
L’interfaccia separabile
Modello di Seeheim
Presentation Dialogcontrol
Applicationinterface
Bypasser
Ripercorre la divisione Lessico, Sintassi, SemanticaControllo del dialogo monoliticoBypasser rende descrizione formale difficile
![Page 11: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/11.jpg)
Modello a oggetti
• Interfaccia Utente come collezione di oggetti di interazione (widgets)
• Utente manipola oggetti direttamente
• Gli oggetti sono responsabili della trasmissione delle azioni dell'utente verso l’applicazione
UI Application
User
![Page 12: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/12.jpg)
L’interfaccia separabileModello MVC (Model View Controller)
model
view
controller
![Page 13: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/13.jpg)
Evoluzioni di MVC Document-View
![Page 14: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/14.jpg)
Evoluzioni di MVC
Model
View
Controller
ComponentUI-delegate
Model-Delegate
![Page 15: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/15.jpg)
Evoluzioni di MVCPresentation Abstraction Control
Struttura gerarchica ad agentiControllore media fra Abstraction e PresentationCoordina agenti più in basso nella gerarchia
![Page 16: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/16.jpg)
Problemi nella definizione di un sistema interattivo
Componenti singole Coordinamento
Rappresentazione Identificazione del tipo di componente necessaria.
Progetto del layout
Comportamento Reazioni ad azioni utente e cambiamenti di stato
Propagazione di eventi e sincronizzazione delle viste
![Page 17: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/17.jpg)
Identificazione tipo di componente
• Rappresentazione del dominio– Dati da rappresentare
• collezioni o elementi singoli?– se collezioni: ordinate, non ordinate?
– se elementi singoli: di che tipo? (es. numerici, booleani, stringhe, enumerato)
» se numerici: qualsiasi valore o in un range limitato?
– Processi da attivare
• Gestione dell’interazione– Elementi di interazione generica– Elementi di navigazione nell’interfaccia
![Page 18: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/18.jpg)
Comportamenti da supportare:
• attivazione di processi
• interrogazione di dati
• valorizzazione di dati
• modifiche
![Page 19: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/19.jpg)
Politiche di coordinamento (del comportamento)
• Politiche di abilitazione e disabilitazione
• Propagazione delle attivazioni
• Attivazioni concorrenti
• Trasformazioni globali della presentazione
![Page 20: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/20.jpg)
Politiche di coordinamento (della presentazione)
• Layout complessivo dell’interfaccia
• Vincoli reciproci fra elementi– spostamenti coordinati– relazioni ammissibili fra tipi di elementi
• Consistenza con altri tipi di interfaccia
![Page 21: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/21.jpg)
Modellazione orientata agli oggetti
• Oggetti
• Classi
• Operazioni
• Metodi
• Relazioni
![Page 22: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/22.jpg)
Oggetti
Mess1
Mess2
Mess3
StateInterface of
the object
Possiedono identitàIncapsulamento dello stato, inaccessibile ad altri oggettiComunicazione fra oggetti attraverso messaggiMessaggi esprimono query, richieste di modifiche di stato, richieste di svolgimento di computazioni
![Page 23: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/23.jpg)
Classi
Definizione interfaccia
Ogni oggetto è istanza di una classe.Classe definisce le caratteristiche comuni ad ogni sua istanza.Ogni istanza di una classe è in grado di rispondere agli stessi messaggi, utilizzando gli stessi metodi
Definizione struttura stato
Codice dei metodi
class Stack { private List elements; public Stack() { elements = new ArrayList(); } …}
![Page 24: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/24.jpg)
Operazioni
• Nome dell'operazione (nome del messaggio)
• Tipi degli argomenti
• Tipo del risultato
Es.
void push(Object o)
Object pop()
boolean isEmpty()
![Page 25: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/25.jpg)
Metodi
• Codifica concreta, in un linguaggio di programmazione, del comportamento da mettere in atto per rispondere a un determinato messaggio.
• Codice del metodo presente una sola volta nella classe, non replicato in ogni istanza.
boolean isEmpty() {return elements.isEmpty();
}
![Page 26: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/26.jpg)
Relazioni
• Ereditarietà– Struttura– Comportamento
• Associazione– Possibilità di collaborare
• Composizione– Relazione parte-tutto
• Dipendenza– Necessità dell’esistenza
![Page 27: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/27.jpg)
Viste sul modello
– Vista di utente– Vista architetturale
• Vista strutturale• Vista dinamica
– Attività singole– Attività collaborative
![Page 28: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/28.jpg)
Vista di utente
• Funzionalità del sistema dal punto di vista degli attori
• Questioni– Chi sono gli attori?
• Chi ricava valore dall’utilizzo del sistema?• Chi fornisce servizi al sistema?
– Quali sono le funzionalità?– Cosa deve avvenire per ottenere la funzionalità?
![Page 29: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/29.jpg)
Vista strutturale
• Livello delle classi– Quali sono i tipi di componente presenti nel sistema?– Quali sono relativi al problema?
• Quali sono comuni a tutti i problemi in uno stesso dominio?• Quali sono specifici dell’applicazione?
– Quali sono relativi dell’interazione?– Quali sono di utilità indipendenti dal dominio?
• Livello delle istanze– Come è fatta la configurazione iniziale del sistema?– Come è fatta una configurazione in un particolare stato
dell’interazione?
![Page 30: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/30.jpg)
Vista dinamica (attività collaborative)
• Quali elementi devono collaborare per realizzare una certa funzionalità?
• Che ruolo svolgono nella collaborazione?
• Quali sequenze di interazioni fra gli elementi sono necessarie per realizzare una certa funzionalità?
![Page 31: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/31.jpg)
Vista dinamica (attività singole)
• Quali sono i possibili stati di un’entità?– A quali configurazioni di valori degli attributi
corrispondono?
• Quali eventi determinano le transizioni di stato?• Possiamo decomporre uno stato in sottostati?
(e.g. stati veglia/sonno, sonno ha fasi REM e fasi non REM)
• Cosa può fare il sistema permanendo nello stesso stato?
![Page 32: Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma.](https://reader035.fdocuments.net/reader035/viewer/2022070312/5542eb5a497959361e8c6e90/html5/thumbnails/32.jpg)
Lo strumento UML
• Linguaggi diagrammatici per ogni aspetto del modello
• Coerenza complessiva del modello
• Modello esprime vincoli sulle possibili realizzazioni