SlideShare a Scribd company logo
Un Approccio Model-Driven per lo
Sviluppo di Applicazioni Mobili Native
Relatore: Prof. Luciano Baresi
Tesi di Laurea Magistrale in Ingegneria Informatica

Gregorio Perego
Stefania Pezzetti
3 Ottobre 2013
Overview

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

1
Un Approccio Model-Driven

Distribuzione delle vendite mondiali di Smartphone per sistema operativo:

(Q2 2013)
Source: Gartner
Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native

2
Outline
Background
• Applicazioni Native e Applicazioni Cross-Platform
• Stato dell’arte
• Metamodello Windows Phone 7
• Metamodello Android

Il nostro lavoro
1.
2.
3.
4.

Metamodello Astratto
Metamodello Implementativo
Generatore di Codice
Valutazione

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

3
Applicazioni Native e Applicazioni CrossPlatform

Stato dell’arte

Applicazioni Native

Vantaggi

Svantaggi

•
•
•
•

•

•
•

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 riferimento

•

•

Necessario sviluppare una versione
dell’app per ogni piattaforma
Richiesta conoscenza dei linguaggi di
programmazione specifici delle
piattaforme
Tempi lunghi e alti costi di sviluppo

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

4
Applicazioni Native e Applicazioni CrossPlatform

Stato dell’arte

Applicazioni Cross-Platform
Tipologie:
• Web
• Ibride
• Interpretate
• Cross-Compilate

Vantaggi

Svantaggi

•
•

•
•
•

•
•

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 sviluppo

•

•

User 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 riferimento

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

5
Applicazioni Native e Applicazioni Cross-Platform

Stato dell’arte

Stato dell’arte
• 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 Native

6
Applicazioni Native e Applicazioni Cross-Platform

Stato dell’arte

Metamodello Android
(Caratteristiche Strutturali)

Interfaccia Grafica

Risorse di Sistema

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

7
IL NOSTRO LAVORO

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

8
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Analisi dei metamodelli Android e
Windows Phone 7

Analisi

Problema

Idea

I metamodelli esistenti sono
platform-dependent

Individuare le corrispondenze nella struttura delle
applicazioni mobili delle diverse piattaforme e
definire un metamodello platform-independent

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

9
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Metamodello 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 un’applicazione, 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 Native

10
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Metamodello Astratto

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

11
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Metamodello Astratto
Risorse Hardware

Life Cycle

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

12
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Metamodello Astratto
Interfaccia Utente

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

13
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Metamodello 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
dell’applicazione desiderata
• Bassa complessità

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

14
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Metamodello Implementativo

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

15
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Generatore di Codice

• Strumento software per generare i sorgenti nativi
corrispondenti al modello dell’applicazione 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 Native

16
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Tecnologie
• 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 Native

17
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Generatore di Codice - Architettura

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

18
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

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

Valutazione

19
Metamodello Astratto

Metamodello Implementativo

Lavoro Svolto

Generatore di Codice

Valutazione

Metamodello Astratto
Metamodello Implementativo
Generatore di codice

Physical SLOC: righe di codice
Logical SLOC: n° di istruzioni

Valutazione Quantitativa
Giudizio complessivo

Valutazione
Valutazione Qualitativa

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

20
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Valutazione Quantitativa – App Valtellina
Un’applicazione che permette di ricavare informazioni relative alle più rinomate localit{
turistiche della Valtellina.

Android

iOS

95,5%

93,7%

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

96,7%

91%

21
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Valutazione Quantitativa – App Multimedia
Un’applicazione che permette di scattare e visualizzare foto, ed effettuare e riprodurre
filmati e registrazioni audio.

Android

iOS

98,9%

94,9%

89%

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

92,8%

22
Metamodello Astratto

Metamodello Implementativo

Generatore di Codice

Valutazione

Valutazione Qualitativa
Metamodello Astratto:
• Può essere utilizzato in fase di design:
• Progettazione condivisa tra più team di sviluppo
• Di facile interpretazione

Generatore di Codice:
• Rapida definizione e produzione delle applicazioni Android e iOS
• Utile per:
• creare una nuova applicazione
• aggiornare un’applicazione esistente
• creare la stessa applicazione per un’altra piattaforma

• Limitazioni:
• Interfaccia grafica non personalizzabile
• Parti algoritmiche non modellabili
Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native

23
Conclusioni

Giudizio complessivo positivo

Produzione sorgenti nativi Android e iOS

Input della fase di generazione del codice

Modellazione ad alto livello di applicazioni mobili

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

24
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 dell’interfaccia 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 Native

25
Grazie per l’attenzione!

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

26

More Related Content

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

Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...DotNetCampus
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Gabriele Gaggi
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Andrea Dottor
 
v2 Presentazione Lelli
v2 Presentazione Lelliv2 Presentazione Lelli
v2 Presentazione LelliMatteo Lelli
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
Alessandro Morvillo
 
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utenteUX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
Marco Pesani
 
Miniaturizzazione dell'interfaccia utente da applicazioni Java ad Android.pptx
Miniaturizzazione dell'interfaccia utente da applicazioni Java ad Android.pptxMiniaturizzazione dell'interfaccia utente da applicazioni Java ad Android.pptx
Miniaturizzazione dell'interfaccia utente da applicazioni Java ad Android.pptx
Pasquale Matrone
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store appsDotNetCampus
 
Mobile & Web Apps in Arscolor Interactive
Mobile & Web Apps in Arscolor InteractiveMobile & Web Apps in Arscolor Interactive
Mobile & Web Apps in Arscolor Interactive
WallaMe Ltd.
 
App Mobile Powerapps
App Mobile PowerappsApp Mobile Powerapps
App Mobile Powerapps
Giuneco S.r.l
 
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
giovanni biallo
 
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenniMarco Suma
 
Meet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventiMeet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventi
Fondazione Mondo Digitale
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
Stefano Sanna
 
iLook ZUI, congresso SIE 2010
iLook ZUI, congresso SIE 2010 iLook ZUI, congresso SIE 2010
iLook ZUI, congresso SIE 2010
marcocarnesecchi
 
Programmazione + Ingegnerizzazione = $ BUSINESS - Gorga
Programmazione + Ingegnerizzazione = $ BUSINESS - GorgaProgrammazione + Ingegnerizzazione = $ BUSINESS - Gorga
Programmazione + Ingegnerizzazione = $ BUSINESS - Gorga
Codemotion
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del SoftwareYeser Rema
 
FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLTlab Business Presentation 2012
FLTlab Business Presentation 2012
FLT.lab
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
Roberto Cappelletti
 

Similar to Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native (20)

Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
 
v2 Presentazione Lelli
v2 Presentazione Lelliv2 Presentazione Lelli
v2 Presentazione Lelli
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
 
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utenteUX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
 
Miniaturizzazione dell'interfaccia utente da applicazioni Java ad Android.pptx
Miniaturizzazione dell'interfaccia utente da applicazioni Java ad Android.pptxMiniaturizzazione dell'interfaccia utente da applicazioni Java ad Android.pptx
Miniaturizzazione dell'interfaccia utente da applicazioni Java ad Android.pptx
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
Mobile & Web Apps in Arscolor Interactive
Mobile & Web Apps in Arscolor InteractiveMobile & Web Apps in Arscolor Interactive
Mobile & Web Apps in Arscolor Interactive
 
App Mobile Powerapps
App Mobile PowerappsApp Mobile Powerapps
App Mobile Powerapps
 
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
LandCity Revolution 2016 - App studio e gli strumenti di Esri per la creazion...
 
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
03-Lezione PON BAITAH Dott. Suma - Software Engineering - cenni
 
Meet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventiMeet no Neet: presentazione del progetto App per organizzare eventi
Meet no Neet: presentazione del progetto App per organizzare eventi
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
iLook ZUI, congresso SIE 2010
iLook ZUI, congresso SIE 2010 iLook ZUI, congresso SIE 2010
iLook ZUI, congresso SIE 2010
 
Programmazione + Ingegnerizzazione = $ BUSINESS - Gorga
Programmazione + Ingegnerizzazione = $ BUSINESS - GorgaProgrammazione + Ingegnerizzazione = $ BUSINESS - Gorga
Programmazione + Ingegnerizzazione = $ BUSINESS - Gorga
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
 
FLTlab Business Presentation 2012
FLTlab Business Presentation 2012FLTlab Business Presentation 2012
FLTlab Business Presentation 2012
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 

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

  • 1. Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native Relatore: Prof. Luciano Baresi Tesi di Laurea Magistrale in Ingegneria Informatica Gregorio Perego Stefania Pezzetti 3 Ottobre 2013
  • 2. Overview Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 1
  • 3. Un Approccio Model-Driven Distribuzione delle vendite mondiali di Smartphone per sistema operativo: (Q2 2013) Source: Gartner Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 2
  • 4. Outline Background • Applicazioni Native e Applicazioni Cross-Platform • Stato dell’arte • Metamodello Windows Phone 7 • Metamodello Android Il nostro lavoro 1. 2. 3. 4. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 3
  • 5. Applicazioni Native e Applicazioni CrossPlatform Stato dell’arte Applicazioni Native Vantaggi Svantaggi • • • • • • • 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 riferimento • • Necessario sviluppare una versione dell’app per ogni piattaforma Richiesta conoscenza dei linguaggi di programmazione specifici delle piattaforme Tempi lunghi e alti costi di sviluppo Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 4
  • 6. Applicazioni Native e Applicazioni CrossPlatform Stato dell’arte Applicazioni Cross-Platform Tipologie: • Web • Ibride • Interpretate • Cross-Compilate Vantaggi Svantaggi • • • • • • • 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 sviluppo • • User 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 riferimento Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 5
  • 7. Applicazioni Native e Applicazioni Cross-Platform Stato dell’arte Stato dell’arte • 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 Native 6
  • 8. Applicazioni Native e Applicazioni Cross-Platform Stato dell’arte Metamodello Android (Caratteristiche Strutturali) Interfaccia Grafica Risorse di Sistema Componenti Fondamentali Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 7
  • 9. IL NOSTRO LAVORO Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 8
  • 10. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Analisi dei metamodelli Android e Windows Phone 7 Analisi Problema Idea I metamodelli esistenti sono platform-dependent Individuare le corrispondenze nella struttura delle applicazioni mobili delle diverse piattaforme e definire un metamodello platform-independent Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 9
  • 11. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Metamodello 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 un’applicazione, 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 Native 10
  • 12. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Metamodello Astratto Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 11
  • 13. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Metamodello Astratto Risorse Hardware Life Cycle Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 12
  • 14. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Metamodello Astratto Interfaccia Utente Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 13
  • 15. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Metamodello 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 dell’applicazione desiderata • Bassa complessità Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 14
  • 16. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Metamodello Implementativo Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 15
  • 17. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Generatore di Codice • Strumento software per generare i sorgenti nativi corrispondenti al modello dell’applicazione 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 Native 16
  • 18. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Tecnologie • 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 Native 17
  • 19. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Generatore di Codice - Architettura Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 18
  • 20. Metamodello Astratto Metamodello Implementativo Generatore di Codice Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native Valutazione 19
  • 21. Metamodello Astratto Metamodello Implementativo Lavoro Svolto Generatore di Codice Valutazione Metamodello Astratto Metamodello Implementativo Generatore di codice Physical SLOC: righe di codice Logical SLOC: n° di istruzioni Valutazione Quantitativa Giudizio complessivo Valutazione Valutazione Qualitativa Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 20
  • 22. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Valutazione Quantitativa – App Valtellina Un’applicazione che permette di ricavare informazioni relative alle più rinomate localit{ turistiche della Valtellina. Android iOS 95,5% 93,7% Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 96,7% 91% 21
  • 23. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Valutazione Quantitativa – App Multimedia Un’applicazione che permette di scattare e visualizzare foto, ed effettuare e riprodurre filmati e registrazioni audio. Android iOS 98,9% 94,9% 89% Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 92,8% 22
  • 24. Metamodello Astratto Metamodello Implementativo Generatore di Codice Valutazione Valutazione Qualitativa Metamodello Astratto: • Può essere utilizzato in fase di design: • Progettazione condivisa tra più team di sviluppo • Di facile interpretazione Generatore di Codice: • Rapida definizione e produzione delle applicazioni Android e iOS • Utile per: • creare una nuova applicazione • aggiornare un’applicazione esistente • creare la stessa applicazione per un’altra piattaforma • Limitazioni: • Interfaccia grafica non personalizzabile • Parti algoritmiche non modellabili Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 23
  • 25. Conclusioni Giudizio complessivo positivo Produzione sorgenti nativi Android e iOS Input della fase di generazione del codice Modellazione ad alto livello di applicazioni mobili Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 24
  • 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 dell’interfaccia 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 Native 25
  • 27. Grazie per l’attenzione! Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native 26