Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native

Embed Size (px)

DESCRIPTION

Presentazione della Tesi di Laurea Magistrale di Gregorio Perego e Stefania Pezzetti @ Politecnico di Milano. E' possibile trovare la tesi completa al seguente URL: http://hdl.handle.net/10589/85165

Citation preview

  • 1. Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native Relatore: Prof. Luciano Baresi Tesi di Laurea Magistrale in Ingegneria InformaticaGregorio Perego Stefania Pezzetti 3 Ottobre 2013

2. OverviewUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native1 3. Un Approccio Model-DrivenDistribuzione delle vendite mondiali di Smartphone per sistema operativo:(Q2 2013) Source: Gartner Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native2 4. Outline Background Applicazioni Native e Applicazioni Cross-Platform Stato dellarte Metamodello Windows Phone 7 Metamodello AndroidIl nostro lavoro 1. 2. 3. 4.Metamodello Astratto Metamodello Implementativo Generatore di Codice ValutazioneUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native3 5. Applicazioni Native e Applicazioni CrossPlatformStato dellarteApplicazioni NativeVantaggiSvantaggi Interfaccia grafica nativa Miglior user experience Massime performance Accesso a tutte le risorse HW e SW del dispositivo Compatibilit con tutti i dispositivi Esiste un app store di riferimentoNecessario sviluppare una versione dellapp per ogni piattaforma Richiesta conoscenza dei linguaggi di programmazione specifici delle piattaforme Tempi lunghi e alti costi di sviluppoUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native4 6. Applicazioni Native e Applicazioni CrossPlatformStato dellarteApplicazioni Cross-Platform Tipologie: Web Ibride Interpretate Cross-CompilateVantaggiSvantaggi Sviluppo unico per pi piattaforme Non richiesta la conoscenza dei linguaggi di programmazione specifici delle piattaforme Utilizzo dei linguaggi di programmazione web (GUI riusabile) Tempi brevi e bassi costi di sviluppoUser experience limitata Performance limitate Limitato accesso alle risorse HW e SW del dispositivo Problemi di compatibilit con i diversi dispositivi (e debugging complicato) Non esiste un app store di riferimentoUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native5 7. Applicazioni Native e Applicazioni Cross-PlatformStato dellarteStato dellarte Metamodello Windows Phone 7 Caratteristiche Software Interfaccia Grafica Logica Applicativa Caratteristiche Hardware Funzioni Fondamentali Metamodello Android Caratteristiche Strutturali Componenti Fondamentali Risorse di Sistema (librerie, risorse interne, risorse HW) Interfaccia Grafica Caratteristiche Dinamiche Autori: Bub-Ki Min, Minhyuk Ko, Yongjin Seo, Seunghak Kuk, Hyeon-Soo Kim [2011-2012] Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native6 8. Applicazioni Native e Applicazioni Cross-PlatformStato dellarteMetamodello Android (Caratteristiche Strutturali)Interfaccia GraficaRisorse di SistemaComponenti Fondamentali Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native7 9. IL NOSTRO LAVOROUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native8 10. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneAnalisi dei metamodelli Android e Windows Phone 7AnalisiProblemaIdeaI metamodelli esistenti sono platform-dependentIndividuare le corrispondenze nella struttura delle applicazioni mobili delle diverse piattaforme e definire un metamodello platform-independentUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native9 11. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneMetamodello Astratto Definito in seguito a uno studio approfondito della struttura delle applicazioni Android e iOS, ma pu considerarsi valido anche per le altre piattaforme Le sue istanze permettono di modellare ad alto livello la struttura di unapplicazione, indipendentemente dal sistema operativo per cui viene sviluppata E un profilo UML: estende alcuni concetti del linguaggio per definirne dei nuovi (nel diagramma contraddistinti dalla keyword Stereotype)Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native10 12. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneMetamodello AstrattoUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native11 13. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneMetamodello Astratto Risorse HardwareLife CycleUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native12 14. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneMetamodello Astratto Interfaccia UtenteUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native13 15. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneMetamodello Implementativo Problema: il Metamodello Astratto ad alto livello Le sue istanze non possono essere tradotte in codice E una rivisitazione del metamodello astratto Le istanze generabili sono sufficientemente dettagliate (elementi con attributi) da essere tradotte in codice Guida lo sviluppatore nella definizione del modello dellapplicazione desiderata Bassa complessitUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native14 16. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneMetamodello ImplementativoUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native15 17. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneGeneratore di Codice Strumento software per generare i sorgenti nativi corrispondenti al modello dellapplicazione desiderata (istanza del metamodello implementativo) Fornisce un punto di partenza avanzato per la fase di sviluppo Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native16 18. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneTecnologie Ambiente di Sviluppo: Eclipse Juno 4.2 contenente Epsilon Framework utilizzati: Eclipse Modeling Framework (EMF) Definizione di modelli openArchitectureWare (oAW) Traduzione del modello in codice Xpand: template di traduzione del modello in codice Check: validazione del modello MWE: motore di generazione del codice Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native17 19. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneGeneratore di Codice - ArchitetturaUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native18 20. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili NativeValutazione19 21. Metamodello AstrattoMetamodello ImplementativoLavoro SvoltoGeneratore di CodiceValutazioneMetamodello Astratto Metamodello Implementativo Generatore di codicePhysical SLOC: righe di codice Logical SLOC: n di istruzioniValutazione Quantitativa Giudizio complessivoValutazione Valutazione QualitativaUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native20 22. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneValutazione Quantitativa App Valtellina Unapplicazione che permette di ricavare informazioni relative alle pi rinomate localit{ turistiche della Valtellina.AndroidiOS95,5%93,7%Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native96,7%91%21 23. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneValutazione Quantitativa App Multimedia Unapplicazione che permette di scattare e visualizzare foto, ed effettuare e riprodurre filmati e registrazioni audio.AndroidiOS98,9%94,9%89%Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native92,8%22 24. Metamodello AstrattoMetamodello ImplementativoGeneratore di CodiceValutazioneValutazione Qualitativa Metamodello Astratto: Pu essere utilizzato in fase di design: Progettazione condivisa tra pi team di sviluppo Di facile interpretazioneGeneratore di Codice: Rapida definizione e produzione delle applicazioni Android e iOS Utile per: creare una nuova applicazione aggiornare unapplicazione esistente creare la stessa applicazione per unaltra piattaforma Limitazioni: Interfaccia grafica non personalizzabile Parti algoritmiche non modellabili Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native23 25. ConclusioniGiudizio complessivo positivoProduzione sorgenti nativi Android e iOSInput della fase di generazione del codiceModellazione ad alto livello di applicazioni mobiliUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native24 26. Sviluppi Futuri Aggiornamento costante nel tempo (iOS 7) Estensione della generazione del codice a nuove piattaforme (Windows Phone 8) Implementazione degli elementi non ancora supportati Personalizzazione dellinterfaccia grafica delle applicazioni Estensione dei dispositivi supportati: tablet e iPad Miglioramento della veste grafica del generatore di codice Link: https://github.com/perego-pezzetti/MobileCodeGenerator Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native25 27. Grazie per lattenzione!Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native26