The development of mobile applications requires dealing with limited resources like network connectivity. Most mobile applications are in constant access to remote data. Not considering possible failings in the network connectivity could lead to applications with insufficient usability, limited or even unusable applications in offline mode. Moreover, another notorious concern when developing mobile applications is the fragmentation of mobile platforms. While this portability challenge can be addressed with cross-platform mobile development frameworks, native apps continue to prevail in mobile application stores.
One of the most common techniques to tackle the network connectivity problem and maintain user experience is caching user data. This technique, also affected by the fragmentation phenomenon, presents challenges considering the number of data caching techniques these days is not negligible. In our study, we identified a series of general data storage options commonly used across different mobile platforms, each of these with various implementations according to the platform on which it is implemented.
These ideas are integrated into our extension of the Model-Oriented Web Approach (MoWebA)  for the development of native mobile applications’ data layer: MoWebA Mobile. This MDD proposal covers data persistence concepts to ensure the functionality of mobile applications in case of network connectivity problems. A paper presenting MoWebA Mobile, has been published in the Journal of Systems and Software. The paper is co-authored by with Manuel Núñez, Daniel Bonhaure, Magalí González, and Luca Cernuzzi. We highlight as our major contributions:
- a Model-Driven Development Approach for mobile business applications focusing on the data layer,
- a data persistence coverage for offline applications with network connectivity problems,
- a definition of metamodels to design the data sources of mobile business application,
- transformation rules for the generation of Android and Windows Phone applications, and finally,
- a first evaluation of the MoWebA Mobile proposal through a mobile application development experience.
The Data Layer definition
With MoWebA Mobile the mobile application is centered in the modeling of the Data Layer. The Microsoft Application Architecture Guide (MAAG)  establishes this layer provides access to data hosted within system boundaries and to data exposed by other networked systems, i.e., the data layer, aside from the data persistence handling, proposes data sources (or data providers, as we mentioned them in our work) for mobile applications.
Thanks to MoWebA’s well-defined layered structure, other layers can be easily extended and evolve over time. Scoped in the data layer, we start from the Entity Diagram allowing defining the structure and static relationships between the classes in the problem domain at the Platform-Independent Model (PIM) level . Thus, this diagram was our clear choice to work towards a foundation of mobile conceptual elements that might facilitate the modeling of the mobile application data persistence. Moreover, for data provider modeling, we extended a UML class.
Based on MAAG  guidelines for designing the data layer, we are able to generate the main components of this layer, taking into account different data storage options and data providers, as well as providing the user helpers and utilities that facilitate the data persistence handling, establishing the foundations with other layers that can later be defined.
For data persistence, we identified three major mechanisms: databases, files, and key-value pairs, each of these implemented differently on each platform.
Regarding data providers, and according to XIS-Mobile  profile specifications, we emphasize that mobile applications can receive data from three types of sources:
- External data providers, such as servers and remote databases. In this context, we chose REST, as a uniform and portable communication interface, adopted in extension in mobile application network communication approaches.
- Internal data providers, such as sensors like the gyroscope and accelerometer, and device-specific hardware resources, such as cameras and microphones.
- Through interoperability with other applications, to exchange different data types like File, Image, and more.
Development process with MoWebA Mobile
The process for the design and generation of mobile applications with MoWebA Mobile consists of 3 main stages:
- PIM to Architecture-Specific Model (ASM) transformation process,
- ASM to Code transformation process, and
- The final application generation.
The featured image of this post depicts this PIM-to-ASM-to-code transformation.
We start modeling with MagicDraw, which is a general-purpose modeling tool, using the UML profiles of MoWebA. Then, M2M transformation is made from PIM to ASM using ATL language with ATL EMFTVM (ATL EMF Transformation Virtual Machine). The result of this step is the ASM Model, which has to be adjusted manually. Then, to generate code from the performed models, we export these in XMI v2.1 format (XML of Metadata Exchange) and import them in Acceleo. Using defined transformation rules (Acceleo spreadsheets), we generate the source code of the mobile application data layer implementation. We define transformation rules to generate this implementation, both for Android (Java) and Windows Phone (C#). Besides the generated code from the M2T transformation rules, we have developed a set of user interfaces to show the data layer functionalities. Finally, to obtain a native application for both platforms, the generated code must be compiled in their respective IDEs: Android Studio and Visual Studio.
This generated application contains most of the tools that would help developers as a starting point when working with data-oriented applications, avoiding as far as possible, creating an application from scratch. First of all, all the data persistence designed and modeled are already implemented in the code (e.g., database configuration, tables creation, files i/o functionalities, key-value management). Second, sensors and device-specific hardware (e.g., camera) are already implemented, as well as a REST API skeleton is provided. So far, all these implemented functionalities can be later modified or extended by the developers if necessary. Furthermore, utilities classes and helpers are also generated, with standard functionalities already defined. Third, to test and get first sight of the generated functionalities, a set of basic and general screens are generated. This user interface shows the defined elements like data persistence functions by creating CRUD forms, uses the defined sensors and hardware device to demonstrate read values, and receives values from other applications.
With the clear intention to address the data persistence layer, we developed MoWebA Mobile as an extension of MoWebA. We chose to extend MoWebA instead of another MDD approach thanks to its ASM. Firstly, the ASM constitutes a level of abstraction between the PIM and the PSM, encapsulating details related to the architecture the developed software will have. This encapsulation makes it possible to improve both the generalization of the modeling and its understanding (by separating concepts), aspects that contribute to the development of the code generator, and, therefore, maximize the possibilities of extending the approach to more target platforms. The goal of facilitating the extension of the approach to more target platforms is something that was also contemplated by other authors. In this regard, we highlight the proposal of Evers et al. , later refined by Ernsting et al. , which consists of a reference architecture that governs modeling and is agnostic regarding the MDD approach. Among other things, this reference architecture facilitates the understanding of the structure’s archetype, that is, the understanding of meta-models and their instances. Secondly, MoWebA can be an appropriate option for the portability problem in the development of mobile applications .
As part of our work, we conducted a study of Model-Driven Mobile Development projects. We established the data persistence mechanisms used, external server connection allowed, and offline support, as main comparison indicators. This study helped us to recognize a limited coverage of the concepts surrounding the modeling of the data layer in the development of mobile applications, and the scarce adoption of OMG’s standards, specifically the Model-Driven Architecture (MDA).
Between the list of projects analyzed, we found MD2 [12, 5], MAML framework [2, 3], and WebRatio Mobile [9, 10] as the most similar projects to MoWebA Mobile contemplating data persistence modeling, offline support, and external server connection as well. Summarizing the main differences, a first aspect to mention is the use of OMG’s standards, specifically MoWebA Mobile adopts the MDA approach. Moreover, MoWebA introduces the ASM as part of the solution modeling, which is an interesting intermediate level for assuring more independence for different mobile-architecture specific platforms.
More specifically, MoWebA Mobile specializes in the data layer, while the mentioned proposals contemplate the development of a complete layered application (business, data, and GUI). Nevertheless, our data layer specialization supports more data layer concept coverage. Specifically, while MD2 [12, 5], MAML [2, 3], and WebRatio Mobile [9, 10] consider only local database storage, MoWebA Mobile allows defining other data persistence mechanisms as file management and temporal persistence through key-value pairs (or dictionaries). Furthermore, being the data providers an important concept considered in this layer, MoWebA Mobile adopts three types of providers. This adoption offers the capacity to consider mobile device sensors as well as other applications, as additional data sources for an application. On the other hand, and in our knowledge, MD2 [12, 5], MAML [2, 3], and WebRatio Mobile [9, 10] contemplate only external providers, i.e., external connection with remote servers or back-ends.
MoWebA Mobile is still recent, and not yet a mature proposal, with some limitations. However, from our perspective, most can be considered as limits of work-in-progress that can be exceeded in the future. On the one hand, MoWebA Mobile can access business logic located in a server (via web-services), and provide database access. Offline support is also possible, but limited. This is because an automatic data synchronization between the application and the server, as soon as the Internet connection is available, is not available yet. The device-specific hardware access (e.g., GPS), and sensors (e.g., accelerometer) are available. It is possible to define data types and CRUD operations for corresponding data, locally the device (data persistence modeling), as well as on a server (data provider modeling). However, it is necessary to improve the implementation of data bindings and input validation. On the other hand, a fundamental and general form-based user interface is generated. As we are not dealing with the presentation layer, it is not possible to model considering layouts and UI (User Interface) components (i.e., widgets). Not dealing with the presentation layer also limited us over the definition of the user navigation and sequence of UI views, as well as reacting to an event and state changes. Nevertheless, incoming data from other applications is considered (data interoperability with other applications).
We conducted a first evaluation oriented to analyzing the usability and portability of MoWebA Mobile. For this purpose, we used the GQM (Goal Question Metric) paradigm  and the activities suggested by Wohling et al. . We identified two goals and seven research questions which were answered with an experience developed in three different sessions with a group of modelers and experienced developers.
From the experience with modelers and developers, quantitative and qualitative data were obtained which included: the project documentation, the work sessions’ timesheets, and a series of questionnaires (ASQ and SUS). The usability evaluation results in MoWebA Mobile, in general, were good. All stages of development with MoWebA Mobile threw good results in usability satisfaction.
For the analysis of the satisfaction of MoWebA Mobile, we considered modelers and developers’ points of view. The modelers perceived MoWebA Mobile to be somewhat complex, feeling somewhat insecure using the approach and with the need to learn many things to handle it. However, the proposed approach was well accepted by the developers, who considered it consistent and not complicated.
The experience helped us to identify some specific points to be improved for obtaining an increasingly consistent version of the approach, and it opened the expectation about the potential of MoWebA Mobile to expand and generate applications dealing with other layers’ problems and become a more comprehensive approach for developing mobile applications.
Where to go from here?
We consider extending MoWebA Mobile to other layers, i.e., implementing the GUI layer as well as the business layer, an interesting work opportunity. Furthermore, consider communication between layers, and cross-cutting aspects to the layers (i.e., security, configuration, and communication). To improve our business application development capabilities, we need to think about layer design (i.e., considering layouts and UI components) and other related aspects like data synchronization, data binding, and input validations. Finally, an updated and more systematic and experimental comparison analysis between the mentioned proposals and MoWebA Mobile remains for future studies. An extended list of work opportunities from our study can be found in our article.
 A. Ribeiro, A. R. da Silva, XIS-mobile: a DSL for mobile applications, in: Y. Cho, S. Y. Shin, S. Kim, C. Hung, J. Hong (Eds.), Symposium on Applied Computing, SAC 2014, Gyeongju, Republic of Korea – March 24 – 28, 2014, ACM, 2014, pp. 1316–1323. doi:10.1145/2554850.2554926. URL https://doi.org/10.1145/2554850.2554926
 C. Rieger, H. Kuchen, A Model-Driven Cross-Platform App Development Process for Heterogeneous Device Classes, in: T. Bui (Ed.), 52nd Hawaii International Conference on System Sciences, HICSS 2019, Grand Wailea, Maui, Hawaii, USA, January 8-11, 2019, ScholarSpace / AIS Electronic Library (AISeL), 2019, pp. 1–10. doi:10.24251/HICSS.2019.894. URL https://doi.org/10.24251/HICSS.2019.894
 C. Rieger, H. Kuchen, A process-oriented modeling approach for graphical development of mobile business apps, Computer Languages, Systems & Structures 53 (2018) 43–58. doi:10.1016/j.cl.2018.01.001. URL https://doi.org/10.1016/j.cl.2018.01.001
 E. Sanchiz, M. González, N. Aquino, L. Cernuzzi, Development of Mobile Applications with Functions in the Cloud through the Model Driven Approach: A Systematic Mapping Study, CLEI Electron. J. 20 (3). doi:10.19153/cleiej.20.3.6. URL https://doi.org/10.19153/cleiej.20.3.6
 H. Heitkötter, H. Kuchen, T. A. Majchrzak, Extending a model-driven cross-platform development approach for business apps, Sci. Comput. Program. 97 (2015) 31–36. doi:10.1016/j.scico.2013.11.013. URL https://doi.org/10.1016/j.scico.2013.11.013
 J. Ernsting, C. Rieger, F. Wrede, T. A. Majchrzak, Refining a Reference Architecture for Model-Driven Business Apps, in: Proceedings of the 12th International Conference on Web Information Systems and Technologies – Volume 2: WEBIST„ INSTICC, SciTePress, 2016, pp. 307–316. doi:10.5220/0005862103070316. URL https://doi.org/10.5220/0005862103070316
 M. González, L. Cernuzzi, O. Pastor, A navigational role-centric model oriented web approach – MoWebA, Int. J. Web Eng. Technol. 11 (1) (2016) 29–67. doi:10.1504/IJWET.2016.075963. URL https://doi.org/10.1504/IJWET.2016.075963
 M. Patterns, Microsoft Application Architecture Guide, 2nd Edition, Microsoft Press, 2009.
 R. Acerbis, A. Bongio, M. Brambilla, S. Butti, Model-Driven Development Based on OMG’s IFML with WebRatio Web and Mobile Platform, in: P. Cimiano, F. Frasincar, G. Houben, D. Schwabe (Eds.), Engineering the Web in the Big Data Era – 15th International Conference, ICWE 2015, Rotterdam, The Netherlands, June 23-26, 2015, Proceedings, Vol. 9114 of Lecture Notes in Computer Science, Springer, 2015, pp. 605–608. doi:10.1007/978-3-319-19890-3\_39. URL https://doi.org/10.1007/978-3-319-19890-3_39
 R. Acerbis, A. Bongio, M. Brambilla, S. Butti, Model-Driven Development of Cross-Platform Mobile Applications with Web Ratio and IFML, in: 2015 2nd ACM International Conference on Mobile Software Engineering and Systems, 2015, pp. 170–171. doi:10.1109/MobileSoft.2015.49.
 S. Evers, J. Ernsting, T. A. Majchrzak, Towards a Reference Architecture for Model-Driven Business Apps, in: T. X. Bui, R. H. S. Jr. (Eds.), 49th Hawaii International Conference on System Sciences, HICSS 2016, Koloa, HI, USA, January 5-8, 2016, IEEE Computer Society, 2016, pp. 5731–5740. doi:10.1109/HICSS.2016.708. URL https://doi.org/10.1109/HICSS.2016.708
 T. A. Majchrzak, J. Ernsting, H. Kuchen, Achieving Business Practicability of Model-Driven Cross-Platform Apps, Open Journal of Information Systems (OJIS) 2 (2) (2015) 4–15. URL http://nbn-resolving.de/urn:nbn:de:101:1-201705194768
 C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, Experimentation in Software Engineering, Springer, 2012.doi:10.1007/978-3-642-29044-2. URLhttps://doi.org/10.1007/978-3-642-29044-2
 V. R. Basili, G. Caldiera, and D. H. Rombach.The Goal Question Metric Approach, volume I. John Wiley & Sons, 1994