UNIVERSITÀ DEGLI STUDI DEL SANNIO Facoltà di Ingegneria CdiL in Ingegneria Informatica Tesi di Laurea in Ingegneria del Software MODEL-DRIVEN DEVELOPMENT DI APPLICAZIONI WEB Trasformazione di Modelli Concettuali UWA in Modelli Logici UML Relatore Ch.mo Prof. Gerardo Canfora Candidato Correlatore: Francesco Mazzone Mat. 068/100222 Ch.mo Ing. Damiano DISTANTE A.A. 2006/2007 Model Driven Engineering (MDE) Approccio allo sviluppo di sistemi basato sull’uso sistematico di modelli e trasformazioni fra modelli Concetto di astrazione e refinement Vantaggi: SSviluppo VILUPPO MODELLI SOFTWARE applicazioni E LIVELLI MDAMODEL DIWeb ASTRAZIONE -DRIVEN (MDWE) (MDE) Platform Independent Model (PIM) • • • • Modello Contenitore Modellonavigazionale concettuale (UWA) Consistenza Usabilità Manutenzione Tracciabilità Tranformation Refinementrules Platform Independent Model (PIM) Modello logico architetturale Contenitore Modello indicizzato (UML-MVC) Modello architetturale (UML-PAC) Tranformation Refinement rules Platform Specific Model (PSM) Francesco Mazzone Modello del Codice Array Implementazione (JSF) Lista Model-Driven Development di Applicazioni Web con UWA Modello del Codice (Struts) La Metodologia UWA Ubiquitous Web Applications (UWA): Metodologie, modelli e tools a supporto per il design concettuale di applicazioni Web ubique • Diversi tipi di utente, diversi devices, diversi contesti di utilizzo Approccio user-centered Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 3 Obiettivo del Lavoro di Tesi Definire un livello di progettazione intermedio tra la progettazione concettuale UWA e l’implementazione Definire e implementare regole di trasformazione per la traduzione semiautomatica di modelli concettuali UWA nei corrispondenti modelli logici Francesco Mazzone Modello Concettuale (Modello navigazionale UWA) Modello Logico (Modello architetturale UML-MVC) Implementazione (JSF) Model-Driven Development di Applicazioni Web con UWA 4 Percorso di Lavoro Scelta dell'architettura software da impiegare per l'implementazione di applicazioni Web. proposta di un modello logico per descrivere le specifiche implementative secondo questa architettura. Sviluppo applicazione “Post-it sharing” (processo manuale) progetto concettuale UWA progetto logico UML-MVC implementazione JSF Astrazione di un modello logico per descrivere applicazioni secondo l’architettura scelta (modello logico UML-MVC) Costruzione del metamodello UWA Costruzione del metamodello UML-MVC Definizione e implementazione di regole di trasformazione fra modelli concettuali UWA e modelli logici Generazione automatica del modello logico dell’applicazione “Post-it sharing” mediante un tool di trasformazione Confronto fra i modelli logici (manuale e generato) Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 5 Risultati (1): Metamodello UWA Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 6 Risultati (2): Modello logico UML-MVC… Model Class Diagram Francesco Mazzone View Class Diagram Model-Driven Development di Applicazioni Web con UWA 7 Risultati (2): ... e Metamodello logico UML-MVC Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 8 Linguaggi e strumenti utilizzati MOF 2.0 EMF E’ uno standard OMG Linguaggio per definire metamodelli Due package: EMOF e CMOF Architettura a quattro strati framework open source per la generazione di tools e applicazioni basati su un modello strutturato Implementa Ecore: variante di EMOF Fornisce supporto per la generazione di editor Può importare modelli di vari tipi Topcased Ecore Editor E’ un meta-modeling toolset Sviluppato da diversi colossi industriali (IBM,Thales, Siemens...) Poggia su EMF e utilizza Ecore, che è la variante EMF di EMOF Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 9 Risultati (3): Regole di Trasformazione UWA/UML-MVC Definizione delle regole di trasformazione Definite a livello M2 (Metamodel level) Realizzano trasformazioni in ottica MDA Implementazione delle regole ATL (ATLAS Transformation Language) • • • • Sviluppato dall’ ATLAS team (University of Nantes) E’ la risposta all’approccio MDA definito dall’OMG Supporta trasformazioni tra modelli Le trasformazioni sono modelli ADT (Eclipse development tools for ATL) • Ambiente di sviluppo completo basato su Eclipse per lo sviluppo, il testing e l’implementazione del linguaggio ATL Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 10 Processo di Trasformazione ATL 1. Definizione di un modello UWA come istanza del rispettivo metamodello 2. Utilizzando l’editor Ecore di default di EMF Il modello istanziato nel formato Ecore UWA Metamodel Generazione automatica del modello UML-MVC ATL Transformation input: • • • • UML-MVC Metamodel il metamodello UWA in Ecore Il metamodello UML-MVC in Ecore il modello UWA da trasformare le regole di trasformazione implementate in ATL UWA Model UML-MVC Model output: • • Il modello UML-MVC istanza del metamodello UML-MVC Il modello di output ancora nel formato Ecore Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 11 Un Esempio di Trasformazione (Demo) Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 13 Validazione del Processo di Trasformazione Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 14 Conclusioni Obiettivi raggiunti: È stato definito un processo di sviluppo model-driven di applicazioni Web basato su UWA Tool di supporto per la traduzione semi-automatica di modelli concettuali UWA nei corrispondenti modelli logici UML-MVC. • • • • • Pattern MVC come architettura di riferimento per il modello logico Metamodello UML-MVC MOF compliant Metamodello UWA MOF compliant Regole di trasformazione definite ed implementate in ATL Processo di trasformazione in ADT Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 15 Sviluppi Futuri Estendere l’approccio al Transaction Design di UWAT+ Estendere l’approccio verso la generazione automatica del codice Sviluppo di un tool per la traduzione del modello logico in codice Classi Java, JavaBeans, Template di pagina, etc… Realizzazione di un editor grafico per ciascun metamodello definito, che consenta di istanziare graficamente modelli concettuali e logici. EMF + GEF GMF (Graphical Modeling Framework) Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 16 Fine Grazie per l’attenzione. Domande? Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA 17