M V C Model View Controller.

Slides:



Advertisements
Presentazioni simili
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
Advertisements

Modulo 5 - posta elettronica
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
STRUTTURA DEL PERSONAL COMPUTER
Introduzione al datawarehouse
PHP.
Java Enterprise Edition (JEE)
Università degli Studi di Modena e Reggio Emilia
Acquisti OnLine Progetto
Ontologie per la costruzione di un portale sull'Adobe.
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.
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
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.
Architettura Three Tier
L.Lista Design P atterns Luca Lista. L.Lista Design Patterns Elementi di software OO riutilizzabile Piccoli insiemi di classi che collaborano implementando.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Cos’è un CMS? Content Management System
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Introduzione ad ASP.net
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
Proxy-based infrastructure for LBS availability Reti di Calcolatori L-S Andrea Licastro
SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.
Introduzione alla modellazione di sistemi interattivi
Obiettivi dellinterfaccia Web Una buona interfaccia web deve assolvere a diverse funzioni: far percepire i contenuti permettere di individuare.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
STRUTTURA GENERALE DI UN ELABORATORE
L’ingegneria del software
VRML97 -Appendice- Cristina Donati 1 VRML97. Il Virtual Reality Modeling Language (VRML) è un formato di file volto alla descrizione degli oggetti interattivi.
Analisi (Analista) Progettazione (Progettista) Sviluppo o Traduzione (Sviluppatore) Documentazione.
Architettura degli elaboratori
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Introduzione alla programmazione Object Oriented
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Data Access Layer.
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Marco De Zorzi Matricola Manuel Fossemò Matricola Yanick Fratantonio Matricola Massimiliano Gentile Matricola TALKING PAPER.
ANALYSIS & DESIGN I DESIGN PATTERNS GoF 1. I Design Patterns GoF …un momento importante durante il corso del design!
Lazienda SC Informatica si occupa della progettazione e della realizzazione di sistemi informatici dedicati alle farmacie. Fornisce inoltre un servizio.
I nomi in Java F. Bombi 18 novembre novembre 2003.
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.
L’architettura a strati
Corso di Visual Basic 6.0 OBBIETTIVI
INTRODUZIONE A JAVASCRIPT
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Lezione 1 Panoramica sui paradigmi di programmazione
Che cos’ è un ipertesto Progettazione e realizzazione di ipertesti
Diagramma delle Classi
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
Analisi dettagliata e design
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.
L.Lista, V. Innocente Design P atterns Luca Lista, Vincenzo Innocente.
Laboratorio di Servizi Web - servlet - Ardissono 1 Chiarimenti su Servlet Note aggiuntive su architettura di applicazione web che usa Servlet per gestire.
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.
Realizzare controlli Antonio Cisternino. L’esperienza del bottone  Il progetto Bottone (vedere bottone.zip) ci ha consentito di analizzare la struttura.
La gestione degli eventi
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Tecnologie in movimento
La progettazione di un sito web
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Paradigma MVC Ing. Buttolo Marco.
Transcript della presentazione:

M V C Model View Controller

INTRODUZIONE È un pattern di archittetura di software che separa i dati della aplicazione, la interfacia del usuario e la logica di controllo in 3 componenti diversi. Se usa di solito in aplicazioni web, dove la View è la pagina HTML, il Controller è il codice che fornisce i dati dinamici alla pagina e il Model contiene le classi rappresentativi della aplicazione (come il messaggio di un foro…)

ELEMENTI PRINCIPALI (1) È normale pensare che una applicazione ha 3 elementi principali: presentazione (IU), dominio e acceso a i dati. In MVC, l’elemento di presentazione sta repartita in controller e view. La principale separazione si da tra presentazione e dominio; la separazacione tra V/C è meno chiara. MVC divide una applicazione in 3 zone: procesamiento, uscita ed entrata. Per questo, utiliza le seguente abstrazioni:

ELEMENTI PRINCIPALI (2) Modello: questa è la rappresentazione specifica del dominio della informazione sulla qual funziona la applicazione. Il modello è altra forma di chiamare all’elemento del dominio. La logica del dominio aiunge significato a i dati. Vista: presenta il modello in un formato adecuato per interattuare, di solito un elemento della interfacia di usuario. Controllatore: risponde a eventi, di solito azzioni del usuario e invoca cambii nello modello e probabilimente nella vista. Molti applicazioni usano un mecanismo di almacenamiento persistente (come può essere una DB) per almacenare i dati. MVC non parlo direttamente di questa capa di acceso a i dati.

FLUSSO DI CONTROLLO (1) Benche si possono trovare diversi implementazioni di MVC, il flusso che sigue il controllo di solito è il siguente: Il usuario interattua con la interfacia di usuario di alcuna forma (per esempio, preme un tasto, collegamento). Il controllatore riceve (per parti degli oggetti della interfacia-vista) la notificazione dell’azione richiesta per l’usuario. Il controllatore gestiona l’evento che arriva, frequentemente a traverso de in gestore di evenit (handler o callback). Il controllatore accede al modello, attualizandolo, posibilemente modificandolo di forma adecuata alla azione richiesta per l’usuario. I controllatori complessi stanno di solito strutturati usando un pattern di comando che encapsula gli azioni e semplifica la loro estensione.

FLUSSO DI CONTROLLO (2) Il controllatore delega agli oggetti de la vista, la tarea di desplegare l’interfacia d’usuario. La vista riceve i dati del modello per gestire la interfacia adecuata per l’usuario dove si reflessa i cambi nello modello. Il modello non devo avere conoscimiento diretto sulla vista. Purtroppo, il pattern Observador può essere utilizato per provedere di certa indirezione tra il modello e la vista permitiendo al modello notificare agli interesati di qualce cambio. Il controllatore non pasa oggetti del dominio alla vista benche può dare la ordine alla vista per che se attualize. L’interfacia di usuario aspetta nuovi itterazioni dil usuario, cominziando il ciclo di nuovo.

DIAGRAMA

VENTAGGI (1) Menore accoppiamento Desacopla le viste del modello Desacopla i modelli de la forma in cui se mostrano e se introduceno i dati. Maggiore cohesión Ogni elemento del pattern sta altamente spezialiti nella loro tarea (la vista mostrare dati al usuario, il controllatore negli entrati e il modello nello suo oggetto di negozio. Maggiore facilità per lo sviluppo de clienti ricci in molteplice dispositivi e canali Una vista per ogni dispositivo secondo le loro caratterische Una vista per la Web e un altra per applicazioni di desktop

VENTAGGI (2) Le viste forniscono di Maggiore flessibilità e agilità Se può creare moltiplice viste di uno stesso modello Se può creare, agiungere, modificare e eliminare nuovi viste dinamicamente Le viste se possono anidare Se può cambiare il modo in cui una vista risponde al usuario senza cambiare la sua rappresentazione visuale Se può sincronizare le viste Se possono concentrare in diversi aspetti del modello Più clarità de disegno Maggiore escalabilità

PATTERN IN MVC (1) Un pattern d’archittetura può contenere diversi pattern de disegno. Il MVC può contenere le seguente pattern: Observer: Per il mecanismo di publicazione e soscrizione che permette la notificazione dei cambi nel modello alle viste. Composite: per la creazione di viste complessi. Utilizando queste pattern possiamo creare una gerarchia de viste e tratare a ogni vista complessa lo stesso che a una visa normale. Strategy: è la relazione sulle viste e i controllatori.Utilizando queste pattern possiamo cambiare dinamicamente o in tempo di compilazione gli algoritmi del controllatore con in cuale risponde al suo entorno.

PATTERN IN MVC (1) Factory Method: per specificare la clase controllatore predeterminada de una vista. Decorador: per aiungere capacità addizionale alla vista (per esempio scroll...) Proxy: per distribuire la archittetura (Modello e Vista-Controllotore) in diversi precetti.

Boundary Control Entity B C E Boundary Control Entity

INTRODUZIONE La maggiore parte delle classe definite durante l’analise di requerimenti rappresentano oggetti sulle quali la informazione sarà conservata nella DB del sistema. Separa logica applicativa da presentazione e da dati presentati all’utente: • Esaminare ciascun caso d’uso • “Coordinamento” tra modello di navigazione e modello concettuale • Si fara’ evolvere in modello di design

ELEMENTI PRINCIPALI (1) Tomando una archittetura in 4 nivelli, parliamo di 4 tipi di classe: Persistent database classes (D), corrisponde a classe della aplicazione e describe che sarà conservato continuamente nella DB del sistema. Entity classes (E), rappresentano in memoria, strutturi persistente per classe di DB. Boundary classes (B), specificano funzioni de interfaccia. Controll classes (C), specificano funzioni logiche di negozio.

ELEMENTI PRINCIPALI (2) Boundary class Describe gli oggetti che rappresentano la interfaccia tra un attore e il sistema. Permette la demostrazione visuale o l’effetto sonoro A menudo persiste più avanti della eseguizione sola del programa.

ELEMENTI PRINCIPALI (3) Control class Describe gli oggetti che interceptano acontecimenti di entrata di usuario e controllano la eseguizione di un proceso di negozio. Rappresenta azzioni e le attività di un caso di uso Con frecuenzia non persistono più avanti della eseguizione del programa.

ELEMENTI PRINCIPALI (4) Entity class Describe gli oggetti che rappresentano la semántica di entità in un uso. Corresponde a una struttura di dati nella DB del sistema Sempre persistono più avanti della eseguizione del programa.

ELEMENTI PRINCIPALI (5)

FLUSSO DI CONTROLLO (1) Esempio pe capire il flusso di controllo Partendo di queste analise

FLUSSO DI CONTROLLO (2)

DIAGRAMA

M V C & B C E

MVC & BCE (1) Nel modello BCE, la struttura è totalmente orizzontale. Tra gli strati di Boundary ed Entity si interpone lo strato di Control. Nel modello MVC, la struttura è maggiormente interconnessa in cui i blocchi strutturali sono posti ai vertici di un triangolo i cui lati rappresentano i canali di comunicazione tra i blocchi. Nel modello BCE, lo strato di Entity rappresenta la pura ontologia dei dati. Nel modello MVC, il Model diventa un’entità attiva a tutti gli effetti

MVC & BCE (2) Nel modello BCE, lo strato di Controllo opera da layer intermedio tra i livelli di Boundary e di Entity. Nel modello MVC, prevedono meccanismi di notifica diretta, alle Viste, dei cambiamenti del Modello.