Introduzione alla modellazione di sistemi interattivi

Slides:



Advertisements
Presentazioni simili
Il paradigma Object Oriented
Advertisements

Programmazione ad oggetti
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
Unified Modeling Language
Informatica Recupero debito quarto anno Terzo incontro.
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
Specifiche Algebriche
una interfaccia internet per il sistema Momis
Università degli Studi di Modena e Reggio Emilia
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
Corso di ingegneria del software
4 – Progettazione – Introduzione e Modello E-R
Ing. del software B Il Pattern Observer Simone Magnolini.
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
Prototipo di uno strumento per la produzione di siti Web adattativi in grado di gestire varie coordinate di adattamento Riccardo Torlone Milano, novembre.
Analisi dettagliata e design B. Pernici. Sommario Analisi dettagliata –Separazione interfaccia, controllo, entita Design –Logical view –Progettazione.
Creazione di ambienti interattivi per linguaggi specifici al dominio Paolo Bottoni Dipartimento di Informatica, Università di Roma ``La Sapienza''
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 91 Il modello OAI (Object-Action Interface) Sintassi e semantica: la sintassi specifica.
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
AA2003/04 © M.A. Alberti Programmazione Interfacce 1 Programmazione Corso di laurea in Informatica.
XML e la generazione di cataloghi multimediali F. Garzotto, L. Mainetti, P. Paolini Politecnico di Milano HOC - Hypermedia Open Center Dipartimento di.
Design Pattern Observer INGEGNERIA DEL SOFTWARE Nicola Ferrari.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Modello E-R Generalizzazioni
Modello E-R Generalizzazioni
Architettura Java/J2EE
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Introduzione alla programmazione Object Oriented
Analisi dei Requisiti (Requirements Engineering) Seminario RE Università degli Studi di Padova, 12 Gennaio 2004.
1 cin>>c8 s.r.l A.A Generalità Uno dei concetti largamente adottati negli ultimi anni dai professionisti del software in fase di sviluppo.
Esercitazioni di Ingegneria del Software con UML
LA DIMENSIONE IMMATERIALE DEL CONTROLLO
UML.
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Programmazione ad oggetti
Lezione 1 Panoramica sui paradigmi di programmazione
Diagramma delle Classi
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Analisi dettagliata e design
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Basi di dati distribuite Prof. M.T. PAZIENZA a.a
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Realizzare controlli Antonio Cisternino. L’esperienza del bottone  Il progetto Bottone (vedere bottone.zip) ci ha consentito di analizzare la struttura.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 3 -Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Per un nuovo orientamento nella progettazione dei linguaggi di programmazione Tesi di Laurea di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà.
Meccanismi di condivisione ereditarietà, delega, concatenazione Riccardo Solmi 19 luglio 1999.
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
Università degli Studi di Firenze Facoltà di Ingegneria Dipartimento di Sistemi e Informatica Corso di Laurea in Ingegneria Informatica Modelli e strumenti.
ADT 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 24 Introduzione ai.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Introduzione alle Classi e agli Oggetti in Java 1.
Controlli. ActionSheet e Alert Selezionare un’azione In molte situazioni è necessario fornire all’utente una scelta fra varie azioni disponibili. per.
Transcript della presentazione:

Introduzione alla modellazione di sistemi interattivi Paolo Bottoni Dipartimento di Informatica Università "La Sapienza" - Roma

Sommario Motivazioni Elementi di definizione di un sistema interattivo Modellazione orientata agli oggetti Viste sul modello Lo strumento UML

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 domande Progettare è tentare delle risposte

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

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

Un punto di vista su sistemi interattivi visivi Utente Interazione Mondo dei supporti Rappresentazione Attivazione Mondo delle logiche di applicazione Calcolatore

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

Un’interfaccia per un dominio specifico

Un'interfaccia per funzionalità generica

L’interfaccia separabile Modello di Seeheim Presentation Dialog control Application interface Bypasser Ripercorre la divisione Lessico, Sintassi, Semantica Controllo del dialogo monolitico Bypasser rende descrizione formale difficile

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 Application UI User

L’interfaccia separabile Modello MVC (Model View Controller) model view controller

Evoluzioni di MVC Document-View

Evoluzioni di MVC Model-Delegate

Evoluzioni di MVC Presentation Abstraction Control Struttura gerarchica ad agenti Controllore media fra Abstraction e Presentation Coordina agenti più in basso nella gerarchia

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

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

Comportamenti da supportare: attivazione di processi interrogazione di dati valorizzazione di dati modifiche

Politiche di coordinamento (del comportamento) Politiche di abilitazione e disabilitazione Propagazione delle attivazioni Attivazioni concorrenti Trasformazioni globali della presentazione

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

Modellazione orientata agli oggetti Classi Operazioni Metodi Relazioni

Oggetti Possiedono identità Mess1 State Interface of the object Mess2 Mess3 Possiedono identità Incapsulamento dello stato, inaccessibile ad altri oggetti Comunicazione fra oggetti attraverso messaggi Messaggi esprimono query, richieste di modifiche di stato, richieste di svolgimento di computazioni

Classi Definizione interfaccia Definizione struttura stato Codice dei metodi class Stack { private List elements; public Stack() { elements = new ArrayList(); } … 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

Operazioni Nome dell'operazione (nome del messaggio) Tipi degli argomenti Tipo del risultato Es. void push(Object o) Object pop() boolean isEmpty()

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(); }

Relazioni Ereditarietà Associazione Composizione Dipendenza Struttura Comportamento Associazione Possibilità di collaborare Composizione Relazione parte-tutto Dipendenza Necessità dell’esistenza

Viste sul modello Vista di utente Vista architetturale Vista strutturale Vista dinamica Attività singole Attività collaborative

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à?

Vista strutturale Livello delle classi Livello delle istanze 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?

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à?

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?

Lo strumento UML Linguaggi diagrammatici per ogni aspetto del modello Coerenza complessiva del modello Modello esprime vincoli sulle possibili realizzazioni