Abstract
Rapidly increasing numbers of applications and users make the development of mobile applications to one of the most promising fields in software engineering. Due to short time to market, differing platforms, and fast emerging technologies, mobile application development faces typical challenges where model-driven development (MDD) can help. We present a modeling language and an infrastructure for the MDD of native apps in Android and iOS. Our approach allows a flexible app development on different abstraction levels: compact modeling of standard app elements such as standard data management and increasingly detailed modeling of individual elements to cover, for example, specific behavior. Moreover, a kind of variability modeling is supported such that mobile apps with variants can be developed. We demonstrate our MDD approach with several apps including a conference app, a museum guide with augmented reality functionality, and a SmartPlug.
Similar content being viewed by others
References
(2007) Web Services Business Process Execution Language (WS-BPEL) Version 2.0. http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html
(2011) Business Process Model And Notation (BPMN) Version 2.0. http://www.omg.org/spec/BPMN/2.0
(2014) Koukaam. http://www.koukaam.se/
(2014) Metaio Inc. http://www.metaio.com/sdk
(2015) App Inventor. http://appinventor.mit.edu
(2015) Applause. https://github.com/applause/applause
(2015) Apple Developer Connection. https://developer.apple.com/devcenter/ios/
(2015) Apple Inc. https://developer.apple.com/xcode/ide/
(2015) Google Android Developer Portal. http://developer.android.com/index.html
(2015) Google Inc. https://dl-ssl.google.com/android/eclipse/
(2015) Google Play Services. http://developer.android.com/google/play-services
(2015) Hwaci—Applied Software Research. https://www.sqlite.org/
(2015) ModAgile. http://www.modagile-mobile.de
PIMAR: Platform-inpendent development of mobile apps with augmented reality. http://www.uni-marburg.de/fb12/swt/forschung/software/pimar/
Abolfazli, S., Sanaei, Z., Gani, A., Xia, F., Yang, L.T.: Rich mobile applications: genesis, taxonomy, and open issues. J. Netw. Comput. Appl. 40, 345–362 (2014)
Allen, S., Graupera, V., Lundrigan, L.: Pro Smartphone Cross-Platform Development: iPhone, Blackberry, Windows Mobile and Android Development and Distribution. Apress (2010)
Ambler, S.: Agile Database Techniques: Effective Strategies for the Agile Software Developer. Wiley, London (2012)
Behrens, H.: MDSD for the iPhone: developing a domain-specific language and IDE tooling to produce real world applications for mobile devices. In: Cook, W.R., Clarke, S., Rinard, M.C. (eds) SPLASH/OOPSLA Companion, ACM, pp. 123–128 (2010)
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing Ltd (2013)
Bishop, R.: Learning with LabVIEW. Pearson Education (2011)
Burnette, E.: Hello, Android: Introducing Google’s Mobile Development Platform. Pragmatic Bookshelf (2010)
Calvary, G., Coutaz, J., Thevenin, D., Limbourg, Q., Bouillon, L., Vanderdonckt, J.: A unifying reference framework for multi-target user interfaces. Interact. Comput. 15(3), 289–308 (2003)
Ceri, S., Fraternali, P., Bongio, A.: Web Modeling Language (WebML): a modeling language for designing Web sites. Comput. Netw. 33(1–6), 137–157 (2000)
Conway, J., Hillegass, A.: iOS Programming: The Big Nerd Ranch Guide, 3rd edn. Pearson Education (2012)
Degrandsart, S., Demeyer, S., Van den Bergh, J., Mens, T.: A transformation-based approach to context-aware modelling. Softw. Syst. Model. 13(1), 191–208 (2014)
Emmanouilidis, C., Koutsiamanis, R.A., Tasidou, A.: Mobile guides: taxonomy of architectures, context awareness, technologies and applications. J. Netw. Comput. Appl. 36(1), 103–125 (2013)
Goadrich, M.H., Rogers, M.P.: Smart smartphone development: iOS versus Android. In: Proceedings of the 42nd ACM technical symposium on Computer science education, ACM (2011)
Gronback, R.: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Pearson Education (2009)
Guckert, M., Malerczyk, C., Gerlach, R., Taentzer, G., Vaupel, S., Fatum, M.: Plattformunabhängige Entwicklung mobiler Anwendungen mit Augemented Reality-Funktionalität. Anwendungen und Konzepte der Wirtschaftsinformatik - AKWI 3, 5 (2015)
Heitkötter, H., Majchrzak, T.A., Kuchen, H.: Cross-platform model-driven development of mobile applications with MD\(^{\text{2}}\). In: Proceedings of the 28th Annual ACM Symposium on Applied Computing, SAC ’13, Coimbra, Portugal, March 18–22, 2013, ACM, pp. 526–533 (2013)
Hemel, Z., Visser, E.: Declaratively programming the mobile web with Mobl. In: Lopes, C.V., Fisher, K. (eds) OOPSLA, ACM, pp 695–712 (2011a)
Hemel, Z., Visser, E.: Mobl: the new language of the mobile web. In: Lopes, C.V., Fisher, K. (eds) OOPSLA Companion, ACM, pp. 23–24 (2011b)
Karsai, G., Krahn, H., Pinkernell, C., Rumpe, B., Schneider, M., Völkel, S.: Design guidelines for domain specific languages. In: Rossi, M., Sprinkle, J., Gray, J., Tolvanen, J.P. (eds) Proceedings of the 9th OOPSLA Workshop on Domain-Specific Modeling (DSM’09), pp. 7–13 (2009)
Kennedy-Eden, H., Gretzel, U.: A taxonomy of mobile applications in tourism (2012)
Kraemer, F.A.: Engineering Android applications based on UML activities. In: Model Driven Engineering Languages and Systems, 14th International Conference, MODELS 2011, Wellington, New Zealand, Oct 16–21, 2011. Proceedings, Springer, Lecture Notes in Computer Science, vol 6981, pp 183–197 (2011)
Liao, S.: Migrating to Swift from Android. Apress (2014)
Mednieks, Z., Dornin, L., Meike, G., Nakamura, M.: Programming Android. O’Reilly (2012)
Meier, R.: Professional Android 4 Application Development. Wiley, London (2012)
Navarre, D., Palanque, P., Ladry, J.F., Barboni, E.: Icos: a model-based user interface description technique dedicated to interactive systems addressing usability, reliability and scalability. ACM Trans. Comput.-Hum. Interact. 16(4), 18 (2009)
Oehlman, D., Blanc, S.: Pro Android Web Apps: Develop for Android using HTML5, CSS3 & JavaScript. Apress (2011)
Piper, I.: Learn Xcode Tools for Mac OS X and iPhone Development. IT Pro, Apress (2010)
Puerta, A.R., Eriksson, H., Gennari, J.H., Musen, M.A.: Beyond data models for automated user interface generation. In: BCS HCI, pp. 353–366 (1994)
Raneburger, D., Popp, R., Vanderdonckt, J.: An automated layout approach for model-driven wimp-ui generation. In: Proceedings of the 4th ACM SIGCHI Symposium on Engineering Interactive Computing Systems, ACM, pp. 91–100 (2012)
Rubel, D., Wren, J., Clayberg, E.: The Eclipse Graphical Editing Framework (GEF). Addison-Wesley, Reading (2011)
Souchon, N., Vanderdonckt, J.: A review of xml-compliant user interface description languages. In: Interactive Systems. Design, Specification, and Verification. Springer, Berlin, pp. 377–391 (2003)
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2009)
Tran, V., Vanderdonckt, J., Tesoriero, R., Beuvens, F.: Systematic generation of abstract user interfaces. In: Proceedings of the 4th ACM SIGCHI Symposium on Engineering Interactive Computing Systems, ACM, pp. 101–110 (2012)
Vaupel, S., Taentzer, G., Harries, J.P., Stroh, R., Gerlach, R., Guckert, M.: Model-driven development of mobile applications allowing role-driven variants. In: Model-Driven Engineering Languages and Systems, pp. 1–17, LNCS 8767, Springer, Berlin (2014)
Vaupel, S., Strüber, D., Rieger, F., Taentzer, G.: Agile bottom-up development of domain-specific ides for model-driven development. In: Proceedings of FlexMDE 2015: Workshop on Flexible Model-Driven Engineering, pp. 12–21, vol. 1470, CEUR-WS.org (2015)
Vaupel, S., Taentzer, G., Gerlach, R., Guckert, M.: Model-driven development of platform-independent mobile applications supporting role-based app variability. In: Knoop J, Zdun U (eds) Software Engineering 2016, Fachtagung des GI-Fachbereichs Softwaretechnik, 23 Februar–26 Februar 2016, Wien, Österreich, GI, LNI, vol 252, pp 99–100 (2016a)
Vaupel, S., Wlochowitz, D., Taentzer, G.: A generic architecture supporting context-aware data and transaction management for mobile applications (to appear). In: Proceedings of the 3rd ACM International Conference on Mobile Software Engineering and Systems, MOBILESoft 2016, Austin, TX, USA, May 16–17, 2016, IEEE (2016b)
Vlissides, J.: Pattern Hatching: Design Patterns Applied. Addison-Wesley, Reading (1998)
Williams, G.: Learn HTML5 and JavaScript for Android. Apress (2012)
Yener, M., Theedom, A., Rahman, R.: Professional Java EE Design Patterns. Wiley, London (2014)
Zapata, B.: Android Studio Application Development. Packt Publishing (2013)
Acknowledgments
We thank Jan Peer Harries and Kevin Kaiser for their valuable work on the implementation of code generators for Android and iOS and the anonymous reviewers for their valuable comments to a preliminiary version.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. Jürgen Dingel and Wolfram Schulte.
This work was partially funded by LOEWE HA Project No. 355/12-45 (State Offensive for the Development of Scientific and Economic Excellence).
Rights and permissions
About this article
Cite this article
Vaupel, S., Taentzer, G., Gerlach, R. et al. Model-driven development of mobile applications for Android and iOS supporting role-based app variability. Softw Syst Model 17, 35–63 (2018). https://doi.org/10.1007/s10270-016-0559-4
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-016-0559-4