MODEL-DRIVEN DEVELOPMENT DI APPLICAZIONI WEB 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 Correlatore: Ch.mo Ing. Damiano DISTANTE Candidato Francesco Mazzone Mat. 068/100222 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: Consistenza Usabilità Manutenzione Tracciabilità Sviluppo software model-driven (MDE) Sviluppo applicazioni Web (MDWE) Modelli e livelli di astrazione MDA Platform Independent Model (PIM) Modello navigazionale (UWA) Modello concettuale Contenitore Tranformation rules Refinement Platform Independent Model (PIM) Modello architetturale (UML-MVC) Modello architetturale (UML-PAC) Modello logico Contenitore indicizzato Tranformation rules Refinement Platform Specific Model (PSM) Modello del Codice (JSF) Modello del Codice (Struts) Implementazione Array Lista Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Model-Driven Development di Applicazioni Web con UWA 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
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 semi-automatica di modelli concettuali UWA nei corrispondenti modelli logici Modello Concettuale (Modello navigazionale UWA) Modello Logico (Modello architetturale UML-MVC) Implementazione (JSF) Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Model-Driven Development di Applicazioni Web con UWA 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
Risultati (1): Metamodello UWA Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Risultati (2): Modello logico UML-MVC… Model Class Diagram View Class Diagram Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Risultati (2): ... e Metamodello logico UML-MVC Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Linguaggi e strumenti utilizzati MOF 2.0 E’ uno standard OMG Linguaggio per definire metamodelli Due package: EMOF e CMOF Architettura a quattro strati EMF 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
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
Processo di Trasformazione ATL Definizione di un modello UWA come istanza del rispettivo metamodello Utilizzando l’editor Ecore di default di EMF Il modello istanziato nel formato Ecore Generazione automatica del modello UML-MVC input: il metamodello UWA in Ecore Il metamodello UML-MVC in Ecore il modello UWA da trasformare le regole di trasformazione implementate in ATL output: Il modello UML-MVC istanza del metamodello UML-MVC Il modello di output ancora nel formato Ecore UWA Metamodel UML-MVC Metamodel ATL Transformation UWA Model UML-MVC Model Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Un Esempio di Trasformazione Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Un Esempio di Trasformazione (Demo) Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Validazione del Processo di Trasformazione Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA
Model-Driven Development di Applicazioni Web con UWA 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
Model-Driven Development di Applicazioni Web con UWA 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
Model-Driven Development di Applicazioni Web con UWA Fine Grazie per l’attenzione. Domande? Francesco Mazzone Model-Driven Development di Applicazioni Web con UWA