Clone-Based Variability Management in the Android Ecosystem
Loading...
Date
2018
Journal Title
Journal ISSN
Volume Title
Publisher
IEEE
Abstract
Abstract—Mobile app developers often need to create variants
to account for different customer segments, payment models or
functionalities. A common strategy is to clone (or fork) an existing
app and then adapt it to new requirements. This form of reuse has
been enhanced with the advent of social-coding platforms such as
Github, cultivating a more systematic reuse. Different facilities,
such as forks, pull requests, and cross-project traceability support
clone-based development. Unfortunately, even though, many apps
are known to be maintained in many variants, little is known
about how practitioners manage variants of mobile apps.
We present a study that explores clone-based reuse practices
for open-source Android apps. We identified and analyzed
families of apps that are maintained together and that exist
both on the official app store (Google Play) as well as on
Github, allowing us to analyze reuse practices in depth. We
mined both repositories to identify app families and to study
their characteristics, including their variabilities as well as codepropagation
practices and maintainer relationships. We found
that, indeed, app families exist and that forked app variants
fall into the following categories: (i) re-branding and simple
customizations, (ii) feature extension, (iii) supporting of the
mainline app, and (iv) implementation of different, but related
features. Other notable characteristic of the app families we
discovered include: (i) 73% of the app families did not perform
any form of code propagation, and (ii) 74% of the app families
we studied do not have common maintainers.
Description
Keywords
software variants, Mobile apps, App families, Android, Software ecosystems
Citation
Businge, J., Openja, M., Nadi, S., Bainomugisha, E., & Berger, T. (2018, September). Clone-based variability management in the android ecosystem. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME) (pp. 625-634). IEEE. DOI 10.1109/ICSME.2018.00072