Developing Mobile Applications Via Model Driven Development: A Systematic Literature Review

https://doi.org/10.1016/j.infsof.2021.106693Get rights and content

Highlights

  • Systematic literature review on model-driven development approaches for mobile apps.

  • 55 primary studies selected, data extracted and analyzed.

  • Existing models, application domains, techniques, tools and evaluation schemes are analyzed.

  • Recommend future works based on identified strengths and limitations.

Abstract

Context:

Mobile applications (known as “apps”) usage continues to rapidly increase, with many new apps being developed and deployed. However, developing a mobile app is challenging due to its dependencies on devices, technologies, platforms, and deadlines to reach the market. One potential approach is to use Model Driven Development (MDD) techniques that simplify the app development process, reduce complexity, increase abstraction level, help achieve scalable solutions and maximize cost-effectiveness and productivity.

Objective:

This paper systematically investigates what MDD techniques and methodologies have been used to date to support mobile app development and how these techniques have been employed, to identify key benefits, limitations, gaps and future research potential.

Method:

A Systematic Literature Review approach was used for this study based on a formal protocol. The rigorous search protocol identified a total of 1,042 peer-reviewed academic research papers from four major software engineering databases. These papers were subsequently filtered, and 55 high quality relevant studies were selected for analysis, synthesis, and reporting.

Results:

We identified the popularity of different applied MDD approaches, supporting tools, artifacts, and evaluation techniques. Our analysis found that architecture, domain model, and code generation are the most crucial purposes in MDD-based app development. Three qualities – productivity, scalability and reliability – can benefit from these modeling strategies. We then summarize the key collective strengths, limitations, gaps from the studies and made several future recommendations.

Conclusion:

There has been a steady interest in MDD approaches applied to mobile app development over the years. This paper guides future researchers, developers, and stakeholders to improve app development techniques, ultimately that will help end-users in having more effective apps, especially when some recommendations are addressed, e.g., taking into account more human-centric aspects in app development.

Introduction

In 2021, the number of smartphone users exceeded 3.8 billion, and approximately 66% of the world population had a mobile device such as cell phone, tablet, or a cellular-enabled IoT device [1], [2]. In addition, mobile phone usage for different purposes had an average increase of 7.71% per year over the last three years [3]. In 2018, more than 205 billion mobile apps were downloaded from the app repositories [4]. The revenue earned by the mobile apps is expected to reach $935 billion in 2023, compared to $365 billion earned in 2018 [5]. Developing a modern mobile app is not a trivial exercise [6]. Key steps in app development include requirements gathering, platform selection, target users identification, constraint mapping, and problem modeling. During design, app developers draw approximate User Interface (UI) sketches and may use a prototyping tool to create the model aspects of the visual design and the navigation flow. The architecture of the app is designed based on needed functionality and user interface mockups. Finally, the app is coded and the clients download, use and provide feedback on it. This is a highly iterative process and continues throughout the development lifecycle.

Model Driven Development (MDD) techniques can help developers build an app more efficiently, as they enable code synthesis through a model transformation process. MDD has shown to be successful in many Software Engineering (SE) domains to improve productivity, increase the quality of the outcome, provide tools for formal analysis, minimize manual implementation effort, provide more reliability, flexibility, and easy maintenance [7], [8]. However, some researchers have shown that while many MDD-based mobile app development approaches offer useful domain patterns and tools, many of the models they use are relatively low-level. This can be a problem because they can then become very large and cumbersome to work with, require a lot of modeling effort, and do not abstract away from code-level details. Additionally, while many are sufficient to describe information for basic app generation, often only user interface or basic data aspects can be modeled and generated, and they do not contain adequate information to realize the full implementation while still require very detailed modeling [9], [10]. Thus, these approaches are often hard to reuse, need expert app developer input, do not leverage similarities across platforms, and require extensive post-generation app testing and tuning.

We conducted a detailed investigation into existing research approaches used for mobile app development based on model-driven development, to identify strengths, limitations, and key directions for future work in the area. To do this, we chose to use a Systematic Literature Review (SLR), locating and synthesizing relevant academic literature. This SLR will benefit the readers interested in app development in three key ways: (i) to understand existing MDD methodologies, techniques, and tools for app development; (ii) to compare different ways of app modeling and generation; and (iii) to identify key research gaps, potential future work, and enhancement possibilities for existing MDD based mobile app development approaches.

Based on our findings, 20 out of 55 selected studies aimed to make the app development process more flexible and faster, primarily to manage models, data, and services. We also found that the reusable code generation components in 8 of the selected studies was shown to reduce product development time and consequently costs for cross-platform, multi-platform or multi-version app development. Additionally, 18 studies proposed a new method, framework, tool, or languages to increase development efficiency. Our analysis also found that architecture, domain model and code generation are the most crucial purposes in MDD based app development, and three qualities, productivity, scalability and reliability can benefit from these modeling strategies. We found that a substantial proportion of the selected studies (25.45%) focus mainly on interface development instead of full mobile app features. Most approaches have been applied to examples and use-cases from academia (80%) and only a few from industry. One potential reason is that MDD approaches are not sufficiently mature and flexible for industrial app development. Another is that many industry apps can be built sufficiently well without using MDD approaches, or by only using basic MDD approaches e.g. generate skeleton code only [10].

Guided by our findings, we listed ten significant limitations in the selected studies, discussed in Section 4.3.2. We found that eleven out of the fifty-five selected studies are not suitable for use at the professional level either because they (i) are not extendable to other than very narrow app usage domains; (ii) only partial apps can be generated and their code cannot be modified; or (iii) the generator creates code with significant performance and security issues. We also found that another 20 studies need to describe the development processes proposed and analyze their work more thoroughly to be applicable in the real world. We also found that three studies are not suitable for large-scale app development, two developed GUIs separately from the other app components, and two do not specify how the tool and model get their target app requirements. From these analyses, we recommended seven high-priority potential future research areas. The key contributions of the paper include:

  • We defined an SLR protocol following Kitchenham’s guideline [11] and found 1042 papers potentially related to this topic. Subsequent filtering resulted in 55 primary studies selected for analysis, synthesis, and reporting.

  • We extracted information from selected primary studies, carried out a meta-analysis, and present key strengths and limitations with the corresponding discussion.

  • We provide guidance for mobile app developers, stakeholders, and researchers who want to better understand what MDD techniques and methodologies have been used to date to support mobile app development, and how these techniques have been employed.

  • We identify a set of key recommended research directions to address the limitations of MDD based mobile app development schemes and discuss their impacts.

The rest of this paper is organized as follows. Section 2 briefly discusses key related work. We then present our SLR-based research methodology and data synthesis in Sections Section 3. In Section 4, we provide detailed answers to our key research questions as evidenced from the selected primary studies. Section 5 discusses threats to validity for this SLR. Finally, Section 6 concludes the paper.

Section snippets

Background and related work

Although MDD approaches for mobile app development have a long history, this review study is the first large-scale systematic review that accesses existing approaches to provide their classification for identifying gaps, limitations and discussing current trends and future challenges. In this review, we were interested in evaluating existing MDD-based approaches that have investigated mobile app development to date. This section presents some necessary background and key related works required

Research methodology

This section defines our Systematic Literature Review (SLR) protocol based on the guidelines provided by Kitchenham et al. [11] and our previous experiences [26], [27], [28], [29]. A high level workflow diagram is shown in Fig. 1. The review protocol development for this study was carried out by the first author under the close supervision of the remaining authors, who are experienced in performing and supervising SLRs in software engineering. The first author was also responsible for the

Evaluation results and analysis

We extracted qualitative, quantitative and mixed data from the selected 55 primary studies. We also used visualization tools and meta-analysis techniques to present our analysis, especially to answer the research questions defined in Section 3.1. Fig. 3 show the year of publication for all selected studies. Appendix A contains the full list of references for the selected studies. We found, there were 6 journal papers, 1 book chapter, 4 symposium papers, 3 workshop articles and 41 conference

Threats to validity

This SLR is subject to standard search and selection bias threats. We counter this threat by searching the most commonly used databases in the SE and IT context. We modified our search strings several times during the automatic search to maximize the number of relevant articles that match the SLR concepts defined in Table 2. We also kept our search string generic to search through the titles, abstracts, keywords and full text of an article to cover the maximum number of relevant papers. We have

Conclusion

To better understand the research done to advance MDD-based approaches for mobile app development, we conducted a Systematic Literature Review (SLR). To this end, extracting data, analyzing them based on our three main research questions and corresponding eight sub-research questions are defined in the SLR protocol. We also identified the popularity of different applied MDD techniques, supporting tools, artifacts and evaluation techniques. This review study found that the existing MDD

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Acknowledgments

Md. Shamsujjoha is supported by Monash International Tuition Scholarship (MITS), RTP Stipend and CSIRO Data61 Top-up Scholarship for his Ph.D. study at Monash University, Melbourne, Australia.

This work was also supported by the Australian Research Council (ARC) under a Laureate Fellowship project FL190100035, a Discovery Early Career Researcher Award (DECRA) project DE200100016, and a Discovery project DP200100020.

References (33)

  • BarnettS. et al.

    Supporting multi-view development for mobile applications

    J. Comput. Lang.

    (2019)
  • LiL. et al.

    Static analysis of android apps: A systematic literature review

    Inf. Softw. Technol.

    (2017)
  • ShamsujjohaM. et al.

    Human-centric issues in ehealth app development and usage: A preliminary assessment

  • HolstA.

    Smartphone Users Worldwide 2016-2021Tech. rep.

    (2019)
  • FelgoiseS.

    App Economy Stats You Should KnowTech. rep.

    (2019)
  • ShamsujjohaM. et al.

    Checking app behavior against app descriptions: What if there are no app descriptions?

  • ClementJ.

    Total Global Mobile App Revenues 2014-2023Tech. rep.

    (2019)
  • GrundyJ. et al.

    Vision: Improved development of mobile ehealth applications

  • SelicB.

    What will it take? A view on adoption of model-based methods in practice

    Softw. Syst. Model.

    (2012)
  • BrownA.W.

    Model driven architecture: Principles and practice

    Softw. Syst. Model.

    (2004)
  • BarnettS. et al.

    A multi-view framework for generating mobile apps

  • KitchenhamB. et al.

    Guidelines for Performing Systematic Literature Reviews in Software EngineeringTechnical Report EBSE 2007-001

    (2007)
  • RahmaniC. et al.

    A survey on model driven software development

  • LiddleS.W.

    Model-driven software development

  • StahlT. et al.

    Model-Driven Software Development: Technology, Engineering, Management

    (2006)
  • BrambillaM. et al.

    Model-Driven Software Engineering in Practice: Second Edition

    (2017)
  • Cited by (14)

    • Automatically Detecting Incompatible Android APIs

      2023, ACM Transactions on Software Engineering and Methodology
    View all citing articles on Scopus
    View full text