A product-line model-driven engineering approach for generating feature-based mobile applications
Introduction
Mobile application development has recently emerged as one of the most focused areas in the software industry (Dehlinger and Dixon, October, 2011). Exponential growth of mobile users, extensive use of mobile devices, and the variety of mobile platforms has resulted in significant increase of mobile application development industry. According to recent statistics, there are around 4 million registered mobile applications available for various platforms (Statista 2015) with approximately 40 thousand mobile applications being added per month (Android Apps Submitted Per Month 2015) making the mobile application industry a multi-billion dollar industry (Mobile Application Revenue Generation 2013).
With the increase in the variety of mobile operating systems and device features, a typical challenge faced by mobile application industry is the requirement to support different mobile platforms. The term mobile platform refers to both the software platform (i.e., operating system and software features such as contact and message) and the hardware platform (i.e., the mobile device hardware such as bluetooth and camera). As an example, consider an application being developed may need to support various Android operating systems’ versions (Google 2015) (such as, Ice-cream Sandwich, Kitkat, Lollipop, Marshmallow), their forks (Android fork such as Cyanogen), and various iOS versions (Apple 2013) (such as, iOS 7, iOS 8, iOS X). The same application may also need to support the mobile device hardware variations, i.e., various mobile devices support specific hardware features that are not available in other devices. Some mobile devices provide support for LTE/4 G Networks, Bluetooth, GPS, External storage, or Accelerometer and other devices do not support these.
Another requirement for mobile applications is to support multiple functional requirement variations, i.e., different functionality for different clients. For example in a banking application, some clients may require support of scheduled wireless backups, while other clients only require manually triggered wired backup support. Similarly, some clients are interested in payment via traditional credit card option only whereas others may want support for more novel options, such as, bitcoins or Near Field Communications payment systems, such as Apply pay (Apply Pay 2016) and Android pay (Android Pay 2016) in an e-store application.
A common mobile development industry practice to address the above mentioned problems is to develop separate native variants of the same application for each mobile platform (Dehlinger and Dixon, October, 2011; Joorabchi et al., October 2013; Top 100 Apps Availability for iOS 2016). This is a very resource heavy task and the complexity of maintaining multiple variants increases exponentially as a large number of application variants need to be developed and maintained over time (Joorabchi et al., October 2013). Any potential change in the application requirements has to be applied to all the different variants of the mobile application manually. Similarly, any new functionality needs to be added in all the variants separately. The graphical user interface (GUI) for these applications is developed specifically for particular mobile platforms. The GUI is typically developed using drag-and-drop tools available for various operating systems and is tailored specifically for optimal performance on each set of devices (Google 2016; Microsoft, 2013; Apple 2016) that are then used to generate code corresponding to the GUI. Similarly, user-interface modeling languages, such as, IFML (OMG 2016), UMLi (Da Silva and Paton, 2000), or model-based user-interface modeling techniques (Cimino and Marcelloni, 2012; Botturi et al., 2013; Sabraoui et al., 2012) can be used for developing GUI. The development of business logic of native variants requires redundant effort and the approach of developing these separately is neither scalable nor feasible. The problem of maintaining multiple variants has also been highlighted by a number of software engineers as one of the key challenges in mobile application development (Dehlinger and Dixon, October, 2011; Joorabchi et al., October 2013; Wasserman, 2010).
An alternative to developing multiple native variants of a mobile application is to either develop a web application or a cross-platform hybrid application by using web-scripting languages (Raj and Tolety, 2012). Web applications execute in a web browser, whereas hybrid applications execute inside native containers of mobile devices (Raj and Tolety, 2012). Web and hybrid mobile applications are generally considered low in performance and cannot access mobile device hardware directly (Charland and Leroux, 2011). Web applications also require internet connectivity that cannot be ensured at all times. Native applications, on the other hand, are considered to be more stable and secure, better in terms of performance, allow direct access to device hardware and also have better look and feel. For example, Facebook application was first launched as a hybrid application but due to the performance issues and hardware non-accessibility, later on it was developed as a native application for multiple platforms (Facebook Hybrid App to Native App 2015). Some cross-platforms tools exist for development of web and hybrid mobile application (Ohrt and Turau, 2012). The mobile applications developed using native application development tools (Google 2016, Microsoft, 2013, Apple 2016) have superior look and feel as compared to the applications developed from the cross-platform development tools. Similarly, the debugging support offered by the cross-platform tools is inferior to the support provided by the native application development tools (Ohrt and Turau, 2012, Dalmasso et al., 2013, Heitkötter et al., 2012). Therefore, developing native applications is often the preferred choice if not the only choice.
Software product-line engineering (SPLE) is a well-accepted approach of developing a set of products that share a common set of features (Pohl et al., 2005). The concept of SPLE has been adopted from the broader product-line engineering that has been adopted and applied in different domains to handle large number of product variations, for example, in the automobile industry (Thiel and Hein, 2002) and embedded systems (Polzer et al., 2009). SPLE uses feature models that consist of a set of features and their variations that are required by the family of products being developed (Lee et al., 2002). The various products in the family (also referred to as product variants) in a product-line are derived using the feature model (Webber and Gomaa, 2004). The problems of supporting mobile application variants that are highlighted above can be positioned as an SPLE problem and the existing SPLE concepts can be applied in this domain.
A widely accepted methodology for developing software systems that has successfully been applied in other domains is Model-Driven Software Engineering (MDSE) (Gomaa, 2008, Larman, 2004, Iqbal et al., 2013). In MDSE, models are considered as the key software development artifact (Brambilla et al., 2012) and Unified Modeling Language (UML) (OMG 2013a) is commonly used for developing software systems. MDSE has a high potential for use in developing mobile applications because it allows platform independent modeling, which can later on be transformed to multiple mobile platforms.
In our work, we address the challenges faced by the mobile application industry (highlighted earlier) by proposing a ‘product-line model-driven engineering approach’ to support automated generation of mobile application variants of multiple platforms. We refer to these variants as feature-based variants and our approach supports three variations required by mobile applications industry: (i) variations in application due to mobile operating systems and their versions, (ii) variations due to software and hardware capabilities of the mobile devices, and (iii) variations based on the functionalities offered by the mobile application.
The problem of supporting multiple mobile application variants (hardware, software, and functional) is well-acknowledged in literature and is a recurring problem in industry. This is also true for our industrial partner, Invotyx (Invotyx 2014), which is developing native mobile applications for various mobile platforms with different features and the developers are currently maintaining a number of variants for each application, as per the prevalent industrial practice. Invotyx is interested in an efficient approach for developing and maintaining the various variants of the applications being developed at the company. Our proposed approach provides an automated solution and is applied on two case studies provided by our industrial partner, Scramble and Instalapse.
As part of the solution, for SPLE we provide a generic mobile application product-line feature model (FMG) that captures the mobile domain specific concepts (for example, Android v5.1, iOS X, bluetooth, WIFI, contact, and message). The FMG can be used by the application designer to develop an application specific feature model (FMA). The FMA contains the operating system-related features, software-related features, hardware-related features, and application-specific functional requirement-related features and combine these as a feature model specific for the application product-line under development. The application specific feature model (FMA) can then be used to generate a mobile application product-line modeling profile specific for the application product-line. The modeling profile allows the application designer to model mobile domain specific concepts during mobile application modeling. Considering mobile applications typically have short time to market and require quick delivery and deployment (Joorabchi et al., October 2013), we select a minimal but sufficient subset of UML that includes UML use-case diagram for requirements gathering, class diagram for structural modeling, and state machine diagram for behavioral modeling of the mobile application. To support the proposed approach, we develop an application generation tool MOPPET to automate our product-line model-driven engineering approach for mobile applications. The proposed approach is applied on two industrial case studies developed by our industrial partner.
The rest of the paper is organized as follows: Section 2 highlights the industrial context and describes the case studies. Section 3 overviews the related work. Section 4 presents the details of the proposed approach briefly. Section 5 provides details about the proposed product-line engineering approach while Section 6 discusses the proposed model-driven engineering approach. Section 7 describes the feature-based mobile application variants generation while Section 8 presents the developed MOPPET tool to implements the proposed approach. Section 9 validates the proposed approach through industrial case studies and also highlights the limitations, threats to validity, and open questions of the proposed approach. Finally, Section 10 concludes the paper.
Section snippets
Industrial context and description of case studies
This section describes the practical motivation of the proposed approach by introducing the industrial partner and the problems the company is facing due to the requirement of supporting multiple mobile platforms and their versions as well as functionality-driven variants. We also introduce the ‘Scramble’ (Scramble 2014) and ‘Instalapse’ (Instalapse 2014) case studies by Invotyx. The Scramble case study is being used as a running example throughout the paper and ‘Instalapse’ case study is
Related work
Mobile Application Product-line Engineering is an active research area with a number of approaches discussing the application of well-defined product-line engineering practices on mobile applications. Similarly, active research is going on in model-driven engineering for mobile applications. In our previous work (Usman et al., 2014), we had developed a model-based mobile application generation approach for multiple operating systems. This paper builds upon the previous work and handles
Proposed approach
This section presents a brief overview of the proposed ‘Product-line Model-driven Engineering approach’ to generate feature-based native mobile application variants for multiple platforms. Fig. 2 highlights the proposed approach. There are two roles of the participants in the proposed approach, i.e., (i) Framework Provider and (ii) Application Designer as shown in Fig. 2. The Framework Provider role is defined for the developers of the proposed approach while the Application Designer role is
Software product-line engineering approach for mobile applications
As the framework provider (Fig. 2), a Generic Feature Model (FMG) is provided that contains a set of typical mobile domain features, that includes the mobile operating system (e.g., Android v4.4, Windows Phone v7.8), software features (e.g., Notes, Contacts) and hardware features (e.g., Bluetooth, GPS). The FMG is used by application designer to develop an Application specific product-line Feature Model (FMA). The FMA contains the application specific hardware, software, operating systems, and
Modeling the mobile application product-line using model-driven engineering
Once the mobile application product-line feature model (FMA) is developed, the next step for the application designer is to model the business logic of the mobile application using UML modeling profile and notations. The FMA is used to generate a UML modeling profile corresponding to the application product-line. This profile contains the concepts of the domain and product-line that the application designer can use during modeling. For the modeling notations, a subset of UML is identified that
Mobile application variants generation
Once the designer has completed the development of application feature model (FMA) and UML modeling (i.e., the development of use-cases, class, and state machines) for the under development mobile application product-line, next is the application variants generation. For the required application variants, the designer configures FMA as a part of the proposed product-line engineering approach for mobile applications (presented in Section 5). The FMA along with its configuration, the generated
Automation
The MOPPET (MObile aPplication Product-linE generaTor) tool is used to automate the mobile application product-line generation. The MOPPET tool not only implements the mobile application variants generation for multiple platforms (see variant generation details in Section 7) but also integrates the components that are used during the product-line generation of mobile applications. Fig. 14 shows the integration of components with the MOPPET. The integrated components include FeatureDetails,
Validation of the proposed approach
In this section, the practicality of the proposed product-line model-driven engineering approach is evaluated by applying it on two case studies, i.e., Scramble and Instalapse. Following, the details of these case studies are discussed.
Conclusion
Supporting variability is a key challenge for mobile application industry. Application variants are developed to support hardware devices, software platforms, and variations in functional requirements. The current industrial practice is to develop multiple native variants of an application separately, which is a very challenging task and poses significant overheads in terms of effort and cost. Any potential change or bug fix has to be applied across all variants manually.
In this paper, we
Muhammad Usman is currently doing his PhD in Computer Science from National University of Computer and Emerging Sciences (Fast-NU), Islamabad, Pakistan. He received his Master's degree in systems and software engineering from Mohammad Ali Jinnah University (M.A.J.U), Islamabad campus, Pakistan in 2009. He is also a research fellow at Software Quality Engineering and Testing (QUEST) Laboratory, Pakistan. His research interests include mobile software engineering, model-driven engineering,
References (87)
- et al.
An efficient model-based methodology for developing device-independent mobile applications
J. Syst. Architect.
(2012) - et al.
Extending a model-driven Cross-platform development approach for business apps
Sci Comput. Program
(2015) - et al.
FeatureIDE: an extensible framework for Feature-oriented software development
Sci Comput. Program
(2014) - et al.
Modeling variability in software product lines with the variation point model
Sci. Comput. Program
(2004) - et al.
Applying software product lines to multiplatform video games
- Android Apps Submitted Per Month (September 2015). Available:...
- Android Pay (June 2016). Available:...
- Appcelerator, Titanium (2013). Available:...
- Apple App Store 2015. Available:...
- Apple, iOS platform (November 2013). Available:...
Feature models
Grammars, and Propositional Formulas
MDA approach to automate code generation for mobile applications
Mobile and Wireless Technologies
Use Case Modeling
Object Oriented Analysis & Design with Application
Model-driven design for the development of multi-platform smartphone applications
Model-driven software engineering in practice
Synth. Lectures Softw. Eng.
Mobile application development: web vs. Native
Commun. ACM
UMLi: the unified modeling language for interactive applications
Generating app product lines in a model-driven cross-platform development approach
Survey, comparison and evaluation of cross platform mobile application development tools
Mobile application software engineering: challenges and research directions
Towards a reference architecture for model-driven business apps
Model-based software design of real-time embedded systems
Int. J. Softw. Eng.
Empirical investigations of model Size, complexity and effort in a large Scale, distributed model driven development process
Evaluating Cross-platform development approaches for mobile applications
Cross-platform Model-driven development of mobile applications with MD 2
Environment modeling and simulation for automated testing of soft real-time embedded software
Softw. Syst. Model.
Real challenges in mobile app development
Extending UML Meta-model for android application
Cited by (35)
A holistic approach for cross-platform software development
2021, Journal of Systems and SoftwareCitation Excerpt :Perchat et al. (2013) propose a universal language in which, through a compiler, it is possible to generate native code, but the proposed language has a low abstraction level. MOPPET (Usman et al., 2017) is a tool that uses a mixed approach, involving the concepts of Software Product Lines and MDD, defined by the authors as a product-line model-driven engineering approach for native code generation. Case studies have shown reduced effort and increased productivity.
An evolutionary approach for generating software models: The case of Kromaia in Game Software Engineering
2021, Journal of Systems and SoftwareCitation Excerpt :In the following years, subsequent works have continued focusing on the generation of source code from models (Núñez-Valdéz et al., 2017, 2013; Solís-Martínez et al., 2015; Usman et al., 2017). Some of the above MDE works (Reyno and Carsí Cubel, 2009; Usman et al., 2017) use UML as the modelling language, one MDE work (Solís-Martínez et al., 2015) uses process models, while the rest of them (Núñez-Valdéz et al., 2017, 2013) use Domain-Specific Modelling Languages (DSL). The major advantage of modelling languages is that models use concepts that are much less bound to the underlying implementation technology, like video game engines such as Unreal (Games, 1998) or Unity (U. Technologies, 2005), and are much closer to the problem domain (the content of the video game) related to most popular programming languages (e.g., C++) (Selic, 2003).
Empirical software product line engineering: A systematic literature review
2020, Information and Software TechnologyCitation Excerpt :The case studies that obtained the least qualification were [61], [52] and [63] which met only four criteria. The case studies [38], [43], [54], [58] and [66] met five criteria. We consider that the case study design has not been enough specific, or at least it has not been reported in the primary studies and has left aside important aspects.
Facilitating the development of cross-platform mHealth applications for chronic supportive care and a case study
2020, Journal of Biomedical InformaticsAdvances in Applications of Object Constraint Language for Software Engineering
2019, Advances in ComputersCitation Excerpt :Modeling languages ranging from the standardized Unified Modeling Language (UML) [2] to domain-specific languages (DSLs) and profiles, such as the SysML [3], are being used under the MDE umbrella. MDE has been successfully applied in a number of domains, including information systems [4], embedded systems [5,6], product-line engineering [7,8], mobile application development [9], communications [10], and games [11]. Modeling languages allow modeling of different aspects of systems, including the structural and behavioral aspects, using well-defined modeling constructs.
Automatic generation of Web of Things servients using Thing Descriptions
2024, Personal and Ubiquitous Computing
Muhammad Usman is currently doing his PhD in Computer Science from National University of Computer and Emerging Sciences (Fast-NU), Islamabad, Pakistan. He received his Master's degree in systems and software engineering from Mohammad Ali Jinnah University (M.A.J.U), Islamabad campus, Pakistan in 2009. He is also a research fellow at Software Quality Engineering and Testing (QUEST) Laboratory, Pakistan. His research interests include mobile software engineering, model-driven engineering, product-line engineering, and software testing.
Muhammad Zohaib Iqbal is currently an Associate Professor at the Department of Computer Science, National University of Computer & Emerging Sciences (Fast-NU), Islamabad, Pakistan and a research fellow at the Software Verification & Validation Lab, Interdisciplinary Centre for Security, Reliability and Trust (SnT), University of Luxembourg. He is also the lead scientist at Software Quality Engineering and Testing (QUEST) Laboratory and President of Pakistan Software Testing Board. He received his PhD degree in software engineering from University of Oslo, Norway in 2012. Before joining Fast-NU, he was a research fellow at Simula Research Laboratory, Norway. His research interests include model-driven engineering, mobile software engineering, software testing, and empirical software engineering. He has been involved in research projects in these areas since 2004.
Muhammad Uzair Khan is currently an Assistant Professor at the Department of Computer Science, National University of Computer & Emerging Sciences (Fast-NU), Islamabad, Pakistan. He is heading the Software Quality Engineering and Testing (QUEST) Laboratory, and is a founding member of Pakistan Software Testing Board. He completed his PhD research work at INRIA, France and received his PhD degree in computer science from University of Nice, France in 2011. His research interests include model-driven engineering, empirical software engineering, aspect-oriented software engineering, model refactoring and software testing. He is also the current Secretary/Treasurer of IEEE Islamabad Section.