Mobile devices constitute the most common computing device. This computing model has brought intense competition among hardware and software providers who are continuously introducing increasingly powerful mobile devices and innovative operating systems into the market. In consequence, cross-platform and multi-device development has become a priority for software companies that want to reach the widest possible audience. However, developing an app for several platforms implies high costs and technical complexity. Currently, there are several frameworks implementing different methodologies for cross-platform application development. Nevertheless, these approaches still require manual programming, which yields to high risks of errors, inconsistencies, and inefficiencies. On the other side, with the advent of the Internet of Things era, homes, cities and almost everything is becoming smart. This technology is extending rapidly, but it still needs to solve many problems that arise when a technology requires being available at any time, in any place, for everyone and for any device. So far the development of front-end and user interfaces for IoT systems has not played a relevant role in research. On the contrary, user interfaces must be a key part in the IoT ecosystem because they can play a key role in acceptance of solutions by final adopters. This research proposes to face the challenges of mobile and IoT-based applications development by exploiting abstraction, modeling and code generation in the spirit of model-driven development engineering. The main contributions include modeling languages and design methodology for mobile and IoT-based applications; code generators for implementation phase; and a model-driven framework for user behavior analysis. In parallel to my research topic, I carried out different experiments to understand and propose solutions to some supposed barriers in the adoption of model-driven development approaches. In this context, I tackled the issues of modeling effort and modeling languages usability. Regarding the effective modeling effort in the process of modeling software systems, the experiment showed that more than 60\% of effort is spent in designing. Thus, the fault of supposedly unproductive processes should not be blamed on modeling, but to the (anyhow necessary) effort devoted to thinking about the problem and identifying the solution. Furthermore, a research conducted in order to understand how the designed languages are actually used and how they fit the users' need showed that available languages are either too complex with respect to user need or do not exactly fit the domain. This happens mainly because of the lack of right involvement of end-users in the language development process. I proposed a user-centered approach allowing the adaptation of existing modeling languages to the user needs through a language simplification process.
I dispositivi mobili stanno diventando lo strumento più utilizzato per consumare e produrre informazione. Questa evoluzione ha portato con se una sentita concorrenza tra i produttori di tali dispositivi e i sviluppatori dei loro sistemi operativi che continuano a introdurre prodotti sempre più innovativi. Inoltre, non c'è una chiara dominanza sia tra i produttori dei dispositivi mobili sia tra i proprietari dei sistemi operativi. Pertanto, le aziende produttrici delle applicazioni mobili, che intendono coprire una grande partizione del mercato, sono costretti di produrre la stessa applicazione tante volte quante sono le piattaforme mobili. Lo sviluppo della stessa applicazione per diverse piattaforme comporta alti costi e aumenta la complessità tecnica dovuta alla diversità delle piattaforme mobili. Esistono diversi approcci che implementano diverse tecnologie per lo sviluppo multi-piattaforme. Tuttavia, questi approcci richiedono, in grande parte, la programmazione manuale che porta con se il rischio di introdurre errori nel codice, incongruenze e inefficienze. Inoltre, con l'avvento dell'Internet-of-Things (IoT), diversi oggetti stanno diventando intelligenti. Questa tecnologia si sta estendendo rapidamente, ma ci sono ancora problemi da risolvere che sorgono quando una tecnologia richiede di essere accessibile in ogni momento, qualsiasi luogo, per tutti e per qualsiasi dispositivo. Finora, lo sviluppo delle interazioni con l'utente per questi sistemi non ha ancora attirato la giusta attenzione dei ricercatori. Questa ricerca si propone di affrontare le sfide dello sviluppo delle applicazioni mobili e delle applicazioni per l'IoT sfruttando l'astrazione, la modellazione e la generazione di codice nello spirito dello sviluppo basato su modelli. I contributi principali di questa tesi includono: i linguaggi di modellazione e la metodologia di progettazione per le applicazioni mobili e per IoT; i generatori di codice; e un framework, basato su modelli, per l'analisi del comportamento degli utenti dell'applicazione. In parallelo al mio tema principale di ricerca, ho effettuato diversi esperimenti per capire e proporre soluzioni ad alcune barriere nell'adozione delle approcci di sviluppo basato su modelli. In questo contesto, ho affrontato il tema del carico di lavoro effettivo legato alle interazioni cogli strumenti di modellazione nel processo dello sviluppo basato su modelli. Inoltre, ho condotto una ricerca per capire come i linguaggi progettati vengono effettivamente utilizzati e come rispondono ai requisiti degli utenti finali. Questa ricerca ha mostrato che i linguaggi disponibili sono troppo complessi rispetto alle esigenze dell'utente, o non si adattano esattamente al dominio. Questo accade soprattutto a causa della mancanza di un giusto coinvolgimento degli utenti finali nel processo di sviluppo dei linguaggi. Ho proposto un approccio centrato sull'utente, per l'adattamento dei linguaggi di modellazione esistenti alle esigenze degli utenti attraverso un processo di semplificazione del linguaggio.
Domain-specific modeling and code generation for cross-platform mobile and IoT-based applications
UMUHOZA, ERIC
Abstract
Mobile devices constitute the most common computing device. This computing model has brought intense competition among hardware and software providers who are continuously introducing increasingly powerful mobile devices and innovative operating systems into the market. In consequence, cross-platform and multi-device development has become a priority for software companies that want to reach the widest possible audience. However, developing an app for several platforms implies high costs and technical complexity. Currently, there are several frameworks implementing different methodologies for cross-platform application development. Nevertheless, these approaches still require manual programming, which yields to high risks of errors, inconsistencies, and inefficiencies. On the other side, with the advent of the Internet of Things era, homes, cities and almost everything is becoming smart. This technology is extending rapidly, but it still needs to solve many problems that arise when a technology requires being available at any time, in any place, for everyone and for any device. So far the development of front-end and user interfaces for IoT systems has not played a relevant role in research. On the contrary, user interfaces must be a key part in the IoT ecosystem because they can play a key role in acceptance of solutions by final adopters. This research proposes to face the challenges of mobile and IoT-based applications development by exploiting abstraction, modeling and code generation in the spirit of model-driven development engineering. The main contributions include modeling languages and design methodology for mobile and IoT-based applications; code generators for implementation phase; and a model-driven framework for user behavior analysis. In parallel to my research topic, I carried out different experiments to understand and propose solutions to some supposed barriers in the adoption of model-driven development approaches. In this context, I tackled the issues of modeling effort and modeling languages usability. Regarding the effective modeling effort in the process of modeling software systems, the experiment showed that more than 60\% of effort is spent in designing. Thus, the fault of supposedly unproductive processes should not be blamed on modeling, but to the (anyhow necessary) effort devoted to thinking about the problem and identifying the solution. Furthermore, a research conducted in order to understand how the designed languages are actually used and how they fit the users' need showed that available languages are either too complex with respect to user need or do not exactly fit the domain. This happens mainly because of the lack of right involvement of end-users in the language development process. I proposed a user-centered approach allowing the adaptation of existing modeling languages to the user needs through a language simplification process.File | Dimensione | Formato | |
---|---|---|---|
thesis.pdf
accessibile in internet per tutti
Descrizione: Thesis text
Dimensione
8.21 MB
Formato
Adobe PDF
|
8.21 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/131915