SlideShare a Scribd company logo
Clone-Based Variability Management
in the Android Ecosystem
John Businge
Mbarara University of
Science and Technology,
Uganda
Moses Openja
Mbarara University of
Science and Technology,
Uganda
Sarah Nadi
University of
Alberta,
Canada
Engineer Bainomugisha
Makerere University,
Uganda
Thorsten Berger
Chalmers | University
of Gothenburg,
Sweden
Commercial AppsOpen Source Apps
Mobile-app variants
Reasons for creating App Variants:
• Different user needs
• Different markets
• Different payment modes
• Different hardware
Variant 1
Variant 2 Variant 4
Variant 3
Angry Birds App variants
Variant 1
Mainline
Variant 2 Variant 4
Variant 3
Bitcoin wallet App variants
Software Reuse
Fork-based development
2
>700K android repos on Github
>2K android repos forked >1000 times
• Variability management methods should be employed to
effectively develop variants
• Substantial software reuse in the android ecosystem is
through cloning [1,2]
• Simple variability management like clone&own to
develop and maintain the app variants.
• Unknown practices employed; hindering improvement
of the development practices.
Mobile App Variability Management
1. J. Mojica, B. Adams, M. Nagappan, S. Dienst, T. Berger, and A. E. Hassan, “A large scale empirical study on software
reuse in mobile apps,” IEEE Software , vol. 31, no. 2, pp. 78–86, Mar. 2014.
2. F. Sattler, A. von Rhein, T. Berger, N. S. Johansson, M. M. Hardø, and S. Apel, “Lifting inter-app data-flow analysis to
large app sets,” Automated Software Engineering , no. 25, pp. 315–346, Jun 2018.
3
Goal
Understand variant management practices in the Android
ecosystem
Focus
We identify app families and study app family variability
management practices in depth
What is an App family?
A collection of apps on Github that are maintained
together, consisting of a mainline variant and its forked
variants.
4
Research Questions
• RQ1 - What are the characteristics of Android app
families?
• RQ2 - How are app families maintained and co-
evolved?
• RQ3 - How diverse are the contributors in Android
app families?
• RQ4 - What are the various types of variations or
customizations that lead to the creation of an app
family?
5
App Family Identification
Mainline Variant
Fork Variant 1
Fork Variant 2
Fork Variant 3
Fork Variant 4
Fork Variant 5
App family
MLV
FV1
FV5
6
App family > =2 Variants
App Family Identification – Search Statistics
Mainline repo is advertised on
Google Play (GP)
5,535
55,939
Mainline Android repos
>1 Forks
Mainline & fork variants
advertised on Google Play
88
Number of variants per family
(Apps)RQ1 – Characteristics of Android app
families – Results
• Few app families found hosted both
on Github and Google Play
• These have rather few variants
• But we can study them in-depth
7
88 App Families
RQ2 - How are app families maintained?
Understand how code is propagated between
family variants
• Are pull requests used as main code propagation
technique?
• Is code only propagated between mainline and
fork variants?
8
Mainline
Variant
Time
31 2
RQ2 - How are app families maintained? - Approach
Fork
Variant
Fork Date
StartingCommits MLVUniqueCommitsPullRequestCommitsFV-to-MLV
PullRequestCommitsMLV-to-FV
FVUniqueCommitsDirectPullCommitsMLV-to-FV
iii iviii
a b c ed f
2 31
i iii
i iii c
c
d f
d f
9
Mainline variant commits: 1, 2, 3, a, b, c, d, e, and f
Fork variant commits: i, ii, iii, and iv
Code propagation scenario
10
RQ2 - How are app families maintained? - Results
• Both distributions are left-skewed
• Most apps do not perform pull requests in either direction
• Fork-to-Mainline – 10 forks sent 16 pull requests
• Mainline-to-Fork – 5 mainlines sent 15 pull requests
Number of pull requests
(Apps)
(Apps)
Pull requests (Mainline-Fork) Pull requests (Fork-mainline)
Surprisingly, we observed that all the 15 pull requests
(mainline-to-fork) were initiated by fork developers
11
RQ2 - How are app families maintained? - Results
Number of pull requests among forks
Pull requests (Fork-Fork)
(Apps)
• Distribution is left-skewed
• Only one fork sent one pull request to another fork
12
RQ2 - How are app families maintained? - Results
Number of direct pull commits from mainline to fork
(Apps)
Direct Pull Commits Mainline-Fork
• Left-skewed distribution
• 47 of the 127 (37%) forks variants performed direct pull
commits (cherry picked) form the mainline variants
RQ2 - How are app families maintained? - Summary
13
• Variants rarely perform pull request code
propagation
• Direct pull commits is the most used code
propagation method
• 64 of the 88 (72.7%) app families did not perform
any form of code propagation
• We investigated whether the Fork variants are
typically created and controlled by new
developers
• Or whether the forks are still governed by the
mainline developers.
RQ3 - Diversity of contributors in app families?
14
RQ3 - Diversity of contributors in app families?- Approach
Developer 1 Developer 2
DirectPullComMLV-FV
Mainline
Variant
Time
31 2
Fork
variant
Fork Date
StartingCommits MLVUniqueComPullRequestComFV-MLV
PullRequestComMLV-FV FVUniqueCom
ii
i
iviii
a b c ed f
2 31
i iii
i iii c
c
d f
d f
Developer 1
15
Mainline variant commits: 1, 2, 3, a, b, c, d, e, and f
Fork variant commits: i, ii, iii, and iv
• Left-skewed distribution
• Most of the mainline-
fork variant pairs have no
common developers
• 94 of the 127 (74%)
mainline-fork pairs do
not have common
developers
RQ3 - Diversity of contributors in app families? - ResultsMainline–Forkpairs
Common developers between Mainline-fork pairs
18
RQ4 - Various types of variations in app families
Approach
Why are variant forks created?
• Does the fork variant (FV) add small functionality to the mainline
variant (MLV) or,
• Does the fork variant use the mainline as a building block for the
apps completely different focus
Manual inspection of a sample of 11 of the 88 app families
MLV
FV
Google Play
Features in App
description
Github
Customizations and
additions in the FV’s
unique commits
17
• Reuse Type 1: Fork variants performing re-branding
and simple customizations of the mainline variant
• Reuse Type 2: Fork variants implementing different
but related features of the mainline variant
• Reuse Type 3: Fork variants extending the mainline
variant functionality
• Reuse type 4: Fork variants supporting the mainline
variant
We identified different types of reuse
20
RQ4 - Various types of variations in app families - Results
Family members competing for clients/Users
Reuse type 3 : Fork variants extending the
mainline functionality
Example: Mainline has core functionality which the Fork
Variants extend
• Mainline variant - mendhak/gpslogger is a GPS tracker with
basic functionality of logging the GPS coordinates on your SD
card
• Fork variant - dkm/gpslogger extends the mainline variant
functionality with sophisticated GPS tracking by adding flight
(paraglider) oriented features
22
RQ4 - Various types of variations in app families - Results
20
John Businge, Moses Openja, Sarah
Nadi, Engineer Bainomugisha, Thorsten
Berger
Contact: johnxu21@gmail.com
Clone-Based Variability Management in the Android Ecosystem

More Related Content

Similar to Clone-Based Variability Management in the Android Ecosystem

ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...
ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...
ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...
Lili Wei
 
APIs, APIs and more APIs
APIs, APIs and more APIsAPIs, APIs and more APIs
APIs, APIs and more APIs
Anand Sawant
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice ContainerJamie (Taka) Wang
 
Thesis+of+wei+wu.ppt
Thesis+of+wei+wu.pptThesis+of+wei+wu.ppt
Thesis+of+wei+wu.ppt
Ptidej Team
 
Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Ra'Fat Al-Msie'deen
 
End Users’ Perception of Hybrid Mobile Apps in the Google Play Store
End Users’ Perception of Hybrid Mobile Apps in the Google Play StoreEnd Users’ Perception of Hybrid Mobile Apps in the Google Play Store
End Users’ Perception of Hybrid Mobile Apps in the Google Play Store
Ivano Malavolta
 
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
 Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
Techugo
 
[2015/2016] Mobile thinking
[2015/2016] Mobile thinking[2015/2016] Mobile thinking
[2015/2016] Mobile thinking
Ivano Malavolta
 
Tug of Perspectives: Mobile App Users vs Developers
Tug of Perspectives: Mobile App Users vs DevelopersTug of Perspectives: Mobile App Users vs Developers
Tug of Perspectives: Mobile App Users vs Developers
IJCSIS Research Publications
 
Global Mutable State Analysis in Spring MVC Applications
Global Mutable State Analysis in Spring MVC ApplicationsGlobal Mutable State Analysis in Spring MVC Applications
Global Mutable State Analysis in Spring MVC Applicationsjsinglet
 
Software Protection on the Go: A Large-Scale Empirical Study on Mobile App Ob...
Software Protection on the Go: A Large-Scale Empirical Study on Mobile App Ob...Software Protection on the Go: A Large-Scale Empirical Study on Mobile App Ob...
Software Protection on the Go: A Large-Scale Empirical Study on Mobile App Ob...
Pei Wang
 
Should you choose react native or swift for i os app development
Should you choose react native or swift for i os app development Should you choose react native or swift for i os app development
Should you choose react native or swift for i os app development
Moon Technolabs Pvt. Ltd.
 
Apsec18.ppt
Apsec18.pptApsec18.ppt
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Why react native is recommended over other frameworks for mobile app development
Why react native is recommended over other frameworks for mobile app developmentWhy react native is recommended over other frameworks for mobile app development
Why react native is recommended over other frameworks for mobile app development
Fullestop
 
Benchpress: Analyzing Android App Vulnerability Benchmark Suites
Benchpress:  Analyzing Android App Vulnerability Benchmark SuitesBenchpress:  Analyzing Android App Vulnerability Benchmark Suites
Benchpress: Analyzing Android App Vulnerability Benchmark Suites
Venkatesh Prasad Ranganath
 
Micro patterns in agile software
Micro patterns in agile softwareMicro patterns in agile software
Micro patterns in agile software
Ujjwal Joshi
 
spiral full.pdf
spiral full.pdfspiral full.pdf
spiral full.pdf
Appdeveloper10
 
Monitoring Solutions for APIs
Monitoring Solutions for APIsMonitoring Solutions for APIs
Monitoring Solutions for APIs
Apigee | Google Cloud
 
Fun Food
Fun FoodFun Food
Fun Food
Bhadra Gowdra
 

Similar to Clone-Based Variability Management in the Android Ecosystem (20)

ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...
ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...
ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...
 
APIs, APIs and more APIs
APIs, APIs and more APIsAPIs, APIs and more APIs
APIs, APIs and more APIs
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
 
Thesis+of+wei+wu.ppt
Thesis+of+wei+wu.pptThesis+of+wei+wu.ppt
Thesis+of+wei+wu.ppt
 
Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
 
End Users’ Perception of Hybrid Mobile Apps in the Google Play Store
End Users’ Perception of Hybrid Mobile Apps in the Google Play StoreEnd Users’ Perception of Hybrid Mobile Apps in the Google Play Store
End Users’ Perception of Hybrid Mobile Apps in the Google Play Store
 
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
 Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
 
[2015/2016] Mobile thinking
[2015/2016] Mobile thinking[2015/2016] Mobile thinking
[2015/2016] Mobile thinking
 
Tug of Perspectives: Mobile App Users vs Developers
Tug of Perspectives: Mobile App Users vs DevelopersTug of Perspectives: Mobile App Users vs Developers
Tug of Perspectives: Mobile App Users vs Developers
 
Global Mutable State Analysis in Spring MVC Applications
Global Mutable State Analysis in Spring MVC ApplicationsGlobal Mutable State Analysis in Spring MVC Applications
Global Mutable State Analysis in Spring MVC Applications
 
Software Protection on the Go: A Large-Scale Empirical Study on Mobile App Ob...
Software Protection on the Go: A Large-Scale Empirical Study on Mobile App Ob...Software Protection on the Go: A Large-Scale Empirical Study on Mobile App Ob...
Software Protection on the Go: A Large-Scale Empirical Study on Mobile App Ob...
 
Should you choose react native or swift for i os app development
Should you choose react native or swift for i os app development Should you choose react native or swift for i os app development
Should you choose react native or swift for i os app development
 
Apsec18.ppt
Apsec18.pptApsec18.ppt
Apsec18.ppt
 
Presentation
PresentationPresentation
Presentation
 
Why react native is recommended over other frameworks for mobile app development
Why react native is recommended over other frameworks for mobile app developmentWhy react native is recommended over other frameworks for mobile app development
Why react native is recommended over other frameworks for mobile app development
 
Benchpress: Analyzing Android App Vulnerability Benchmark Suites
Benchpress:  Analyzing Android App Vulnerability Benchmark SuitesBenchpress:  Analyzing Android App Vulnerability Benchmark Suites
Benchpress: Analyzing Android App Vulnerability Benchmark Suites
 
Micro patterns in agile software
Micro patterns in agile softwareMicro patterns in agile software
Micro patterns in agile software
 
spiral full.pdf
spiral full.pdfspiral full.pdf
spiral full.pdf
 
Monitoring Solutions for APIs
Monitoring Solutions for APIsMonitoring Solutions for APIs
Monitoring Solutions for APIs
 
Fun Food
Fun FoodFun Food
Fun Food
 

Recently uploaded

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 

Recently uploaded (20)

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 

Clone-Based Variability Management in the Android Ecosystem

  • 1. Clone-Based Variability Management in the Android Ecosystem John Businge Mbarara University of Science and Technology, Uganda Moses Openja Mbarara University of Science and Technology, Uganda Sarah Nadi University of Alberta, Canada Engineer Bainomugisha Makerere University, Uganda Thorsten Berger Chalmers | University of Gothenburg, Sweden
  • 2. Commercial AppsOpen Source Apps Mobile-app variants Reasons for creating App Variants: • Different user needs • Different markets • Different payment modes • Different hardware Variant 1 Variant 2 Variant 4 Variant 3 Angry Birds App variants Variant 1 Mainline Variant 2 Variant 4 Variant 3 Bitcoin wallet App variants Software Reuse Fork-based development 2 >700K android repos on Github >2K android repos forked >1000 times
  • 3. • Variability management methods should be employed to effectively develop variants • Substantial software reuse in the android ecosystem is through cloning [1,2] • Simple variability management like clone&own to develop and maintain the app variants. • Unknown practices employed; hindering improvement of the development practices. Mobile App Variability Management 1. J. Mojica, B. Adams, M. Nagappan, S. Dienst, T. Berger, and A. E. Hassan, “A large scale empirical study on software reuse in mobile apps,” IEEE Software , vol. 31, no. 2, pp. 78–86, Mar. 2014. 2. F. Sattler, A. von Rhein, T. Berger, N. S. Johansson, M. M. Hardø, and S. Apel, “Lifting inter-app data-flow analysis to large app sets,” Automated Software Engineering , no. 25, pp. 315–346, Jun 2018. 3
  • 4. Goal Understand variant management practices in the Android ecosystem Focus We identify app families and study app family variability management practices in depth What is an App family? A collection of apps on Github that are maintained together, consisting of a mainline variant and its forked variants. 4
  • 5. Research Questions • RQ1 - What are the characteristics of Android app families? • RQ2 - How are app families maintained and co- evolved? • RQ3 - How diverse are the contributors in Android app families? • RQ4 - What are the various types of variations or customizations that lead to the creation of an app family? 5
  • 6. App Family Identification Mainline Variant Fork Variant 1 Fork Variant 2 Fork Variant 3 Fork Variant 4 Fork Variant 5 App family MLV FV1 FV5 6 App family > =2 Variants
  • 7. App Family Identification – Search Statistics Mainline repo is advertised on Google Play (GP) 5,535 55,939 Mainline Android repos >1 Forks Mainline & fork variants advertised on Google Play 88 Number of variants per family (Apps)RQ1 – Characteristics of Android app families – Results • Few app families found hosted both on Github and Google Play • These have rather few variants • But we can study them in-depth 7 88 App Families
  • 8. RQ2 - How are app families maintained? Understand how code is propagated between family variants • Are pull requests used as main code propagation technique? • Is code only propagated between mainline and fork variants? 8
  • 9. Mainline Variant Time 31 2 RQ2 - How are app families maintained? - Approach Fork Variant Fork Date StartingCommits MLVUniqueCommitsPullRequestCommitsFV-to-MLV PullRequestCommitsMLV-to-FV FVUniqueCommitsDirectPullCommitsMLV-to-FV iii iviii a b c ed f 2 31 i iii i iii c c d f d f 9 Mainline variant commits: 1, 2, 3, a, b, c, d, e, and f Fork variant commits: i, ii, iii, and iv Code propagation scenario
  • 10. 10 RQ2 - How are app families maintained? - Results • Both distributions are left-skewed • Most apps do not perform pull requests in either direction • Fork-to-Mainline – 10 forks sent 16 pull requests • Mainline-to-Fork – 5 mainlines sent 15 pull requests Number of pull requests (Apps) (Apps) Pull requests (Mainline-Fork) Pull requests (Fork-mainline) Surprisingly, we observed that all the 15 pull requests (mainline-to-fork) were initiated by fork developers
  • 11. 11 RQ2 - How are app families maintained? - Results Number of pull requests among forks Pull requests (Fork-Fork) (Apps) • Distribution is left-skewed • Only one fork sent one pull request to another fork
  • 12. 12 RQ2 - How are app families maintained? - Results Number of direct pull commits from mainline to fork (Apps) Direct Pull Commits Mainline-Fork • Left-skewed distribution • 47 of the 127 (37%) forks variants performed direct pull commits (cherry picked) form the mainline variants
  • 13. RQ2 - How are app families maintained? - Summary 13 • Variants rarely perform pull request code propagation • Direct pull commits is the most used code propagation method • 64 of the 88 (72.7%) app families did not perform any form of code propagation
  • 14. • We investigated whether the Fork variants are typically created and controlled by new developers • Or whether the forks are still governed by the mainline developers. RQ3 - Diversity of contributors in app families? 14
  • 15. RQ3 - Diversity of contributors in app families?- Approach Developer 1 Developer 2 DirectPullComMLV-FV Mainline Variant Time 31 2 Fork variant Fork Date StartingCommits MLVUniqueComPullRequestComFV-MLV PullRequestComMLV-FV FVUniqueCom ii i iviii a b c ed f 2 31 i iii i iii c c d f d f Developer 1 15 Mainline variant commits: 1, 2, 3, a, b, c, d, e, and f Fork variant commits: i, ii, iii, and iv
  • 16. • Left-skewed distribution • Most of the mainline- fork variant pairs have no common developers • 94 of the 127 (74%) mainline-fork pairs do not have common developers RQ3 - Diversity of contributors in app families? - ResultsMainline–Forkpairs Common developers between Mainline-fork pairs 18
  • 17. RQ4 - Various types of variations in app families Approach Why are variant forks created? • Does the fork variant (FV) add small functionality to the mainline variant (MLV) or, • Does the fork variant use the mainline as a building block for the apps completely different focus Manual inspection of a sample of 11 of the 88 app families MLV FV Google Play Features in App description Github Customizations and additions in the FV’s unique commits 17
  • 18. • Reuse Type 1: Fork variants performing re-branding and simple customizations of the mainline variant • Reuse Type 2: Fork variants implementing different but related features of the mainline variant • Reuse Type 3: Fork variants extending the mainline variant functionality • Reuse type 4: Fork variants supporting the mainline variant We identified different types of reuse 20 RQ4 - Various types of variations in app families - Results Family members competing for clients/Users
  • 19. Reuse type 3 : Fork variants extending the mainline functionality Example: Mainline has core functionality which the Fork Variants extend • Mainline variant - mendhak/gpslogger is a GPS tracker with basic functionality of logging the GPS coordinates on your SD card • Fork variant - dkm/gpslogger extends the mainline variant functionality with sophisticated GPS tracking by adding flight (paraglider) oriented features 22 RQ4 - Various types of variations in app families - Results
  • 20. 20 John Businge, Moses Openja, Sarah Nadi, Engineer Bainomugisha, Thorsten Berger Contact: johnxu21@gmail.com Clone-Based Variability Management in the Android Ecosystem

Editor's Notes

  1. The advent of social coding websites like Github and bitbucket have made large scale software reuse more systematic through practices like Fork-based development Some software that have heavily benefited from this practice are Mobile Apps Examples of Mobile Apps with may variants that we studied include Bitcoin wallet