Towards Architectural Styles for Android App Software Product Lines

Software product line development for Android apps is difficult due to an inflexible design of the Android framework. However, since mobile applications become more and more complex, increased code reuse and thus reduced time-to-market play an important role, which can be improved by software product lines. We propose five architectural styles for developing software product lines of Android apps: (1) activity extensions, (2) activity connectors, (3) dynamic preference entries, (4) decoupled definition of domain-specific behavior via configuration files, (5) feature model using Android resources. We demonstrate the benefits in an early case study using an image processing product line which enables more than 90% of code reuse.

[1]  Josh Dehlinger,et al.  Mobile Application Software Engineering : Challenges and Research Directions , 2011 .

[2]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[3]  Klaus Schmid,et al.  GoPhone - A Software Product Line in the Mobile Phone Domain , 2004 .

[4]  Vander Alves,et al.  Identifying Variations in Mobile Devices , 2004, J. Object Technol..

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[7]  Vicente Ferreira de Lucena,et al.  Smart composition of reusable software components in mobile application product lines , 2011, PLEASE '11.

[8]  Cecília M. F. Rubira,et al.  A Robust Software Product Line Architecture for Data Collection in Android Platform , 2015, 2015 IX Brazilian Symposium on Components, Architectures and Reuse Software.

[9]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[10]  William B. Frakes,et al.  Software reuse: metrics and models , 1996, CSUR.

[11]  Robert L. Nord,et al.  Software Product Lines , 2004, Lecture Notes in Computer Science.

[12]  Ahmed E. Hassan,et al.  Understanding reuse in the Android Market , 2012, 2012 20th IEEE International Conference on Program Comprehension (ICPC).

[13]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[14]  Weishan Zhang,et al.  Reuse without Compromising Performance: Industrial Experience from RPG Software Product Line for Mobile Devices , 2005, SPLC.

[15]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[16]  David Lo,et al.  What are the characteristics of high-rated apps? A case study on free Android Applications , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[17]  Michele Lanza,et al.  Software Analytics for Mobile Applications--Insights & Lessons Learned , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[18]  Pascal Barla,et al.  Designing Gratin, A GPU-Tailored Node-Based System , 2015 .

[19]  Ahmed E. Hassan,et al.  A Large-Scale Empirical Study on Software Reuse in Mobile Apps , 2014, IEEE Software.

[20]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[21]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[22]  Jan Bosch,et al.  Managing Variability in Software Product Lines , 2000 .

[23]  Ari Jaaksi,et al.  Developing Mobile Browsers in a Product Line , 2002, IEEE Softw..

[24]  Prashant Jain,et al.  Pattern Oriented Software Architecture: Patterns for Resource Management , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[25]  Jacques Klein,et al.  Mining families of android applications for extractive SPL adoption , 2016, SPLC.

[26]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[27]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[28]  Jan Bosch,et al.  Issues Concerning Variability in Software Product Lines , 2000, IW-SAPF.

[29]  Matthias Trapp,et al.  Interactive image filtering with multiple levels-of-control on mobile devices , 2016, SIGGRAPH ASIA Mobile Graphics and Interactive Applications.

[30]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[31]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[32]  Frank Buschmann,et al.  Pattern-Oriented Software Architecture, a Pattern Language for Distributed Computing , 2007 .

[33]  Olga Baysal,et al.  Investigating the android apps' success: An empirical study , 2016, 2016 IEEE 24th International Conference on Program Comprehension (ICPC).

[34]  Linda M. Northrop SEI's Software Product Line Tenets , 2002, IEEE Softw..

[35]  Douglas C. Schmidt,et al.  Model-Driven Product-Line Architectures for Mobile Devices , 2008 .